Excel:搜索单元格中的多个词语

23

我在Excel中使用这个方程来搜索单元格内的术语。

=IF(ISNUMBER(SEARCH("*Gingrich*",C1)),"1","")

这个方程式在C1中搜索Gingrich是否存在,如果存在,则显示1。

我想要做的就是一次搜索多个词。有人知道如何添加OR函数,以便我可以搜索Gingrich OR Obama OR Romney等吗?

4个回答

46

另一种方式

=IF(SUMPRODUCT(--(NOT(ISERR(SEARCH({"Gingrich","Obama","Romney"},C1)))))>0,"1","")

此外,如果您将数值列表存储在A1到A3中,则可以使用

=IF(SUMPRODUCT(--(NOT(ISERR(SEARCH($A$1:$A$3,C1)))))>0,"1","")

在Search()函数中,通配符并不是必需的,因为Search()返回找到的字符串的位置。


哇!我喜欢通过逗号输入术语的简单方式。此外,从另一个地方输入范围也可能很方便。当你拥有Excel时,谁还需要搜索工具包呢! - Chris J. Vargo
1
很棒的解决方案(即使它是在SO上)。希望我能给它点赞两次。我只是将其调整为从表中提取值,而不是范围。谢谢。 - dav
@teylyn,我该如何在另一个字符串中返回找到的字符串?我正在尝试搜索整行以查找多个字符串,如果找到其中任何一个,则将其放置在另一个单元格中。例如=SUMPRODUCT(--ISNUMBER(SEARCH({"Adobe ","Microsoft ","google ","Office "},G2)))>0。在这种情况下,如果找到adobe或其他2个字符串,则使用该值而不是TRUE。谢谢。 - Stryker
这也适用于表格,将 $A$1:$A$3 替换为 Table1[col] - psychonomics
1
@exSnake 大多数欧洲语言设置使用分号作为列表分隔符(以及在公式中),因为逗号被用作小数分隔符。不仅在意大利如此。这是美国和欧洲设置之间的主要区别之一,当初学者看到互联网上的公式时,经常会遇到困难。 - teylyn
显示剩余8条评论

17

尝试使用COUNT函数,如下所示

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

请注意,您不需要通配符(如teylyn所说),除非有特定原因,“1”不需要引号(实际上它会变成文本值)


1
我该如何返回找到的值,而不是1或TRUE? - Stryker

7
这将为您完成此操作:
=IF(OR(ISNUMBER(SEARCH("Gingrich",C3)),ISNUMBER(SEARCH("Obama",C3))),"1","")

在名字所在的C列右侧的函数中,结果如下:

Romney  
Gingrich    1
Obama       1

1
非常感谢,我看到只需添加另一个ISNUMBER和SEARCH就可以正常工作。 - Chris J. Vargo
2
我编辑了我的答案,删除了通配符,这是 @teylyn 建议的。对于这种情况,在 SEARCH() 中有多个术语的答案更好,并且我已经为它们点赞,但是当各个测试不同时,使用 OR() 结合多个测试是必要的,因此我将这个示例保留给其他可能会发现它有用的人。 - Simon

2
除了@teylyn的答案之外,我想补充一点,您可以将多个搜索项的字符串放入一个单元格中(而不是为每个术语使用不同的单元格,然后使用该范围作为SEARCH的参数),使用命名范围和EVALUATE函数,正如我从此链接中发现的那样。

例如,我将以下术语作为文本放在单元格$G$1中:

"PRB", "utilization", "alignment", "spectrum"

然后,我按照上面链接中描述的方法以及下图所示定义了一个名为search_terms的命名区域: Named range definition 在“引用范围”字段中,我输入了以下内容:
=EVALUATE("{" & TDoc_List!$G$1 & "}")

上述的EVALUATE表达式是用来模拟字面字符串的。
{"PRB", "utilization", "alignment", "spectrum"}

被用作输入到SEARCH函数的内容:在SEARCH中直接引用单个单元格$G$1(在这种情况下加上花括号)是无效的,因此使用了命名区域和EVALUATE。现在的技巧在于将对$G$1的直接引用替换为EVALUATE增强的命名区域search_termsThe formula它确实有效,并再次展示了Excel的强大功能!希望这能有所帮助。It really works!

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