Страницы: 1
RSS
Сортировка смешанных данных
 
Здравствуйте!
как отсортировать таблицу по столбцу "Адрес" так , чтобы номера домов шли по порядку, а не так:
ул. Ленина, д 1
ул. Ленина, д 100
ул. Ленина, д 2
пример прилагается.
 
User386, здравия. Разбить адрес на три столбца: адрес до номера дома, номер дома, буквенное обозначение номера. И будет нужная Вам сортировка.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Такая компоновка данных была бы слишком большим подарком... Имею уже готовую таблицу, выгрузить ее в Эксель по-другому нет возможности.
 
и разбвивать столбец руками не реально - несколько тысяч строк.
 
Зачем руками? Данные - текст_по_столбцам
Вариант: копировать адрес в другой столбец, Найти - "*д " (звездочка-д-пробел), Заменить. Останутся только номера домов. В другом столбце с помощью этого же инструмента можно оставить только улицу.
 
Спасибо, оба варианта позволяют удобно разделить данные по столбцам. Но как отсортировать? Получается, например,
4
5
6


Хотелось бы:
4


5
6
 
User386, кнопка цитирования не для ответа

С буквами сложнее. Проверяем последний знак. Если буква, удаляем, остается число. Добавляем код символа - получаем чила, которые можно сортировать.
=ЕСЛИ(ЕОШ(--ПРАВБ(D2));(ЛЕВБ(D2;ДЛСТР(D2)-1))+КОДСИМВ(ПРАВБ(D2))/1000;D2)
Номер дома без разбивки по столбцам:
=ПСТР(B2;ПОИСК(" д ";B2)+3;5)
 
какая-то ошибка значечения... Можете попробовать на моем примере?
 
добавил файл
 
Попробуйте как в файле, формулой оставить только числа и сортировать.
 
Спасибо большое! Все работает! Ваша формула вроде бы проста, но вызывает к себе трепетное уважение...
 
д37 и д37А не сортируются.
 
Vikttur, а Ваше решение вообще сортирует идеально. По номерам и буквам в номере. Спасибо!!!
 
Это не моя формула взял её Здесь
 
Цитата
vikttur написал:
д37 и д37А не сортируются.
Сортируются. Но если использовать формулу, предложенную, gling, то одинаковые номера, имеющие буквы, сортируются случайно. В решении от vikttur все ОК. Присутствует код символа,который и помогает все расставить по порядку.
 
Цитата
User386 написал: одинаковые номера, имеющие буквы, сортируются случайно
Случайно - это не сортировка :)
 
То же верно.
И еще формула подавилась текстом в котором числа стоят в нескольких позициях. Из текста "улица 7 Ноября, д. 25" берет часть "7 Ноября, д. 25". Так что не вариант.
 
Vikttur, крайний вопрос: как изменить Вашу формулу  =ПСТР(B2;ПОИСК(" д ";B2)+3;5) чтобы из адреса "г. Москва, ул. Советская, д 1" выбрать только название улицы.?  
 
Цитата
И еще формула подавилась текстом в котором числа стоят в нескольких позициях
Нет универсальных решений, формулы пишутся по показанным данным. Сами виноваты.

Цитата
из адреса "г. Москва, ул. Советская, д 1" выбрать только название улицы.
Чтобы избежать "подавилась текстом", покажите возможные варианты данных.
Но не в этой теме. Тема о сортировке.
 
По мере тестирования на реальных данных всплывают вопросы. Еще один: Ваше решение работает хорошо, но не понятно что делает в формуле "+3" и если адрес формата
г. Москва, ул. Советская, д 12А, к. 5
г. Москва, ул. Советская, д 12А к. 5   (без запятой после номера дома)

 как взять только "12А"? Длина номера - до 4х знаков + литера.
 
У Вас что ни сообщение, то новые вводные. Где квартиры в первом сообщении? Так нельзя. Получается, все ранее предложенное - мусор!
Вы можете подумать и подготовить разные варианты адресов? Только для вопроса о сортировке.
 
Приношу извинения за кривые вводные данные. Пока массово обрабатывать не начал, сам не заметил вариаций написания адреса. Их относительно не много, но сортировку губят на корню.
Актуальный пример прилагается
 
См. файл.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
JayBhagavan,спасибо что откликнулись. Как бы к значению столбца "впереди идущие цифры (от 1 до 3х разрядов)" добавить первую букву, идущую сразу после цифр.
т.е. нужно число+1 следующий символ, если это не пробел. Иначе не будет сортировки с учетом литеры номера дома.
 
User386, если к числу добавить литеру, то это будет текст, который у Вас и так есть. Добавьте столбец, в котором будет текст до числа. Сортируйте в такой последовательности:
1) текст до числа;
2) число;
3) текст после числа.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
Страницы: 1
Читают тему
Наверх