Возможна ли обработка адреса (жительства) в excel регулярным выражением?
Можно ли с помощью регулярных выражений адреса в которых все буквы прописные переделать так, чтобы прописной были аббревиатуры и начальные и почистить от лишних символов?
Например адреса из базы выгружаются в excel так:
Россия, , , , , , г. МОСКВА, , ,,, УЛ.ДЯТЛОВА, 20
P.s. Понимаю что новый эксель это может, но у меня на работе 2010, а обрабатывать адресов надо много и часто.
Адреса в общем случае - это хтонический хаос, никакими регулярками не обрабатываемый. Потому что никакой логики, кроме базы этих самых адресов, записи в которой теоретически можно сопоставить конкретную строчку, в природе не существует.
Если хочется получить из адресов информацию, а не хаос - это делается через КЛАДРы, ФИАСы или сервисы, автоматизирующие поиск по ним. А самопал по буковкам неизбежно будет давать непредсказуемые артефакты.
Ещё советую, если есть возможность работать с адекватным языком программирования, то выбери его, а не макросы экселя... Никто тебя не заставляет решать все задачи только там
из базы выгружать уже в ноебходимом виде.
в базе тоже хранить в необходимом виде.
это куча работы по нормализации текстовых строк, лучше всего еще прикрутить валидацию адреса по ФИАС и т.д.
а также скрипт на введенииадреса с валидацией по ФИАС - за это мороку менеджеры отдельное спасибо скажут :)
pfg21, на госслужбе нет абсолютно никаких возможностей и вариантов, только эксель, но я кое-как уже набросал решение. Причем эксель старый, где просто это не сделать.
Нет. Адрес не имеет никакой логики. Отличить название улицы от аббревиатуры регуляркой невозможно, ибо нет никаких правил по аббревиатурам и именам улиц.
Можно просто попробовать выполнить замену текста типа ул. -> УЛ. для конкретных обозначений.
Но просто строку - вряд ли, слишком много хаоса
1) Убираем повторы запятых и пробелов. Россия, г. МОСКВА,УЛ.ДЯТЛОВА,20
2) Слова приводим в первую букву capital Россия, г. Москва,Ул.Дятлова,20
3) С аббревиатурами - сложнее. Надо будет вести их справочник
Abrrieviation
---------------
КПСС
ВЛКСМ
и замену делать по совпадению. Так же поступисть с сокращениями ул. бульв. просп. рн.
В конце должно получится Россия, г. Москва,ул.Дятлова,20
Excel поддерживает программирование на VBasic. Это более эффективно чем делать регулярки.
Любой студент 1 курса вам сделает небольшой скрипт и вставит его в Excel