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

问题描述 投票:15回答:4

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

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

此等式搜索C1中是否存在Gingrich,如果存在,则显示1。

我要做的就是一次搜索多个词。任何人都知道如何在其中添加OR函数,以便我可以搜索Gingrich OR Obama或Romney等吗?]

excel excel-2007 excel-formula excel-2010 excel-2013
4个回答
30
投票
另一种方式

=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()返回找到的字符串的位置。

9
投票
尝试使用这样的COUNT函数

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

请注意,您不需要通配符(如teylyn所说的,并且除非有特殊原因,否则“ 1”不需要引号(实际上使其成为文本值)]


4
投票
这将为您完成:

=IF(OR(ISNUMBER(SEARCH("Gingrich",C3)),ISNUMBER(SEARCH("Obama",C3))),"1","")

在名称右边的列(位于C列中)给出此功能,结果是:

Romney Gingrich 1 Obama 1


0
投票
除了@teylyn的答案,我想补充一点,您可以将多个搜索词的字符串放在单个单元格内(与为每个词条使用不同的单元格,然后将该范围用作[ C0]),使用命名范围和SEARCH函数,如我从EVALUATE中找到的。

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

$G$1

然后,我为该单元格定义了一个名为"PRB", "utilization", "alignment", "spectrum"
的命名范围,如上面的链接中所述,如下图所示:

search_terms

Named range definition字段中输入以下内容:

Refers to:

上面的=EVALUATE("{" & TDoc_List!$G$1 & "}")
表达式很容易用来模拟文字字符串

EVALUATE

用作{"PRB", "utilization", "alignment", "spectrum"}
函数的输入:在SEARCH内部使用直接引用单个单元格$G$1(在这种情况下用花括号增强)不起作用,因此使用命名范围和SEARCH

技巧现在在于用EVALUATE增强的命名范围$G$1代替对EVALUATE的直接引用。

search_terms

它确实有效,并且再次显示了Excel的强大功能!

The formula

希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.