Хитрости »

Как перевернуть адрес

 

Задача явно не из повседневных :-) Допустим, имеется база адресов примерно такого вида:
Исходные данные
Требуется: поменять объекты адреса местами полностью. Т.е. изначальный порядок объектов такой: Индекс; Область; Район; Населенный пункт; Улица; Дом, а необходимо его сделать обратным: Дом; Улица; Населенный пункт; Район; Область; Индекс.
Результат
В принципе не так и сложно на первый взгляд. Можно применить команду "Текст по столбцам" и собрать в обратном порядке. Но. Где-то может не оказаться индекса, где-то населенный пункт из двух слов("Красная заря"), в каких населенных пунктах отсутствует улица. Каша получится неплохая и выбирать руками пару тысяч таких косяков будет занятием не из самых интересных.
Стало довольно интересно лишний раз попрактиковаться над конструкциями регулярных выражений и составил функцию, котороя переворачивает адрес:

Синтаксис функции:
=ReverseAddr(A2)
sAddress - адрес в виде текста или ссылка на ячейку.

На самом деле функцию можно использовать не для переворота адреса, а просто для разбиения адреса на составные части. К примеру для адреса "143622 Московская обл Волоколамский район с.Рюховское ул.Полевая д.6" функция возвращает список отдельных значений:

  • д.6
  • ул.Полевая
  • с.Рюховское
  • Волоколамский район
  • Московская обл
  • 143622

А уже цикл (For li = objMatches.Count To 1 Step -1) объединяет в одну строку. Так что при желании можно использовать функцию как-то иначе.

Следует учитывать, что данная функция будет работать не с любыми адресами. Функция написана под более-менее конкретную задачу и вполне может получиться так, что для другой задачи она окажется совершенно бессильна и результат будет некорректным.

Так же см.:
Как перевернуть слово?

Скачать пример »

  Tips_Macro_ReverseAddress.xls (45,5 KiB, 602 скачиваний)


Статья помогла? Сделай твит, поделись ссылкой с друзьями!
Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум


Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Логин
Наши партнеры
Перейти
Перейти
Счетчики
Анализ сайта

Яндекс.Метрика
© 2016 Excel для всех  Войти