VLOOKUP一对多查询
原创作者 | 李锐
微信公众号 | Excel函数与公式(ID:ExcelLiRui)
个人微信号 | (ID:ExcelLiRui520)
VLOOKUP一对多查询
VLOOKUP是大家常用的查找引用函数,当存在多个满足条件的数据时,它只能返回第一个匹配值,如果想把所有符合条件的数据都返回,应该怎么办呢?
今天就来介绍一下VLOOKUP一对多查询技术。
更多系统课程,点击文末“阅读原文”获取。
问题描述
下图数据源中,左侧AB两列为著作和里面的人物,现在要求根据D2选择的著作,将所有符合条件的数据都返回到E列。
由于每本著作中都包含多个人物,如果使用vlookup直接查询,只能返回第一个人物,如果想要借助Excel公式自动计算将所有该著作人物返回,应该怎么写公式呢?
方案一:使用多函数组合配合VLOOKUP
在E2单元格输入以下数组公式,按Ctrl+Shift+Enter
=IF(COUNTIF(A$2:A$11,D$2)<ROW(A1),"",VLOOKUP(D$2&ROW(A1),IF({1,0},A$2:A$11&COUNTIF(INDIRECT("A2:A"&ROW($2:$11)),A$2:A$11),B$2:B$11),2,))
这样就可以实现一对多查找,当著作变换后,人物自动更新。
虽然用VLOOKUP这个公式可以解决问题,但过程太过繁杂。
下面咱们换个思路,继续向下看方案二。
方案二:使用INDEX+SMALL+IF经典组合
在E2单元格输入以下数组公式,按Ctrl+Shift+Enter
=INDEX(B:B,SMALL(IF(A$2:A$11=D$2,ROW($2:$11),4^8),ROW(A1)))&""
推荐使用方案二,同学们可以在工作中直接套用公式,解决一对多查询问题。
如果你觉得有用,就点右上角分享给朋友们看看吧~