Excel 2016:在单元格中搜索多个字词

Excel 2016: Searching for multiple terms in a cell

我正在尝试在 Excel 2016 年的单元格中搜索具有 OR 条件的多个字符串。

例如我有一个字符串 abcd1234,我想找到 ab OR 12.

我使用的是德语版本,其中函数 SEARCH 被调用 SUCHEN,它的行为应该相同。

我发现 this answer 建议这个解决方案:

SEARCH({"Gingrich","Obama","Romney"},C1).

我还发现 this website 提示相同的语法:

SEARCH({"red","blue","green"},B5)

this website相同:

SEARCH({"mt","msa","county","unemployment","|nsa|"},[@Tags])

所以他们基本上说做一个搜索词列表,用逗号分隔,用花括号括起来就可以了。

但是将这些放入 Excel 2016 只会导致通常无意义的 Excel 错误消息,该消息表示公式有错误,并且始终在大括号中突出显示整个部分。

以第一个示例为例,我可以 Excel 不抛出错误消息的唯一方法是像这样更改语法:

=SEARCH({"Gingrich";"Obama";"Romney"};C1)

但是用分号分隔搜索词并不能正确应用 OR 条件,所以这不是解决方案。

我从 this answer 了解到我可以进行单独的搜索并将它们与条件串在一起,但我想避免这种情况,而且我也想知道为什么语法应该多个来源确认的工作对我不起作用。

编辑:

好的,我开始明白这一点了,感谢 Solar Mike:

代码 =IF(COUNT(SEARCH({"Romney","Obama","Gingrich"},A1)),1,"") 确实可以正常工作。

=COUNT(SEARCH({"Romney","Obama","Gingrich"},A1)) 有效。

但是=SEARCH({"Romney","Obama","Gingrich"},A1)没有。

=ISNUMBER(SEARCH({"Gingrich","Obama","Romney"},A1))不行。

我很想知道原因。

好的,这样就可以了:

OR(IFERROR(FIND("ab",A1,1),0),IFERROR(FIND("12",A1,1),0))

在此处测试:

我点击了其中一个链接和这样的版本:

=IF(COUNT(SEARCH({"Romney","Obama","Gingrich"},C1)),1,"")

对我来说按预期工作,但如果搜索是孤立的,它就会失败,我还没有找到解释...

与其他数组样式公式一样,传递数组的部分必须包含在某种聚合函数中,以使其扫描整个数组 - 否则它只会查看数组的第一个元素。所以像 COUNT、SUM、SUMPRODUCT 之类的东西就可以了。

我的首选是

=OR(ISNUMBER(SEARCH({"a","b","c"},A1)))

因为如果您需要 AND 逻辑,您可以轻松地将其更改为:

=AND(ISNUMBER(SEARCH({"a","b","c"},A1)))