Поиск в Excel в списке подстрок - PullRequest
0 голосов
/ 02 мая 2018

Я ищу формулу в MS Excel, чтобы проверить, соответствует ли ячейка, содержащая предложение, (хотя бы) одной подстроке в заданном диапазоне, и, если это так, возвращает значение подстроки .

Я могу лучше всего объяснить это на следующем примере. Если предложение (справа) содержит один из фруктов, определенных в таблице (слева), результат должен вернуть (первый) соответствующий фрукт :

New example

Предпочтительно, функция поиска должна быть без учета регистра. Кроме того, я не могу использовать VBA - это должно быть выполнено с использованием собственных функций Excel.

Заранее спасибо!

1 Ответ

0 голосов
/ 02 мая 2018

Для этого вы можете использовать SEARCH в формуле массива. Затем используйте INDEX и MATCH с результатами SEARCH:

=INDEX(Substrings, MATCH(TRUE, ISNUMBER(SEARCH(Substrings, Sentence)), 0))

Поскольку это формула массива, вам нужно использовать Ctrl + Shift + Ввести после ввода формулы вместо нажатия только Enter .

РЕДАКТИРОВАТЬ: я забыл упомянуть, что вышеупомянутая формула чувствительна к регистру. Спасибо jblood94 за упоминание этого. Следующая формула использует LOWER, чтобы сделать ее нечувствительной к регистру.

=INDEX(Substrings, MATCH(TRUE, ISNUMBER(SEARCH(LOWER(Substrings), LOWER(Sentence))), 0))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...