Поиск нескольких строк в Excel для включения полного совпадения слов при игнорировании точек с запятой

#excel #string #excel-formula #string-matching

#excel #строка #excel-формула #сопоставление строк

Вопрос:

У меня есть таблица Excel с полем под названием «ключевые слова», содержащим несколько слов, которые различаются для каждой записи. У меня есть еще одно поле под названием «категория фармакологии», в котором есть формула, которая выводит «да», если какой-либо из пользовательских, предопределенных списков терминов появляется в записи поля «ключевые слова», и «нет», если нет.

Проблема, с которой я сталкиваюсь, заключается в том, что фрагменты слов отображаются как «да» в этой формуле, например, если слово «агонист» появляется в поле «ключевые слова», а в моем списке «категория фармакологии» слово «антагонист» определено как слово, это приведет к «да», потому что это содержится в слове.

Чтобы преодолеть это, я могу использовать пробелы по обе стороны от слова при создании списка слов — » агонист». Это решило бы проблему, однако, поскольку иногда эти слова разделяются точкой с запятой, слово «агонист;» в данном случае не вернет «да».

Мне нужен способ запустить этот поиск, чтобы обрабатывать эти точки с запятой как пробелы. Самое близкое решение, которое я нашел, — это использование команды substitute, обсуждаемой здесь, но я изо всех сил пытаюсь интегрировать ее в мою существующую формулу без ошибок.

Рабочая формула, которую я использую до сих пор, приведена ниже:

 =IF(SUMPRODUCT(--ISNUMBER(SEARCH({" Drug effects "," Drug therapy "," antagonist " },C2)))>0,"YES","NO")
 

Это предполагает, что ячейка C2 содержит запись «ключевых слов», которая может выглядеть примерно как «антагонист; агонист; ДНК» и т.д.

Мне просто нужно это изменить, чтобы игнорировать точки с запятой, чтобы «антагонист;» отображалось как «да», когда «антагонист» включен в список предопределенных слов.

Любая помощь приветствуется

Комментарии:

1. =IF(SUMPRODUCT(--ISNUMBER(SEARCH({" Drug effects "," Drug therapy "," antagonist " }, SUBSTITUTE(C2, ";", " ") )))>0,"YES","NO")

2. =ЕСЛИ(ИЛИ(ISNUMBER(SEARCH({» Лекарственные эффекты «, » Лекарственная терапия «, » антагонист «},» «amp;ЗАМЕНИТЬ(C2,»;»,» «)))),» ДА», «НЕТ»)

3. Потрясающе, спасибо. Оба эти решения работают хорошо.