Страницы: 1
RSS
Сортировка автомобилей по госномеру
 
Есть таблица с данными по автомобилям. Прошу подкинуть идею, как можно в Excel 2003 реализовать макросом сортировку в столбце, содержащем госномер? Стандартная сортировка не подходит. Дело в том, что номера имеют различный формат, например: АР 314 57 или В 653 МО 57, а сортировать (для удобства поиска нужного авто) требуется в первую очередь по возрастанию трёхзначного числа в номере.
При совпадении чисел сначала должны следовать номера с одной буквой перед числом с сортировкой (по алфавиту) по первой букве перед числом, затем по первой букве после числа, затем по второй букве после числа. Далее должны следовать номера с двумя буквами перед числом, соответственно с сортировкой по алфавиту по первой, а затем по второй букве. Регион всегда один и тот же и в сортировке не участвует.

Для наглядности привожу фрагмент требуемой последовательности отсортированных номеров:

 Е 310 ЕА 57
 К 314 РР 57
 А 315 НА 57
 В 315 МО 57
 В 315 МС 57
 В 315 НТ 57
АР 315 57
АТ 315 57
ВК 315 57
 О 317 АА 57

Как временное и сильно упрощённое решение - разбил госномер на два столбца, в первом - одна или две буквы, во втором - всё остальное. Это позволяет использовать стандартную сортировку, но для дальнейшего развития возможностей таблицы (выборки, отчёты), требуется, чтобы госномер был неделимым и содержался полностью в одной ячейке.
 
Вопрос такой: исходный формат всегда соответствует вышеприведенному (пробелов в начале строки нет, разделитель - всегда один пробел)?
Навскидку - попробуйте ввести в дополнительный столбец такую формулу
=ПСТР(A1;ПОИСК(" ";A1;2)+1;3)&ЕСЛИ(ПОИСК(" ";A1)=2;ЛЕВСИМВ(A1;1)&ПСТР(A1;7;2);"я"&ЛЕВСИМВ(A1;2))
и отсортировать по ней как ключу.
Как вариант:
=ПСТР(A1;ПОИСК(" ";A1;2)+1;3)&ЗАМЕНИТЬ((ПОВТОР(" ";3-ПОИСК(" ";A1))&A1);3;5;"")

Если же доп.столбцов делать нельзя, и нужен именно макрос - то без примерного образца (с расположением данных) исходной книги можно показать только, как макросом отсортируется один столбец - а вам же, наверное, надо не один?
Изменено: AndreTM - 02.06.2013 06:46:17
 
Может подойдёт такой вариант?
 
Сортировка формулой (формула тяжелая)
 
Формулами, сортировка по доп. столбцу.
Изменено: Михаил С. - 02.06.2013 12:57:08 (заменил файл)
 
AndreTM, вопрос, что называется, не в бровь а в глаз. Номера вносят в таблицу разные сотрудники и делают это у кого как получится. Ну с этим я что-нибудь придумаю. Будем считать, что перед первой буквой длинных номеров (типа А 315 МО 57) есть два пробела, перед буквами коротких номеров (типа АР 315 57) пробелов нет, разделитель во всех номерах - один пробел. И повторюсь, нужен именно макрос. Столбцов в таблице много и данные в них, разумеется, тоже должны сортироваться, но в примере макроса можно вставить один с произвольными данными, чтобы был понятен принцип, на остальные столбцы распространю сам.
 
kukushkin, без полного цитирования никак не обойтись? Или Вы не видите, где можно ПРОСТО ответить?
 
Посмотрите тему здесь там как вариант решения пользовательская сортировка. А данные - 1 раз приведите в порядок, и пользователям разрешите ввод только из списка.
Страницы: 1
Читают тему
Наверх