你可以为Excel中的= if(isnumber(search)))公式做多个选项吗?
此公式在单元格I3内查找string“BFA”。 如果find,则返回“BFA”; 如果不是,则返回“否”。
=IF(ISNUMBER(SEARCH("BFA",I3)),"BFA","No")
我怎样才能修改这个工作在同一时间多个string? 例如,如果find{“BFA”,“MFA”,“BA”,“MA”}中的任何一个,则返回发现的内容; 如果不是,则返回“否”。
这是完全可能的,但我会build议一个不同的方法:
=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))
为了使其具有可扩展性和可更新性,我build议将search内容和search应该返回的内容放在一起,如图所示。 你可以把它放在一个单独的工作表或隐藏这些列如果首选。
你可以用LOOKUP
使用这个版本:
=IFERROR(LOOKUP(2^15,SEARCH({"BFA","MFA","BA","MA"},I3),{"BFA","MFA","BA","MA"}),"No")
SEARCH
函数返回数字或错误的数组(取决于每个string是否被find)。 当在数组中查找2^15
时,匹配总是与最后一个数字相匹配,然后LOOKUP
返回相应的文本string。 如果没有匹配,则得到IFERROR
#N/A
, IFERROR
将其转换为“否”。
因此,如果您有任何包含“BFA”和“BA”的单元格,则公式将返回列表中的最后一个单元格,即“BA”。
这将做你正在寻找的东西:
=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
语句嵌套越多,它就会变得非常复杂。 你可能会考虑在未来尝试一个自定义公式。
这是absolutely possible
,但我会build议一个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
我build议将search内容和search应该返回的内容放在一起,如图所示。 你可以把它放在一个单独的工作表或隐藏这些列如果首选。