Excel中:使用数组公式在特定string中searchstring列表?
我想search一个单元格的单词列表。 我认为这将作为一个数组公式:
{=FIND(<list of words I want to search for>,<cell I want to search>)}
但是当我正在search的单元格中的单词位于我正在search的单词列表的第一行时,它只会find匹配。 有没有什么办法可以写出一个看起来整个列表的公式? 而且我宁愿如果它不只是返回TRUE / FALSE。 我知道如何search单元格的单词列表,并根据单元格中是否存在单词,返回TRUE / FALSE。 我想知道哪个单词被find,或者它的位置。
这将返回匹配的单词或错误,如果没有find匹配。 对于这个例子,我使用了以下内容。
要search的单词列表: G1:G7
要search的单元格: A1
=INDEX(G1:G7,MAX(IF(ISERROR(FIND(G1:G7,A1)),-1,1)*(ROW(G1:G7)-ROW(G1)+1)))
按Ctrl + Shift + Enter作为数组公式input 。
这个公式首先查找单词列表来查找匹配,然后将单词在列表中的位置logging为正值,如果未find,则将其logging为负值。 该数组中最大的值是列表中find的单词的位置。 如果找不到任何单词,则将负值传递给INDEX()
函数,并引发错误。
要返回匹配单词的行号,可以使用以下内容:
=MAX(IF(ISERROR(FIND(G1:G7,A1)),-1,1)*ROW(G1:G7))
这也必须通过按Ctrl + Shift + Enter作为数组公式input 。 如果找不到匹配,它将返回-1
。
为像我这样的人添加这个答案是一个真实/错误的答案是完全可以接受的
OR(IF(ISNUMBER(SEARCH($G$1:$G$7,A1)),TRUE,FALSE))
或者区分大小写
OR(IF(ISNUMBER(FIND($G$1:$G$7,A1)),TRUE,FALSE))
search条件的范围是G1:G7
记得按CTRL + SHIT + ENTER
- 使用分隔符将您的单词列表添加到单词fe中
- 在查找调用交换参数 – 我们希望search如果单元格的值匹配模式string中的一个string
{=FIND("cell I want to search","list of words I want to search for")}
- 如果模式相似,就有可能获得比想要更多的结果,我们通过添加“|”来限制正确的结果。 (单元格公式很好)单元格G3可以包含:
{=SUM(FIND($A$1:$A$100&"|";A3))}
这确保电子表格将比较string像“cellvlaue |” againts“pattern1 |”,“pattern2 |” 如pattern1 =“新添加”,pattern2 =“added”(匹配“added”的所有单元格之和会过高,包括匹配“新添加”的单元格的目标值,这将是一个逻辑错误)