Сортировка таблицы по дате

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Дионис
Сообщения: 153
Зарегистрирован: 11 июл 2005, 13:42
Откуда: Крым, Алушта
Контактная информация:

Такой вопрос. Выделяю таблицу (с верхней строкой - наименованиями столбцов), делаю сортировку по дате (есть столбец с датами определённых событий) - выдаёт в сортированном виде. НО!!!
мне нужна сортировка по месяцу события, а уже в полученном диапазоне - по году и по числу (именно в такой последовательности).
Однако, выдает сначала по году, потом по месяцу, потом по числу.
Задание формата ячеек с первичным отображением месяца не помогает. дополнительные настройки сортировки - не помогают. Разделить столбец на отдельно дни, месяцы, годы - нельзя. Добавлять/сдвигать столбцы/листы - нельзя.
Вручную передвигать строки - тяжко, ибо их (строк) много, а времени на это очень мало. Работа частая - хотелось бы автоматизировать.

ПОМОГИТЕ СОВЕТОМ, ПОЖАЛУЙСТА!!!
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Вариант, конечно несколько муторный, но рабочий, при условии, что вы можете изменять содержимое этого столбца с датой.
Создать вспомогательную книгу для сортировки массива.
http://avsha.narod.ru/Date_Sort.rar

Код: Выделить всё

Номер_01	Дата	День	Месяц	Год	Номер_02
1	01.01.2005	=ДЕНЬ(B3)	=МЕСЯЦ(B3)	=ГОД(B3)	1
2	02.01.2005	=ДЕНЬ(B4)	=МЕСЯЦ(B4)	=ГОД(B4)	2
3	01.02.2005	=ДЕНЬ(B5)	=МЕСЯЦ(B5)	=ГОД(B5)	4
4	02.02.2005	=ДЕНЬ(B6)	=МЕСЯЦ(B6)	=ГОД(B6)	5
5	01.01.2006	=ДЕНЬ(B7)	=МЕСЯЦ(B7)	=ГОД(B7)	3
Ну а потом подставлять в рабочую книгу индексы из столбца Номер_02 и сортировать все уже по возрастанию, а затем подставлять уже дату. Надеюсь поняли идею?
Дионис
Сообщения: 153
Зарегистрирован: 11 июл 2005, 13:42
Откуда: Крым, Алушта
Контактная информация:

Avsha, спасибо за ответ, но в строках исходной книги не только дата событий, но и сами события с несколькими параметрами, как-то: адрес, имя/название, серийный номер аппаратуры, номер документа, связывающего аппаратуру с именем/названием, признак дополнительного оборудования к аппаратуре и т.д. и т.п. То есть, мне нужно перемещать всю строку в зависимости от даты (сортировать). После сортировки требуется также сделать следующее - под заголовком таблицы вставить строку, объединить её ячейки (на ширину таблицы) и вписать туда "ЯНВАРЬ", потом найти конец диапазона с событиями января, вставить строку, соединить ячейки, написать "ФЕВРАЛЬ" и т.д. Таким образом, должны сгруппироваться все события, произошедшие в каждый месяц (янв, фев, мар, апр ... ), а внутри этих диапазонов уже по году события (2001, 2002, ... 2006), после чего по дню события ( 1 янв 2001, 3 янв 2001, 20 янв 2003, 23 янв 2003, 2 янв 2006, 4 янв 2006)
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

То есть, мне нужно перемещать всю строку в зависимости от даты (сортировать).
Вот и выделяйте все строки для сортировки, а в качестве параметра сортировки "Сортировать по" указывайте столбец с датой, точнее столбец с индексами, который вы временно подставите вместо столбца с датой.
Разделить столбец на отдельно дни, месяцы, годы - нельзя. Добавлять/сдвигать столбцы/листы - нельзя.
У меня вопрос, неужели нельзя временно добавить дополнительные столбцы (день, месяц, год) где-нибудь в конце вашей таблицы, не ломая структуру основной таблицы, отсортировать все строки таблицы по ним, а затем удалить? Просто не могу понять, какие причины могут этому мешать.
Дионис
Сообщения: 153
Зарегистрирован: 11 июл 2005, 13:42
Откуда: Крым, Алушта
Контактная информация:

Avsha, прошу прощения, давно не заходил в топик. В общем, тоже пришел к выводу о временных столбцах. А насчёт мешающих причин - товарищ, разработавший форму файла - запаролировал его от изменений, при этом приспособил к нему макрос, который я так и не нашел!!! То есть макрос есть, но его не видно (Сервис-Макросы... -пусто). Пароль я узнал, но товарищ уволился и теперь никто и не знает, что там такое было (главное, что антивирус вредоносного кода не обнаруживает).

Кстати, кто-нибудь знает этот способ - скрыть сам факт присутствия макроса в книге?
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

A Сервис-Макросы-Редактор Visual Basic -VBAProject смотрели ?

А лист можно же скопировать в другую книгу и там уже отсортировать,
потом копирование и сортировку можно автоматизировать.
Ответить