Искать в одной ячейке несколько слов И возвращать все найденные слова

Я весь день пытался написать формулу в Excel, которая может искать строку по нескольким ключевым словам, а затем печатать, какие ключевые слова она нашла в ячейке.

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

Очевидно, мне не разрешено вставлять изображения, поэтому это ссылка.

=INDEX($C$2:$C$8,MATCH(1,COUNTIF(B2,"*" & $C$2:$C$8 & "*"),0))

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

И это было здорово! Но теперь я застрял, сбит с толку и расстроен. Я не могу сказать, нужно ли мне найти UDF или есть какой-то уже существующий VBA, кто-то где-то написал для этого, поэтому любая помощь приветствуется!


person DirtAndPlantScientist    schedule 24.09.2018    source источник


Ответы (1)


ИНДЕКС вернет только одно значение. Используйте TEXTJOIN как формулу массива

=TEXTJOIN("; ",TRUE,IF(ISNUMBER(SEARCH(C$2:$C$8,B2)),C$2:$C$8,""))

Как формула массива, она должна быть подтверждена комбинацией Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.

TEXTJOIN был представлен в Office 365 Excel. Если у вас нет Office 365, вам понадобятся отдельные ячейки для каждого возвращаемого слова или vba.

person Scott Craner    schedule 24.09.2018