如何让返回多列结果的VLOOKUP公式循环匹配返回所有符合D2条件的数据
VLOOKUP返回所有匹配项解决方案
VLOOKUP默认仅返回第一个匹配到的结果,本身不支持批量返回所有符合条件的条目,可根据你的Excel版本选择对应方案实现需求:
适用Excel 365/2021及以上版本
使用FILTER+CHOOSECOLS组合可直接返回所有匹配结果,公式如下:
=IFERROR(FILTER(CHOOSECOLS(Table1,3,5,6,7,8,9),Table1[匹配列名]=$D$2,""),"")
替换公式中的
Table1[匹配列名]为Table1中与D2值做匹配校验的对应列名,输入完成后直接回车,结果会自动溢出填充所有符合条件的行,返回列顺序与你原有VLOOKUP公式完全一致。
适用Excel 2019及更早版本
需使用数组公式实现,操作流程如下:
- 方式一(批量填充):选中一块能容纳最大匹配结果量的空白区域,比如预估最多20条匹配结果就选中20行6列的空白区域,在编辑栏输入以下公式,按
Ctrl+Shift+Enter三键结束数组录入即可 - 方式二(下拉填充):在首个空白单元格输入以下公式,按
Ctrl+Shift+Enter三键结束后,向右拉6列,再向下拉到你认为足够容纳所有匹配结果的行数即可
公式内容:
=IFERROR(INDEX(Table1,SMALL(IF(Table1[匹配列名]=$D$2,ROW(Table1)-ROW(Table1[#Headers]),99999),ROW(A1)),CHOOSE({1,2,3,4,5,6},3,5,6,7,8,9)),"")
同样替换
Table1[匹配列名]为实际的匹配校验列,无匹配结果的单元格会自动显示为空。
内容的提问来源于stack exchange,提问作者5_Stripes_Fan86
相关产品推荐
相关产品推荐

