Страницы: 1
RSS
Поиск адресов при их различном написании в разных таблицах
 
Коллеги, я новичок у вас, но надеюсь, что кто то из гуру сможет мне помочь.
Проблема следующая:
У меня есть две базы данных. В первую базу мне надо "подтянуть" номера электрических счетчиков из второй базы. Сделать это надо, сравнив адреса. Это можно было бы сделать через формулу ВПР или ИНДЕКС+ПОИСК ПОЗИЦИИ. Но... проблема в том, что адреса в разных базах очень сильно отличаются по написанию. В ручную же сделать невозможно, т.к. база ОЧЕНЬ большая.
Мне кажется, что если я унифицирую адрес в 1-ой таблице, отбросив все лишнее и оставив "голую" информацию (см. столбец "обработанный мною адрес"), то можно попробовать тогда сравнить обработаны адрес со второй таблицей. Т.е., как я понимаю, нужна формула, которая покажет, что ВСЕ ЗНАЧЕНИЯ (слова, буквы и т.п.) из первой таблицы есть в определенной ячейки второй. В моем пример формула должна подставить № счетчика по адресам Волгоград, ул. Мира 3 и Астрахань, 6-ой микрорайон.

Кстати, есть и продолжение этой задачи...... Как узнать встречается ли такой же номер счетчика в другой таблице (имеются две таблицы с номера счетчика), если он во второй таблице забит с опечаткой, например вместо пятой цифры 5, забита цифра 6. (№ 123451111 в первой таблице и № 123461111 во второй таблице
Изменено: Portugal - 02.11.2017 11:54:23
 
Адреса, конечно, нужно унифицировать. Для этого вполне подойдет разработка The_Prist. Что на что менять подберите сами. Удачи.
Excel непознаваем как атом.
 
Наверное я не точно объяснил свою проблему. Заменить слова я могу без проблем..... Но в любом случае написание адреса в первой базе будет отличаться от написания во второй. Мне надо чтобы ячейку с унифицированным адресом из первой таблицы формула искала во второй таблице и если есть ВСЕее элименты (слова и цифры) встречаются во второй таблице, то выдала бы, что  совпадение найдено. Т.е. Если адрес написан "Мира 18 5", а во второй таблице написано "Квартира 5 в доме 18 по улице Мира в Центральном районе Волгограда", формула бы выдала 100% совпадение
 
Portugal, доброго времени суток когд=то мне необходимо было делать подобное и где было найдено данное решение... в столбец "А" вставляете список тех кого хотите сравнить а в столбец "Е" с ячейки Е2 - то с чем сравниваете ...в формулах последнии числа это процент совпадения....
Не бойтесь совершенства. Вам его не достичь.
 
Спасибо. Но... тоже не совсем то. Дело в том, что мне нужно в итоге по сравнению адресов подтянуть из второй таблице № прибора учета, который соответствует адресу. Сделать это можно через формулу ВПР или Индекс+ПоискПозиции. Поэтому и нужно, чтобы формула распознала как 100% совпадение адресов когда ВСЕ СЛОВА И ЦИФРЫ первой таблицы входят в адрес второй таблице, даже если во второй таблице остаются еще куча слов и знаков, которых нет в первой. В этом случае я смог бы использовать формулу ВПР.
Повторюсь, т.е. если в первой таблице стоит "Советская 5", а во второй "Улица Советская дом 5", то мне надо чтобы формула показала 100% совпадение (точнее 100% вхождение всех символов во вторую ячейку).
Наверное все же нерешимая эта задача :-(
 
вариант из КОПИЛКИ (есть тут на форуме такой раздел) там и описание, в текущем примере установлен отбор при совпадении 50% текста
Лень двигатель прогресса, доказано!!!
 
Сергей, спасибо. Я уже смотрел копилку. Но там чуть не то что мне нужно. Мне не нужен процент совпадений. Мне нужно, что... если ВСЕ слова из первой  входят во вторую таблицу, формула бы показала, что да, 100% ВСЕ СЛОВА входят, даже если в первой ячейке только 1 слово, а во второй целое предложение.
 
это самый оптимальный вариант на текущий момент, наше дело предложить ваше ждать когда изобретут искусственный интеллект который будет думать как вы что текст "Советская 5" это 100% совпадение текста "Улица Советская дом 5"
Лень двигатель прогресса, доказано!!!
 
Сергей, я всем благодарен за помощь. Просто "искусственный интеллект" должен искать не совпадение, а 100% ВХОЖДЕНИЕ в другую ячейку. А по предложенным пока вариантам получается, что если в ячейках будут одинаковые населенные пункты, улицы, районы, но разные дома и квартиры, то совпадение будет 90% и.... предложенная в Вашем варианте формула подставит некорректный № прибора учета.
 
Цитата
Portugal написал:
чтобы формула распознала как 100% совпадение адресов когда ВСЕ СЛОВА И ЦИФРЫ первой таблицы входят в адрес второй таблице
100% совпадение "Советская 5"  =  "Площадь Советская строение 5"
Лень двигатель прогресса, доказано!!!
 
Portugal,в моих данных все совпадает и потом на основании совпадения уже делаете как положено поискпоз....и все решено
на лист1 перенес ваши таблицы....
работает не идеально конечно, но как мне кажется Вам подойдет...
Изменено: a.i.mershik - 02.11.2017 09:26:08
Не бойтесь совершенства. Вам его не достичь.
 
А что Вы собираетесь делать в ОЧЕНЬ большой базе с так желанными Вами процентами совпадения? А почему Вы не хотите унифицировать адреса в обоих списках по одному правилу? Тогда и ВПР заработает.
Excel непознаваем как атом.
 
Portugal, приводите все адреса ручками к единому виду и не морочьте людям голову. Пример нечеткого поиска - Гугл, когда из полутора миллиона найденных совпадений, полтора миллиона не то, что вы искали. Машина не умеет мыслить абстрактно, она умеет только вычислять. Лень руками править - наймите за деньги того, кому не лень.
Я сам - дурнее всякого примера! ...
 
Астрахань г., микрорайон 6, д. 2а и Астрахань мкр 6 2
для Excel ни как не совпадают
 
Изменено: Portugal - 07.11.2017 15:48:36
 
Portugal,т .е. мой вариант не подходит Вам?
Не бойтесь совершенства. Вам его не достичь.
 
К сожалению, решить с его помощь мою проблему не получается :-( Но спасибо за ответ, т.к. буду использовать его в другой задаче.
 
Portugal,в вашем примере у меня все получилось.... ну удачи
Не бойтесь совершенства. Вам его не достичь.
 
Portugal, то что я написал в своем сообщении это пример некорректности вашей логики "Советская 5"  =  "Площадь Советская строение 5" = "Улица Советская дом 5"
Лень двигатель прогресса, доказано!!!
 
a.i.mershik, Ваше решение ОЧЕНЬ близко, но...
Подставил в табличку. Картина следующая:
Позиция № 1 - взят счетчик адреса без Корпуса, т.к. в реальности будет взять другой дом.
Позиция № 2 - все отлично сработало :-)
Позиция № 3 - разные квартиры. Подставлен счетчик из другой квартиры, следовательно в 100 кв. доме все счетчики будут подставлены некорректно
Позиция № 4 - Отлично
Позиция № 6 - Опять проблема с корпусом. :-(
 
Portugal,выбирает то что наиболее подходящий из всего словаря предложенного, если там нет данных с корпусом допустим то он и не выберет так как вообще в поиске нет этого дома....:
Позиция № 1:  "Волгоград Тупиковый 2 3 А" то выбирает максимально приближенный... если добавить - корпус "а" который построен в 2016 году,  то он выберет уже его... но при этом в формуле выбрать не 65(%), а 50(%) так как символов больше стало...
Вообще если в базе данных в котором он ищет нет такого вообще - он и не найдет...
Не бойтесь совершенства. Вам его не достичь.
 
a.i.mershik, я понимаю, что он выбирает максимально приближенный. И вижу в этом как раз проблему. И думаю, что если бы он выбирал не приблежение, а..ВХОЖДЕНИЕ, т.е. 100% наличие содержимого во второй ячейки, то... тогда бы задачу решить можно было бы. Но за формулу спасибо! :-)
 
Мне что то надо где то прописать? Таблицу замены я составляю, а что делать дальше. Ведь, как я понял, это не обычная формула?
Или я несу глупость?
Изменено: Portugal - 07.11.2017 16:31:17
 
Portugal, если вы в данном файле который я прикрепил то ничего не нужно, если в другом то нужно перенести туда макрос.
Не бойтесь совершенства. Вам его не достичь.
 
Спасибо. :-) Теперь надо будет еще научиться переносить макрос :-)
Поищу как это делается.
 
Portugal, несколько раз занимался таким текстовым сравнением, каждый раз свои подводные камни. Вам правильно, например, заметили, что "микрорайон" и "мкр" для excel не одно и то же. Также определенные неприятности создают буквы с одинаковым написанием в разной раскладке, плюс мешают знаки препинания и всякие слеши, тире и прочее, плюс ко всему банальные ошибки в правописании. Вам нужна программа заточенная под вашу задачу. Плюс, если в вашей базе 320 тыс. записей, то такой макрос будет работать много часов непрерывно, если не дней. Желательно, что бы в этой программе был словарь замен, что бы "микрорайон" и "мкр", "ул" и "улица" программа распознавала как одно и тоже. И еще желательно, что бы спорные вопросы программа, все-таки, отдавала на решение пользователю, потому как проверить за программой 320 тыс записей будет не легче чем все сделать в ручку.
Никому не отвечай, кoгда ты зол, ничего не обeщай, когда ты счастлив, никогда нe решай, когда ты грустeн.
 
a.i.mershik,Не пойму, что делаю не правильно. :-( Через Alt+F11 открываю панельку и туда в модуль копирую Ваш текст формулы (макроса) FuzzyVLOOKUP.  Но в моей книге все равно формула не начинает работать. Идет сообщение об ошибке #ИМЯ?  
Подскажите, плиз, что я делаю не так. Что надо сделать, чтобы FuzzyVLOOKUP. заработала в моей книге?
Страницы: 1
Наверх