Excel 2016:在单元格中搜索多个术语

时间:2018-07-23 06:44:38

标签: excel excel-formula excel-2016

我试图在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))也不起作用。

我很想知道为什么。

2 个答案:

答案 0 :(得分:2)

好的,这可以工作:

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

在这里测试: enter image description here

我遵循了其中一个链接和这样的版本:

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

按我的预期工作,但是如果隔离搜索,它将失败,并且我没有找到解释...

答案 1 :(得分:1)

与其他数组样式公式一样,传递数组的部分必须封装在某种聚合函数中,以使其遍历数组-否则,它仅查看数组的第一个元素。因此,像COUNT,SUM,SUMPRODUCT之类的东西都可以解决问题。

我首选的是

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

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

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