Excel不使用IF语句如何判断单元格含指定词并返回对应值
实现方案
无需嵌套IF、无需VBA,仅用Excel原生公式即可完成需求,按使用的Excel版本选择对应公式即可:
- Excel 365/2021及以上版本(推荐)
使用支持通配匹配的XLOOKUP,直接回车生效:=XLOOKUP("*"&AB2:AB7&"*", X2, AC2:AC7, "Not Matching", 2)
逻辑说明:- 给AB列待匹配文本前后拼接通配符
*,实现“X2包含AB列文本即匹配”的判定逻辑 - 末尾参数
2为通配符匹配模式,命中后直接返回同行AC列值,无命中返回Not Matching,全程无IF判断语句 - 若需要区分大小写匹配,替换为以下公式即可:
=XLOOKUP(TRUE, ISNUMBER(FIND(AB2:AB7,X2)), AC2:AC7, "Not Matching")
- 给AB列待匹配文本前后拼接通配符
- Excel 2019及更早旧版本
使用LOOKUP数组匹配逻辑,输入后按Ctrl+Shift+Enter三键触发数组计算即可(高版本直接回车也可兼容):=LOOKUP(2,1/ISNUMBER(SEARCH(AB2:AB7,X2)),AC2:AC7)
无匹配时上述公式会返回错误值,若需要兜底显示Not Matching,可根据对公式的限制要求选择写法:- 若仅要求不使用多层嵌套IF判断(允许使用容错类函数),可使用更简洁的写法:
=IFERROR(LOOKUP(2,1/ISNUMBER(SEARCH(AB2:AB7,X2)),AC2:AC7),"Not Matching") - 若严格要求不出现任何带IF关键字的函数,可使用纯LOOKUP+CHOOSE的数组公式,同样三键结束:
=LOOKUP(2,1/(ISNUMBER(SEARCH(AB2:AB7,X2))+{0;0;0;0;0;0}),CHOOSE({1;2},AC2:AC7,"Not Matching"))
- 若仅要求不使用多层嵌套IF判断(允许使用容错类函数),可使用更简洁的写法:
注:公式中
SEARCH函数为不区分大小写匹配,FIND函数为区分大小写匹配,可根据实际需求替换。
内容的提问来源于stack exchange,提问作者Don Nalaka
相关产品推荐
相关产品推荐

