Программное обеспечение
Работы в Excel c текстом.
Подскажите одну вещь. Например, существует ячейка с текстом " социальные нормы" и другая ячейка " социальные нормы общества". Как сделать так, чтобы Excel нашел словосочетание первой ячейки среди слов второй, а при совпадении вывел количество этих самых совпадений? Знаю, что посчитать кол-во совпаденных значений можно с помощью функции "счётесли", но не знаю, как решить проблему сравнения ячеек. Помогите, пожалуйста, в решении данной задачи.
Под критерием "похожести" понимается максимальное количеству подряд идущих совпадений символов. В такой непростой ситуации вполне возможно с достаточно высокой долей вероятности подобрать правильное слово с помощью специальной функции.
Чтобы добавить такую пользовательскую функцию, сначала войдем в редактор Visual Basic (меню Сервис - Макрос - Редактор Visual Basic или Alt+F11) и добавим туда новый модуль через меню Insert - Module. Затем в получившийся пустой модуль надо скопировать вот такой код нашей функции:
Public Function FindSame(Txt As String, Rng As Range) As String
For Each cell In Rng
If Equality(cell.Value, Txt) > eqmax Then
FindSame = cell.Value
eqmax = Equality(cell.Value, Txt)
End If
If eqmax < 3 Then FindSame = "не найдено"
Next cell
End Function
Private Function Equality(t1 As String, t2 As String) As Integer
Equality = 0
For n = 1 To Len(t1)
For k = n To Len(t1)
s = Mid(t1, n, k)
s1 = "*" & s & "*"
If t2 Like s1 Then
If (k - n + 1) > Equality Then Equality = k - n + 1
End If
Next k
Next n
End Function
Теперь можно закрыть редактор и вернуться в Excel. В мастере функций в меню Вставка - Функция (Insert - Function) в категории Пользовательские (User defined) появится наша новая функция FindSame, которую можно использовать со следующими аргументами:
=FindSame(текст_который_ищем; диапазон_поиска)
Т. е. в показанном выше примере в ячейку B2 надо ввести
=FindSame(A2;$D$2:$D$11)
и скопировать формулу на весь столбец.
Если количество подряд идущих совпадений символов меньше трех, то функция выводит "не найдено". Большие и маленькие буквы - не различаются.
Чтобы добавить такую пользовательскую функцию, сначала войдем в редактор Visual Basic (меню Сервис - Макрос - Редактор Visual Basic или Alt+F11) и добавим туда новый модуль через меню Insert - Module. Затем в получившийся пустой модуль надо скопировать вот такой код нашей функции:
Public Function FindSame(Txt As String, Rng As Range) As String
For Each cell In Rng
If Equality(cell.Value, Txt) > eqmax Then
FindSame = cell.Value
eqmax = Equality(cell.Value, Txt)
End If
If eqmax < 3 Then FindSame = "не найдено"
Next cell
End Function
Private Function Equality(t1 As String, t2 As String) As Integer
Equality = 0
For n = 1 To Len(t1)
For k = n To Len(t1)
s = Mid(t1, n, k)
s1 = "*" & s & "*"
If t2 Like s1 Then
If (k - n + 1) > Equality Then Equality = k - n + 1
End If
Next k
Next n
End Function
Теперь можно закрыть редактор и вернуться в Excel. В мастере функций в меню Вставка - Функция (Insert - Function) в категории Пользовательские (User defined) появится наша новая функция FindSame, которую можно использовать со следующими аргументами:
=FindSame(текст_который_ищем; диапазон_поиска)
Т. е. в показанном выше примере в ячейку B2 надо ввести
=FindSame(A2;$D$2:$D$11)
и скопировать формулу на весь столбец.
Если количество подряд идущих совпадений символов меньше трех, то функция выводит "не найдено". Большие и маленькие буквы - не различаются.
Нет времени читать справку? F1
Похожие вопросы
- Как в Excel найти текст из столбца А и сравнить из найденной строки 2 числа в столбце B и С, если Bi=Ci то сумма +1?
- Как преобразовать сканированный файл PDF в Excel или Word?
- Помогите ответить на вопросы MS Excel (последний)
- Есть ли возможность «научить» EXCEL расставлять данные согласно РУССКОМУ алфавиту?
- Форматирование в Excel
- СРОЧНО! Можно ли открывать документ excel 2000 года, в excel 2010?
- Разве Microsoft Excel создан для рисования?
- Помогите с формулой в Excel для выведения слова, исходя из заданного диапазона
- Чем восстановить и СОХРАНИТЬ excel файл?
- Как изменить место ячеек исходя из их содержимого Excel