Excel: найти и получить несколько терминов из списка - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь извлечь все термины из списка из текста в ячейке Excel.

Я пробовал это раньше, и это работает! Но он дает мне только один термин, и мне требуется найти все из них: Excel: поиск списка строк в определенной строке с использованием формул массива?

это код, который я сейчас использую:

Список слов для поиска: G1: G7

Ячейка для поиска в: A1

 =INDEX(G1:G7,MAX(IF(ISERROR(FIND(G1:G7,A1)),-1,1)*(ROW(G1:G7)-ROW(G1)+1)))

Я хотел бы, чтобы массив терминов, разделенных запятой, по возможности:

срок 1, срок 2, срок 3, срок 4 и т. Д.

1 Ответ

0 голосов
/ 06 января 2019

Если ваша версия Excel имеет функцию TEXTJOIN, вы можете использовать эту формулу array :

=TEXTJOIN(",",TRUE,IFERROR(INDEX(searchWords,N(IF(1,1/(ISNUMBER(FIND(" "&searchWords&" "," "&A1&" ")))*ROW(searchWords)))),""))

где searchWords относится к вашему списку слов в G1:G7

Примечания:

  • Поскольку это формула массива, вам необходимо «подтвердить» ее, удерживая ctrl + shift при нажатии и ввести . Если вы сделаете это правильно, Excel поместит фигурные скобки {...} вокруг формулы, как показано в строке формул

  • Это зависит от того, является ли searchWords одним словом и разделяется в A1 на пробел . Если есть пунктуация, вам нужно будет использовать вложенные функции SUBSTITUTE, чтобы заменить знаки препинания пробелами.

  • Если вышеупомянутое не так, то решение VBA будет проще.

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