我正在尝试从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学期,等等。
答案 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解决方案会更简单。