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

Chr*_*rgo 15 excel excel-2007 excel-formula excel-2010 excel-2013

我使用这个方便的方程式来搜索excel中单元格内的术语.

=IF(ISNUMBER(SEARCH("*Gingrich*",C1)),"1","")
Run Code Online (Sandbox Code Playgroud)

此等式在C1中搜索Gingrich的存在,如果存在,则显示1.

我想要做的就是一次搜索多个术语.任何人都知道如何添加OR函数,所以我可以搜索Gingrich或奥巴马或罗姆尼等...?

tey*_*lyn 30

其他方式

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

此外,如果您保留一个值列表,例如A1到A3,那么您可以使用

=IF(SUMPRODUCT(--(NOT(ISERR(SEARCH($A$1:$A$3,C1)))))>0,"1","")
Run Code Online (Sandbox Code Playgroud)

在Search()函数中根本不需要通配符,因为Search()返回找到的字符串的位置.


bar*_*ini 9

尝试使用这样的COUNT函数

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

请注意,您不需要通配符(如teylyn所说),除非有特定原因"1"不需要引号(事实上它使其成为文本值)


Sim*_*mon 7

这将为您做到:

=IF(OR(ISNUMBER(SEARCH("Gingrich",C3)),ISNUMBER(SEARCH("Obama",C3))),"1","")
Run Code Online (Sandbox Code Playgroud)

给定名称右侧列中的此函数(在 C 列中),结果为:

Romney  
Gingrich    1
Obama       1
Run Code Online (Sandbox Code Playgroud)

  • 我已经编辑了我的答案以删除通配符,正如@teylyn 所建议的那样,这些通配符是不必要的。对于这种情况,`SEARCH()` 中有多个术语的答案是优越的,我已经对它们投了赞成票,但是当各个测试不同时,将多个测试与 `OR()` 结合起来是必要的,所以我把这个例子留给了其他可能会发现它有用的人。 (2认同)