Искать в одной ячейке несколько слов И возвращать все найденные слова - PullRequest
0 голосов
/ 24 сентября 2018

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

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

Apparently I'm not allowed to embed images so this is a link.

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

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

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

1 Ответ

0 голосов
/ 25 сентября 2018

INDEX вернет только одно значение.Используйте 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.

...