Здравствуйте!Скажите пожалуйста как в EXCEL можно сделать что бы при нажатии на ячейку C2 фамилии в этом столбце сортировались по алфавиту,а при нажатии на ячейку D2 сортировались в столбце D по дате рождения .Много прочитал тем на форуме про сортировку,но почему то похожего не нашёл.Заранее спасибо.
Здравствуйте!Скажите пожалуйста как в EXCEL можно сделать что бы при нажатии на ячейку C2 фамилии в этом столбце сортировались по алфавиту,а при нажатии на ячейку D2 сортировались в столбце D по дате рождения .Много прочитал тем на форуме про сортировку,но почему то похожего не нашёл.Заранее спасибо.12345tn
что бы при нажатии на ячейку C2 фамилии в этом столбце сортировались по алфавиту
Два раза на клавишу нажать слабо? ПКМ на ячейку С2 - Сортировка - от А до Я. По датам сортироваться не будет, так как там текст, а не дата. Сначала преобразуйте в дату, потом сортируйте так же как и С2.
Здравствуйте. Можно сделать и
Цитата
что бы при нажатии на ячейку C2 фамилии в этом столбце сортировались по алфавиту
Два раза на клавишу нажать слабо? ПКМ на ячейку С2 - Сортировка - от А до Я. По датам сортироваться не будет, так как там текст, а не дата. Сначала преобразуйте в дату, потом сортируйте так же как и С2.gling
ЯД-41001506838083
Сообщение отредактировал gling - Вторник, 23.09.2014, 00:04
Для самых ленивых - во вложении событийный VBA-макрос листа.
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [C2:D2]) Is Nothing Then With Me.AutoFilter.Sort .SortFields.Clear .SortFields.Add Key:=Range(Cells(2, Target.Column), Cells(Cells(Rows.Count, 2).End(xlUp).Row, Target.Column)), SortOn:=0, Order:=1, DataOption:=0 .Apply End With [A1].Select End If
End Sub
[/vba] Чтобы на Вашем файле он мог нормально работать, я преобразовал Ваши даты в нормальный формат (раньше были текстовые) с помощью такого приёма:
[vba]
Код
Sub Value_to_Value()
Dim X As Long
For X = 3 To Cells(Rows.Count, 2).End(xlUp).Row Cells(X, 4).Value = CDate(Cells(X, 4).Value) Next X
End Sub
[/vba]
12345tn, здравствуйте.
Для самых ленивых - во вложении событийный VBA-макрос листа.
[vba]
Код
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, [C2:D2]) Is Nothing Then With Me.AutoFilter.Sort .SortFields.Clear .SortFields.Add Key:=Range(Cells(2, Target.Column), Cells(Cells(Rows.Count, 2).End(xlUp).Row, Target.Column)), SortOn:=0, Order:=1, DataOption:=0 .Apply End With [A1].Select End If
End Sub
[/vba] Чтобы на Вашем файле он мог нормально работать, я преобразовал Ваши даты в нормальный формат (раньше были текстовые) с помощью такого приёма:
[vba]
Код
Sub Value_to_Value()
Dim X As Long
For X = 3 To Cells(Rows.Count, 2).End(xlUp).Row Cells(X, 4).Value = CDate(Cells(X, 4).Value) Next X
12345tn, извините за мою правовую безграмотность, но разве в Украине нет какого-то аналога Российского Закона о защите персональных данных? По крайней мере в РФ, данные о дате рождения и, кажется, образовании являются закрытыми для свободного распространения без специального на то согласия персон. Чушь, конечно. Мужикам-то это пофигу. А вот женщины год своего рождения предпочитают скрывать потому закон и протащили
12345tn, извините за мою правовую безграмотность, но разве в Украине нет какого-то аналога Российского Закона о защите персональных данных? По крайней мере в РФ, данные о дате рождения и, кажется, образовании являются закрытыми для свободного распространения без специального на то согласия персон. Чушь, конечно. Мужикам-то это пофигу. А вот женщины год своего рождения предпочитают скрывать потому закон и протащили Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Среда, 24.09.2014, 09:00