如何使用INDEX&MATCH实现多条件模糊匹配查询?
多条件查询解决方案(A列精确匹配+ B列模糊匹配)
直接用INDEX+MATCH组合就能实现需求,不用复杂函数,靠通配符和数组逻辑就能搞定,比你试的方法更直接:
核心公式
=INDEX(C3:C33,MATCH(1,(A3:A33="Yea")*(ISNUMBER(SEARCH("Na",B3:B33))),0))
注意:旧版Excel(非365/2021版本)输入完公式后,需要按
Ctrl+Shift+Enter作为数组公式执行。
公式拆解
A3:A33="Yea":精确匹配A列的"Yea",返回一组TRUE/FALSE的判断数组ISNUMBER(SEARCH("Na",B3:B33)):用SEARCH查找B列里包含"Na"的内容(不区分大小写,要区分的话换FIND),找到会返回位置数字,ISNUMBER把结果转成TRUE/FALSE数组- 两个数组用
*相乘:相当于逻辑AND,只有两个条件都满足的位置才会得到1,其余为0 MATCH(1,...):定位到第一个符合双条件的位置,再用INDEX返回对应C列的内容
简化版(仅适用于Excel 365/2021)
用XLOOKUP更简洁,不用按组合键:
=XLOOKUP(1,(A3:A33="Yea")*(ISNUMBER(SEARCH("Na",B3:B33))),C3:C33)
关于REGEXMATCH的补充
你说它没法处理数字是因为没转格式,把数字列转成文本就能用,比如REGEXMATCH(TEXT(B3:B33,"@"),"Na"),但完全没必要——用SEARCH/FIND结合通配符的方式,比正则更高效易懂。
内容的提问来源于stack exchange,提问作者user22791379
相关产品推荐
相关产品推荐

