我使用这个方便的公式在excel中搜索单元格内的术语。
=IF(ISNUMBER(SEARCH("*Gingrich*",C1)),"1","")
此等式在C1中搜索Gingrich的存在,如果存在,则显示1。
我想做的就是一次搜索多个词。任何人都知道如何添加OR函数,以便我可以搜索Gingrich或奥巴马或罗姆尼等...?
答案 0 :(得分:27)
另一种方式
=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()返回找到的字符串的位置。
答案 1 :(得分:8)
尝试使用像这样的COUNT函数
=IF(COUNT(SEARCH({"Romney","Obama","Gingrich"},C1)),1,"")
请注意,您不需要通配符(如teylyn所说),除非有特定原因“1”不需要引号(事实上它使其成为文本值)
答案 2 :(得分:3)
这将为你做到:
=IF(OR(ISNUMBER(SEARCH("Gingrich",C3)),ISNUMBER(SEARCH("Obama",C3))),"1","")
在名称右侧的列中(在C列中)给出此函数,结果为:
Romney
Gingrich 1
Obama 1
答案 3 :(得分:0)
除了@teylyn的答案外,我还要补充一点,您可以将多个搜索词的字符串放在单个单元格中(而不是对每个术语使用不同的单元格,然后将该范围用作SEARCH
),使用命名范围和我从this link中发现的EVALUATE
函数。
例如,我将以下术语作为文本放在单元格$G$1
中:
"PRB", "utilization", "alignment", "spectrum"
然后,我为该单元格定义了一个名为search_terms
的命名范围,如上面的链接中所述,如下图所示:
在Refers to:
字段中,输入以下内容:
=EVALUATE("{" & TDoc_List!$G$1 & "}")
上面的EVALUATE
表达式很容易用于模拟文字字符串
{"PRB", "utilization", "alignment", "spectrum"}
用作SEARCH
函数的输入:使用直接引用$G$1
内的单个单元格SEARCH
(在这种情况下使用花括号)是不可行的,因此使用命名范围和EVALUATE
。
现在的诀窍在于用$G$1
扩展的命名范围EVALUATE
代替对search_terms
的直接引用。
它确实有效,并且再次显示了Excel的强大功能!
希望这会有所帮助。