Excel多列匹配查询需求:匹配行后搜索整行特定文本
Excel公式优化:整行匹配编号与指定文本
优化后的通用公式
=IFERROR(XLOOKUP(1,($B$3:$B$9=$S2)*(MMULT(--(D$3:J$9=$S$3),ROW(D$3:J$9)^0)>0),$Q$3:$Q$9),"Not Found")
公式逻辑拆解
($B$3:$B$9=$S2):筛选B列中与S2编号完全匹配的行,生成布尔判断数组MMULT(--(D$3:J$9=$S$3),ROW(D$3:J$9)^0):将D3:J9区域的文本匹配结果转为数值(匹配为1,不匹配为0),通过矩阵求和计算每行的匹配总数,>0则表示该行存在目标文本- 两个条件相乘得到同时满足编号匹配+行内文本存在的行,XLOOKUP直接定位并返回Q列对应值
Excel 365/2021简化版
如果使用支持LAMBDA函数的新版本Excel,可改用更易读的写法:
=IFERROR(XLOOKUP(1,($B$3:$B$9=$S2)*(BYROW(D$3:J$9,LAMBDA(r,COUNTIF(r,$S$3)>0))),$Q$3:$Q$9),"Not Found")
核心优势
无需逐列拖拽公式,单次完成整行范围的匹配逻辑,减少重复计算,在大数据集中能显著提升运行效率。
内容的提问来源于stack exchange,提问作者jpittman
相关产品推荐
相关产品推荐

