Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.09.2013, 10:50   #1
user7789
Пользователь
 
Регистрация: 29.07.2009
Сообщений: 65
По умолчанию поиск одинаковых символов

комрады помогите одолеть проблемку...

в столбце А есть данные
1. аппле компани ллп
2. эльдарадо ОАО
3. citizen llp



в столбце b есть данные
1. компани аппле ooo
2. ОАО эльдарадо компани
3. jsc citizen

данные в двух столбца по "смыслу" одинаковые, вот по написанию разные,
какой формулой сравнить эти данные ?

я сорри, что не выкладываю файл, админ лишил таких прав
user7789 вне форума Ответить с цитированием
Старый 11.09.2013, 11:59   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

это не формулой надо сравнивать,
а при помощи искусственного интеллекта (который всё ещё не создан)

Есть способы «нечеткого» сравнения, - но ожидать более-менее приличное качество от таких методов не приходится.


--------- вдруг кому пригодится --------------
Цитата:
Надстройка LOOKUP предназначена для сравнения и подстановки значений в таблицах Excel.

Если вам надо сравнить 2 таблицы (по одному столбцу, или по нескольким),
и для совпадающих строк скопировать значения выбранных столбцов из одной таблицы в другую,
надстройка «Lookup» поможет сделать это нажатием одной кнопки.


В настройках программы можно задать:
  • где искать сравниваемые файлы (использовать уже открытый файл, загружать файл по заданному пути, или же выводить диалоговое окно выбора файла)
  • с каких листов брать данные (варианты: активный лист, лист с заданным номером или названием)
  • какие столбцы сравнивать (можно задать несколько столбцов)
  • значения каких столбцов надо копировать в найденные строки (также можно указать несколько столбцов)

Скачать надстройку для сравнения таблиц Excel и копирования данных из одинаковых строк


Последний раз редактировалось EducatedFool; 30.09.2013 в 09:41.
EducatedFool вне форума Ответить с цитированием
Старый 11.09.2013, 12:11   #3
user7789
Пользователь
 
Регистрация: 29.07.2009
Сообщений: 65
По умолчанию

хотя бы любые 5 символов (*?????*) из столбца A со столбцом B.
а так, возможно?
user7789 вне форума Ответить с цитированием
Старый 11.09.2013, 12:35   #4
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Первые пять из А с любым вхождением в В:
Код:
=ПОИСК(ЛЕВСИМВ(A1;5);B1)
Если формула возвращает число - значит вхождение есть
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 11.09.2013, 13:32   #5
user7789
Пользователь
 
Регистрация: 29.07.2009
Сообщений: 65
По умолчанию

Serge 007 , спасибо, но не подходит!
user7789 вне форума Ответить с цитированием
Старый 11.09.2013, 13:48   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

user7789, как Вам уже было сказано выше, в общем случае данная задача решения НЕ ИМЕЕТ! Нужен искусственный интеллект, который в рамках решения данной задачи ещё не создан.

Поэтому, решать задачу придётся с привлечением естественного интеллекта в виде живого оператора, который и будет решать (кстати, опыт показывает, что далеко не всегда правильно), соответствует ли "jsc citizen" записи "citizen llp" (кстати, не знаю, как для Вам, а для меня соответствие отнюдь не очевидно)

Единственно, чем Вы можете облегчить жизнь оператору - для каждой строчки выдать список наиболее подходящих (ну, например, тех, у которых без учёта регистра полностью совпадает одно, самое длинное слово - но это уже всё эвристика и псевдо-ИИ)...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.09.2013, 14:10   #7
strannick
Форумчанин
 
Регистрация: 21.10.2011
Сообщений: 433
По умолчанию

Составьте список ключевых слов - аппле, эльдарадо, citizen и т.д. Сравнивайте ваши варианты не между собой, а с ними. Выводите процент совпадения (где-то тут на форуме было решение, не могу найти ссылку). Ну а потом придумывайте обработку. Например, приводите к единому виду оба варианта. Можно через таблицу соответствий. Все, конечно, точно не сработает, но жизнь себе облегчите. Только вот не пойму, почему в заголовке "Поиск одинаковых символов"?
strannick вне форума Ответить с цитированием
Старый 11.09.2013, 16:55   #8
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

можно так попробовать. Искать совпадения по первому слову... Но с таким подходом далеко не уедешь

Код:
=ЕСЛИОШИБКА(ЕСЛИ(ПОИСК("*"&ПСТР(A1;1;ПОИСК(" ";A1)-1)&"*";B1)=1;"есть совпадения по первому слову";"");)
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 11.09.2013, 17:14   #9
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

или так:

Код:
Sub sovpad()
Dim lsRow&, i&, j&, arr, s$
lsRow = Range("A1").CurrentRegion.Rows.Count
    For i = 1 To lsRow
        arr = Split(Cells(i, 1), " ")
        For j = LBound(arr) To UBound(arr)
            s = "*" & arr(j) & "*"
            If Cells(i, 2) Like s Then Cells(i, 4) = "+": Exit For Else Cells(i, 4) = "-"
        Next j
    Next i
End Sub
но тоже для первого совпадения!
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Старый 12.09.2013, 09:35   #10
user7789
Пользователь
 
Регистрация: 29.07.2009
Сообщений: 65
По умолчанию

staniiislav, большое спасибо

но к примеру,
ООО Металлзаказ и ООО*ТЕНЛЕX ставит +

можно ли совпадение считать по 5 символам?
user7789 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C] Удаление одинаковых символов со строки decantnik Помощь студентам 6 01.09.2013 00:37
При вводе более 3-х одинаковых символов удалять символ Алексей_2012 Общие вопросы Delphi 17 22.04.2013 20:04
Удаление одинаковых символов из массива maxflint Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 09.05.2010 13:18
вычёркивание одинаковых символов в словах 555shiro Общие вопросы C/C++ 1 04.01.2010 12:45
Максимальное кол-во одинаковых символов MAKEDON Общие вопросы C/C++ 1 11.04.2009 16:23