此公式查找字符串" BFA"在细胞内I3。如果找到,则返回" BFA&#34 ;;如果没有,则返回"否"。
=IF(ISNUMBER(SEARCH("BFA",I3)),"BFA","No")
如何修改此功能以同时处理多个字符串?例如,如果找到{" BFA"," MFA"," BA"," MA"}中的任何一个,那么返回的是发现;如果没有,请返回"否"。
答案 0 :(得分:4)
您可以将此版本与LOOKUP
:
=IFERROR(LOOKUP(2^15,SEARCH({"BFA","MFA","BA","MA"},I3),{"BFA","MFA","BA","MA"}),"No")
SEARCH
函数返回数字或错误的数组(取决于是否找到每个字符串)。当您在该数组中查找2^15
时,匹配始终为最后数字,然后LOOKUP
将返回相应的文本字符串。如果没有匹配项,则会#N/A
和IFERROR
将其转换为"否"。
因此,如果您有任何包含" BFA"例如,公式将返回列表中的最后一个,即" BA"。
答案 1 :(得分:3)
这绝对可行,但我建议采用不同的方法:
=INDEX({"BFA","MFA","BA","MA","No"},MATCH(1,COUNTIF(I3,"*"&{"BFA","MFA","BA","MA",""}&"*"),0))
您还可以在一系列单元格中查找要查找的项目,并将结果放在它们旁边的范围内。所以如果你有以下设置:
_____A____ ___B__
1 Search For Return
2 BFA BFA
3 MFA MFA
4 BA BA
5 MA MA
6 No
然后公式看起来像这样:
=INDEX($B$2:$B$6,MATCH(1,COUNTIF(I3,"*"&$A$2:$A$6&"*"),0))
为了使其可扩展和可更新,我建议在搜索范围内找到要搜索的内容以及搜索应该返回的内容,如图所示。如果愿意,您可以将其放在单独的工作表上或隐藏这些列。
答案 2 :(得分:0)
这将满足您的需求:
=IF(ISNUMBER(FIND("BFA",I3)),"BFA",IF(ISNUMBER(FIND("MFA",I3)),"MFA",IF(ISNUMBER(FIND("BA",I3)),"BA",IF(ISNUMBER(FIND("MA",I3)),"MA","NO")))
虽然您制作的嵌套If
语句越多,但它会变得非常复杂。您可以考虑在将来尝试自定义公式。
答案 3 :(得分:0)
这是absolutely possible
,但我建议different approach
:
=INDEX({"BFA","MFA","BA","MA","No"},MATCH(1,COUNTIF(I3,"*"&{"BFA","MFA","BA","MA",""}&"*"),0))
您还可以在一系列单元格中查找要查找的项目,并将结果放在它们旁边的范围内。所以如果你有以下设置:
_____A____ ___B__
1 Search For Return
2 BFA BFA
3 MFA MFA
4 BA BA
5 MA MA
6 No
然后公式看起来像这样:
=INDEX($B$2:$B$6,MATCH(1,COUNTIF(I3,"*"&$A$2:$A$6&"*"),0))
为了使其scalable and updatable
我建议在搜索范围内找到要搜索的内容以及搜索应返回的内容,如图所示。如果愿意,您可以将其放在单独的工作表上或隐藏这些列。
答案 4 :(得分:0)
B列中的公式-向下复制到列
=IF(ISERROR(MATCH(A2,$D:$D,0)),"Body","Face")
A B C D
Face Parts
Ear Face Ear
Mouth Face Mouth
Leg Body