我想在单元格中搜索单词列表。
我认为这可以作为数组公式:
{=FIND(<list of words I want to search for>,<cell I want to search>)}
但只有当我正在搜索的单元格中的单词位于我正在搜索的单词列表的第一行时,它才会找到匹配项。有没有办法编写一个遍历整个列表的公式?我希望它不只是返回 TRUE/FALSE。我知道如何在单元格中搜索单词列表,并根据列表中的单词是否存在于单元格中返回 TRUE/FALSE。我想真正知道找到了哪个单词或其位置。
如果未找到匹配项,这将返回匹配的单词或错误。对于这个例子,我使用了以下内容。
要搜索的单词列表:G1:G7
要搜索的单元格:A1
=INDEX(G1:G7,MAX(IF(ISERROR(FIND(G1:G7,A1)),-1,1)*(ROW(G1:G7)-ROW(G1)+1)))
Enter as an array formula by pressing Ctrl+Shift+Enter.
该公式的工作原理是,首先查看单词列表以查找匹配项,然后将单词在列表中的位置记录为正值(如果找到)或负值(如果未找到)。该数组中的最大值是列表中找到的单词的位置。如果没有找到单词,则将负值传递给INDEX()
函数,抛出错误。
要返回匹配单词的行号,可以使用以下命令:
=MAX(IF(ISERROR(FIND(G1:G7,A1)),-1,1)*ROW(G1:G7))
This also must be entered as an array formula by pressing Ctrl+Shift+Enter. It will return -1
if no match is found.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)