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

3
我正在尝试在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条件,因此这不是解决方案。我知道从这个答案中,我可以进行单独的搜索并使用条件串联它们,但我想避免这种情况,并且我还想知道为什么根据多个来源确认的语法对我不起作用。编辑:好吧,我开始理解这个问题了,感谢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))也无效。

我很想知道原因。


看起来您设置了国际设置,使用分号“;”作为分隔符而不是逗号“,”。如果您愿意,可以更改此设置。 - Solar Mike
在我看来,从这些链接MsHelp1MsHelp2来看, suchen() 在 Excel 中就是 find()。 - p._phidot_
@SolarMike:谢谢,更改国际设置解决了第一个问题。 - Khris
2个回答

3

好的,这个是可行的:

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

这里测试一下: 在此输入图片描述 我点击了其中一个链接,版本如下:
=IF(COUNT(SEARCH({"Romney","Obama","Gingrich"},C1)),1,"")

对我来说,按预期工作,但如果搜索被隔离,它就会失败,我没有找到解释...


谢谢,现在它运行得很好,尽管我也不理解Excel行为背后的逻辑。 - Khris
我不明白为什么搜索无法单独工作 - 这很奇怪,但如果有效的解决方案能完成工作... :) - Solar Mike

2

像其他数组式公式一样,提供数组的部分必须用某种聚合函数括起来,以便使其扫描整个数组,否则它只会查看数组的第一个元素。因此,任何像COUNT、SUM、SUMPRODUCT这样的函数都可以起到作用。

我偏爱的是

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

如果你想要使用 AND 逻辑,你可以轻松地将它更改为以下内容:

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

谢谢您的解释,我明白了。 - Khris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接