我们模拟一个一对多查询的例子:左边是部门及员工姓名数据,我们需要根据部门,来查找出所有的员工姓名
我们在使用VLOOKUP函数进行查找匹配的时候,如果源数据中有多个值时,它只会查找出第一个值,比如我们在E2输入的公式:
=VLOOKUP(D2,A:B,2,0)
那如何才能进行一对多查询呢?如果直接给你一个公式,你可能很难理解为什么这么做。那么在给出公式之前,我们先转化一下思路,如果说,我们左边的数据是不同的,然后我们查找的数据也是不同的,那么用上面的vlookup公式就可以很容易匹配出来
那么一对多查询的问题,就转化成了,如何将最原始的表转换成这个表了
首先是左边的原始数据源处理,我们插入一个辅助列,然后输入的公式是:
=B2&COUNTIF($B$2:B2,B2),COUNTIF函数是用来累计计数的,从上至下累计出现的次数是多少
然后就是查找的值进行处理了,我们使用的公式是:
=$E$2&COLUMN(A1),COLUMN(A1)表示的是A1在第几列,就是第1列了,向右填充就得到了2,3,...
所以我们整体使用的公式是:
=VLOOKUP($E$2&COLUMN(A1),$A:$C,3,0)
向右填充
如果我们下方还需要查找财务部的时候,我们可以注意一下查找值E2的相对引用,以及错误值的屏蔽,使用公式是:
=IFERROR(VLOOKUP($E2&COLUMN(A1),$A:$C,3,0),"")
关于一对多的查询,你学会了么?动手试一下~