Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Поиск похожего слова. / 17 сообщений из 17, страница 1 из 1
28.02.2007, 14:02:47
    #34360614
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
Подобное выражение
s="диск"
Set r = ActiveSheet.Range("A1:A3000")
Set g = r.Find(What:=s)
ищет в столбце А в строках от 1 до 3000 точное совпадение или вхождение в слово слова диск, без учета регистра.
Вопрос: как организовать поиск похожего слова. Например с отличием в 1 букву? Или похожее скажем на 80 процентов?
...
Рейтинг: 0 / 0
28.02.2007, 14:53:55
    #34360837
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
например, в цикле поочередно менять по одной букве на "?" и собирать результаты поиска
...
Рейтинг: 0 / 0
28.02.2007, 15:11:38
    #34360905
Deggasad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
Всё равно наверное придётся думать какие похожие слова могут встречаться
Что-то типа "диск*","*диск","дис*", "*иск"
...
Рейтинг: 0 / 0
28.02.2007, 15:20:02
    #34360940
excel-ufa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
http://www.planetaexcel.ru/tip.php?aid=68&PHPSESSID=99bc51d19af2a8c6b82ffd4c303c64f1
просмотри данную функцию
...
Рейтинг: 0 / 0
28.02.2007, 16:20:05
    #34361184
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
excel-ufahttp://www.planetaexcel.ru/tip.php?aid=68&PHPSESSID=99bc51d19af2a8c6b82ffd4c303c64f1
просмотри данную функцию
Это не совсем то. Но поже, что можно приспособить.
Спасибо!
...
Рейтинг: 0 / 0
06.03.2007, 17:02:19
    #34375253
Sinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
вот, может это поможет
...
Рейтинг: 0 / 0
07.03.2007, 00:19:05
    #34376104
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
еще вариант:

http://j-walk.com/ss/excel/tips/tip77.htm

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
07.03.2007, 09:26:30
    #34376453
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
KL (XL)еще вариант:

http://j-walk.com/ss/excel/tips/tip77.htm

KL
[MVP - Microsoft Excel]
Я так реализовал
Sub poiskpoh(pp)
Rem поиск похожего слова
Set r = ActiveSheet.Range("C" & kon & ":C60000")
Set g = r.Find(What:="")
For i = 3 To g.Row - 1

If Len(pp) = Len(Range("C" & i)) Then
s4et = 0
txt = UCase(pp)
mask = UCase(Range("C" & i))
For j = 1 To Len(pp)
If Mid(txt, j, 1) = Mid(mask, j, 1) Then s4et = s4et + 1
Next j
Rem MsgBox (Range("C" & i) & " " & pp & " " & s4et)
If s4et / Len(pp) > 0.5 Then MsgBox (s4et & " букв из " & Len(pp) & " Слово " & pp & " похоже на слово " & Range("C" & i) & " с точностью " & 100 * s4et / Len(pp) & " %")
End If

Next i
End Sub
...
Рейтинг: 0 / 0
07.03.2007, 10:33:32
    #34376679
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
talgat
Я так реализовал
Sub poiskpoh(pp)
Rem поиск похожего слова
Set r = ActiveSheet.Range("C" & kon & ":C60000")
Set g = r.Find(What:="")
For i = 3 To g.Row - 1

If Len(pp) = Len(Range("C" & i)) Then
s4et = 0
txt = UCase(pp)
mask = UCase(Range("C" & i))
For j = 1 To Len(pp)
If Mid(txt, j, 1) = Mid(mask, j, 1) Then s4et = s4et + 1
Next j
Rem MsgBox (Range("C" & i) & " " & pp & " " & s4et)
If s4et / Len(pp) > 0.5 Then MsgBox (s4et & " букв из " & Len(pp) & " Слово " & pp & " похоже на слово " & Range("C" & i) & " с точностью " & 100 * s4et / Len(pp) & " %")
End If

Next i
End Sub
Коментарии: слова (база) в столбце "С" с 3 строки. Выводятся на подтверждение слова в которых буквы совпали более чем на 50% (If s4et / Len(pp) > 0.5) от длины слова. В другой процедуре выводится еще запрос типа "добавить похожее слово в базу" и "произвести замену в предложении"
...
Рейтинг: 0 / 0
07.03.2007, 10:33:47
    #34376680
Sinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
Код: plaintext
If Len(pp) = Len(Range("C" & i)) Then

Т.е. Если в искомом слове утеряна одна буква, то оно не похоже?

типа "подоконник" и "подоконик"
...
Рейтинг: 0 / 0
07.03.2007, 10:51:02
    #34376735
Ffffffffffffff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
Делал когда-то похожую программу.
Создал таблицу соответствий.
В одной колонке правильное название фирм, в другой варианты неправильного написания.
Например:
Фирма 1 - Фир*1.
Неправильные значения в таблице исправляются на правильные.
Программа до сих пор работает. Табличка пополняется.

Проблема только в том, что может быть несколько похожих названий.
Автоматизация в таком случае приведет к ошибкам.

В общем случае, это скорее организационный вопрос (создание справочников),
чем программный.
...
Рейтинг: 0 / 0
07.03.2007, 12:23:16
    #34377053
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
Sinner
Код: plaintext
If Len(pp) = Len(Range("C" & i)) Then

Т.е. Если в искомом слове утеряна одна буква, то оно не похоже?

типа "подоконник" и "подоконик"
Ваша правда. Как быть?
...
Рейтинг: 0 / 0
07.03.2007, 15:02:35
    #34377676
Sinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
я до этого присылал функцию
...
Рейтинг: 0 / 0
07.03.2007, 15:13:28
    #34377727
Sinner
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
в первом своем ответе
...
Рейтинг: 0 / 0
07.03.2007, 15:28:46
    #34377793
talgat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
Sinnerв первом своем ответе
Скачал. Разберусь. Спасибо всем!
...
Рейтинг: 0 / 0
10.07.2007, 10:20:39
    #34649390
vbapro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
talgat Sinnerв первом своем ответе
Скачал. Разберусь. Спасибо всем!
как реализовал? поделись опытом
...
Рейтинг: 0 / 0
11.07.2007, 18:21:38
    #34654533
kyber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel. Поиск похожего слова.
Вообще, задачка довольно нетривиальная. Советую поискать сайтах-коллекциях алгоритмов и т.п. На каком-то сайте по Дельфи я встречал парочку алгоритмов, реализующих неточный поиск - функция возвращала определенную степень похожести (в одном из них даже прорабатывался вариант написания задом-наперед). Но ссылки у меня не осталось:(
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel. Поиск похожего слова. / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]