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