Страницы: 1
RSS
Как разбить адрес на составляющие
 
Добрый день! Надо разбить адрес на составляющие: область, район, населенный пункт, улица, дом, корпус, квартира. Вся сложность в том, что нет единого разделителя и может не быть каких-то составляющих. Пробовала делать по частям: сначала те адреса, в которых есть населенный пункт, потом достальные. Вставляла одинаковый разделитель, это получилось не совсем корректно, пришлось долго проверять. Может быть, есть какой-то универсальный способ?
 
Доброе время суток.
Цитата
shoa написал:
Может быть, есть какой-то универсальный способ?
Есть - найти специально обученного человека, который разберёт это врукопашную :)
Можно у Google макросом запрашивать очередной адрес, например
ДОБРЯНКА, ул.КОПЫЛОВА, д.57 кв.63 и получать адрес из XML. Сначала отобрать, где чётко выдаёт точный результат (без подмножеств), затем посмотреть, что детализировать (например, добавить адрес населённого пункта) и повторно перезапросить. Правда, в бесплатной версии в сутки так можно около 1000 адресов только проверить. Примеры на форуме были.
Изменено: Андрей VG - 12.07.2017 15:50:43
 
Цитата
Может быть, есть какой-то универсальный способ?
Посмотрите http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=read&FID=1&TID=84380
 
Спасибо, но я как-то трудно себе это представляю. Может быть, все-таки как-то поставить одинаковый разделитель? Хотя бы между населенным пунктом, улицей и домом.
 
Kuzmich, спасибо за ссылку. Буду разбираться как это использовать
 
Здравствуйте!
Чтобы избежать подобных проблем, необходимо использовать справочники, например, КЛАДР.
Лучший вариант, на мой взгляд, вручную привести данный список адресов в соответствие с КЛАДР'ом.
Представленный вами список адресов лишен четкой структуры, поэтому его очень сложно автоматически разделить на составляющие.
Даже если часть данных разделить макросом, то и в этом случае нужно вручную сверить результат с исходным текстом (т.к. стопроцентной корректности разделения добиться невозможно).
Изменено: AB1 - 13.07.2017 12:47:11
 
Спасибо, мне хотелось разделить хотя бы те данные, где нет слипшихся населенных пунктов с улицей.
 
Цитата
хотя бы те данные, где нет слипшихся населенных пунктов с улицей
Не все улицы, но все же кое-что. Попробуйте доработать. Удачи!
Код
Function Street$(cell$)
 With CreateObject("VBScript.RegExp")
   .Pattern = "[\.\d*\s-а-яА-Я]+(?=,\s[д|Д]\.)"
   If .test(cell) Then
     Street = .Execute(cell)(0)
   Else
     Street = cell
   End If
 End With
End Function
Страницы: 1
Читают тему
Наверх