Как проверить, есть ли в содержимом ячейки хотя бы одно из слов из определенного набора?

Как я могу использовать формулу SEARCH с диапазоном значений-критериев поиска для проверки содержимого ячейки на наличие одного из заданных слов (например: "как", "топ", "лучшая" и т. д.) и определения того, является ли данная ключевая фраза информативным запросом?
  • 22 апреля 2024 г. 14:50
Ответы на вопрос 2
Вы можете использовать формулу SEARCH в Excel для проверки содержимого ячейки на наличие одного из заданных слов. 

Пример формулы выглядит так:

=IF(OR(ISNUMBER(SEARCH("как", A1)), ISNUMBER(SEARCH("топ", A1)), ISNUMBER(SEARCH("лучшая", A1)), ...), "Да", "Нет")

Здесь A1 - это ячейка, содержимое которой вы хотите проверить. Вы можете добавить сколько угодно слов в эту формулу, разделяя их запятыми. 

Формула работает так: функция SEARCH ищет каждое слово из списка в содержимом ячейки A1. Если слово найдено, функция возвращает числовое значение, если нет - ошибку #Н/Д. Функция ISNUMBER проверяет, является ли результат числом (слово найдено), и функция OR объединяет все условия в одно. 

Если хотя бы одно из слов найдено в содержимом ячейки A1, то формула вернет "Да", иначе - "Нет". 

Это позволит вам проверить содержимое ячейки на наличие заданных ключевых слов и определить, является ли оно информативным запросом.
Вариант: с помощью пользовательской функции 
Option Explicit

Public Function SearchClickbait(TestString As String, ClickbaitRange As Range) As String
' ClickbaitRange - диапазон на листе с ключевыми словами
' TestString - ячейка с анализируемым текстом
Dim ws As Worksheet
Set ws = ActiveSheet
Dim rCell As Range

Dim Pos As Long

With ws
SearchClickbait = "не информативный запрос"
For Each rCell In ClickbaitRange.Cells

Pos = InStr(1, TestString, rCell.Text, 1)
If Pos >= 1 Then
SearchClickbait = "(!)информативный запрос"
Exit Function
Else
End If
Next rCell

End With

End Function
Похожие вопросы