Excel:从列表中查找和检索多个术语

时间:2019-01-06 05:24:29

标签: excel excel-formula

我正在尝试从Excel单元格中的文本列表中检索所有术语。

我之前已经尝试过了,并且可以使用!但这只给了我一个任期,我需要找到所有这些人:Excel: Search for a list of strings within a particular string using array formulas?

这是我当前正在使用的代码:

要搜索的单词列表: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 :(得分:1)

如果您的Excel版本具有TEXTJOIN功能,则可以使用以下 array 公式:

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

其中searchWords是指您在G1:G7中的单词列表

注释:

  • 由于这是一个数组公式,因此您需要在按下 enter 的同时按住 ctrl + shift 来“确认”它。如果正确执行此操作,则Excel将按照公式栏中的说明在公式周围放置括号{...}

  • 这取决于searchWords是一个单词,并且在A1中由空格隔开。如果存在标点符号,则需要使用嵌套的SUBSTITUTE函数将标点符号替换为空格。

  • 如果不是上述情况,则VBA解决方案会更简单。