Excel中IF(OR)公式实现部分匹配时结果异常的问题咨询
问题原因
你写的公式全返回UK的核心原因是:Excel 中的普通等于(=)运算符不支持*通配符匹配,你写的N10776="*California*"逻辑是严格匹配单元格内容是不是等于带星号的*California*字符串,自然无法命中仅包含关键词的单元格内容,OR函数的所有判断条件全部为假,因此统一返回UK。
修复方案
下面提供几种常用的可实现部分匹配的写法:
方案1:使用支持通配符的
COUNTIF函数实现
公式如下:=IF(OR(COUNTIF(N10776, "*California*"), COUNTIF(N10776, "*San Francisco*"), COUNTIF(N10776, "*New York*")), "USA", "UK")逻辑说明:
COUNTIF的第二个参数原生支持通配符匹配,只要单元格包含对应关键词,返回值就为1(等价于逻辑真),满足OR的任意条件就返回USA。方案2:使用
SEARCH+ISNUMBER组合实现(不区分大小写)
公式如下:=IF(OR(ISNUMBER(SEARCH("California", N10776)), ISNUMBER(SEARCH("San Francisco", N10776)), ISNUMBER(SEARCH("New York", N10776))), "USA", "UK")逻辑说明:
SEARCH函数会返回关键词在单元格内容中的起始位置,找不到就返回错误值,用ISNUMBER判断返回值为数字时,即说明匹配到了对应关键词。方案3:数组简化版(仅支持Excel 2021/365及以上版本)
不需要重复写多次匹配逻辑,直接把关键词放到数组中即可:=IF(OR(ISNUMBER(SEARCH({"California","San Francisco","New York"},N10776))),"USA","UK")
补充说明
如果需要做区分大小写的关键词匹配,把上述公式中的SEARCH替换为FIND即可。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

