|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
|
Сравнение строк в Excel17.02.2011, 18:55. Показов 16186. Ответов 32
Метки нет (Все метки)
Всем привет!
Столкнулся с задачей, достаточно интересной, но в виду отсутствия у меня опыта работы со строками, очень для меня непростой. Задача следующая: Есть, допустим, 500 сток текста, в которых хранятся адреса. Нужно проверить каждый из адресов на совпадения. Т.е. есть ли в таблице еще такие же адреса. Вся проблема заключается в том, что даже самые одинаковые адреса могут быть записаны по-разному. Например: "Москва, ул. Войковская, 26" "город Москва, улица Войковская, дом 26" ну и т.д. Знающие люди, подскажите пожалуйста, верно ли я мыслю? 1) Считываем строку. 2) Разбиваем ее на слова, заменяя все идущие подряд НЕ буквы и/или НЕ цифры на пробел (можно еще оставить "-") 3) Полученную строку сохраняем в переменную. Пусть в strSeek 4) Теперь начинаем по очереди считывать строки для проверки. 5) Проделываем с каждой считанной строкой пункты 2-3 и сохраняем в strTemp 4) С помощью функции InStr(Text) сравниваем strSeek с strTemp 5) Если совпадений по словам 3+, то считаем адреса идентичными. 6) далее в strTemp следующий адрес..и далее далее. Там уже все понятно, и с обработкой это уже другая история. Вот как-то так я себе это представляю. Может быть есть какой-нибудь более деликатный способ? ) Заранее спасибо.
0
|
|
| 17.02.2011, 18:55 | |
|
Ответы с готовыми решениями:
32
Сравнение строк в нескольких файлах excel, копирование несовпадающих строк и их вывод в сводный файл Сравнение строк в Excel Сравнение строк в Excel на совпадение |
|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
|
| 21.02.2011, 06:13 [ТС] | |
|
В общем...вот пример того, как можно сравнивать адреса.
Этот алгоритм далеко не совершенен, и естественно, что его можно (да наверное и нужно) оптимизировать в скорости. Плюс он еще не все адреса может проглотить. Но в целом...это работает. Кто там обещал проставиться?
2
|
|
|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
||
| 03.03.2011, 18:47 [ТС] | ||
![]() А вообще, все зависит только от того, сколько кто-либо готов потратить времени на внесение тех или иных правил. Смысл спора, напомню, был такой: Мол - это невозможно. Резюме - возможно.
0
|
||
| 03.03.2011, 20:29 | ||
|
0
|
||
|
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
|
||
| 04.03.2011, 05:01 | ||
|
город армавир улица советская дом 10 город москва улица большая дом 10
0
|
||
|
1905 / 782 / 31
Регистрация: 11.02.2010
Сообщений: 1,567
|
|
| 05.03.2011, 23:59 | |
|
вообще, программное решение проблемы возможно только двумя способами
-посредством Искусственного Интеллекта (который пока не изобретен) -посредством экспертной системы имеющей в своем составе актуальную БД адресов. однако, если не задаваться целью ПОЛНОЙ автоматизации - задачу можно эффективно решить простым способом. все нормальные люди пишут адрес по одному и тому же шаблону: город ГОРОД улица УЛИЦА дом ДОМ. иногда, вместо, например, "улица" пишут "ул" или "ул.". следовательно, несложно распарсить большинство адресов, после чего их анализ не представляет трудностей. остальные адреса придется проверять вручную. в этом компьютер тоже может помочь. например, специальный мастер будет выводить подозрительно похожие адреса. человек же будет подтверждать или отвергать информацию. для такого мастера можно, для начала, использовать, хотя бы, и ваш алгоритм. по ходу эксплуатации можно будет внести в него некоторые усовершенствования для учета часто встречающихся случаев. если данные поступают, в основном, от одних и тех же людей, есть смысл создать собственную БД адресов, тогда проблемы будут возникать только с появляющимися новыми адресами
0
|
|
|
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 6
|
|
| 29.09.2011, 17:36 | |
|
half-node, доброго времени суток, думаю только Вы мне можете помочь. У меня проблема схожая с вашей с небольшим отличием: адреса располагаются в 2 столбцах попарно, нужно сравнить их и удалить одинаковые Пример.xls
0
|
|
|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
|
| 29.09.2011, 18:06 [ТС] | |
|
artemon_rus, если адреса идентичны, то проблем вообще никаких нет.
Цикл крутит левый столбец, вложенный в него цикл прокручивает правый столбец и сравнивает с текущим текстом основного цикла. Если адреса могут отличаться, типа: Слева - г. Москва, ул. Войкова, а справа - Москва, Войкова ул., то тут да. Нужно ковырять в сторону регулярных выражений. Если у Вас второй вариант, то отпишитесь здесь, я буду дома, скину в личку те достижения, которых я добился в данном вопросе.
1
|
|
|
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 6
|
|
| 30.09.2011, 10:15 | |
|
Адреса могут отличаться (см. пример), причем в правом столбце адрес как правило более полный, сравнивать между собой нужно только адреса, расположенные в одной строке. В принципе достаточно даже стравнивать наименования улиц, но могут быть случаи, что в одном столбце наименование улицы будет, а в другом нет, тогда надо по другим признакам. Массив примерно 150000 строк. Спасибо.
Пример.xls
0
|
|
|
0 / 0 / 0
Регистрация: 29.09.2011
Сообщений: 6
|
|
| 30.09.2011, 17:30 | |
|
half-node, Адреса могут отличаться (см. пример), причем в правом столбце адрес как правило более полный, сравнивать между собой нужно только адреса, расположенные в одной строке. В принципе достаточно даже стравнивать наименования улиц, но могут быть случаи, что в одном столбце наименование улицы будет, а в другом нет, тогда надо по другим признакам. Массив примерно 150000 строк. Спасибо.
Примерно так .xls
0
|
|
|
1 / 1 / 0
Регистрация: 16.01.2014
Сообщений: 9
|
|
| 16.01.2014, 10:21 | |
|
half-node, привет!
Удалось решить эту задачку? У меня вопрос есть - задача подобная, но намного легче.
0
|
|
| 16.01.2014, 10:28 | |
|
Не по теме: Kotaaa, Последняя активность пользователя half-node: 11.10.2013 02:58,
0
|
|
| 16.01.2014, 10:28 | |
|
Как Excel документ, в котором 10000 строк, разбить по 10 строк и сохранить каждые 10 строк в отдельный файл
Функции работы со строками символов: определение размера строки, копирование строк, добавление строк, сравнение строк Сравнение строк одной БД с другой либо как избавится от ненужных строк
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|