分享

VLOOKUP一对多查询,你会吗?

 Excel教程平台 2023-02-24 发布于四川

哈喽,大家好,这里会略懂点Excel的小六子。

今天来给大家讲讲VLOOKUP函数的一对多查询,效果如下图所示:

可能有的小伙伴会说,这题我会,用FILTER函数,秒杀

也有小伙伴会说:用数据透视表,完美!

一道题有一万种解法,但弱水三千,我只取VLOOKUP这一瓢。

敲重点:我只会VLOOKUP,还能不能一对多查询了?

答案是肯定的,加个辅助列即可。

今天就这个问题给大家介绍两个思路,希望有所帮助。

思路一

1.添加一个辅助列A列,并在A2中输入公式:=B2&COUNTIF($B$1:B2,B2),然后下拉填充。

公式解析:

①COUNTIF函数实现的是对某个区域中的某个值进行计数,所以COUNTIF($B$1:B2,B2)实现的是一个编号的效果。

②公式中的区域写法是$B$1:B2,当公式下拉的时候,区域的范围会随着增加。得到的结果就是辅助列中部门后面的那些数字,表示部门是第几次出现。

③用&符号把部门和第几次出现连接起来,作为VLOOKUP的查找范围的首列。

2.在G2单元格建立下拉菜单。

3.在H2中输入公式:

=IFERROR(VLOOKUP($G$2&ROW(A1),$A:$D,COLUMN(C1),0),"")

输入公式后回车,再向右向下填充公式。

公式解析:

①在VLOOKUP($G$2&ROW(A1),$A:$D,COLUMN(C1),0)这部分,查找条件是$G$2&ROW(A1)。

②G2是要查找的部门,ROW(A1)是A1单元格的行号,也就是1,下拉时会变成2、3……,组合以后会形成和辅助列类似的结果,即“部门名称”+“行号序列”,此时就实现了将一对多匹配的问题变成一对一匹配的问题。

③COLUMN(C1)是为了方便公式可以右拉到H列,不用再为H列重新编写公式。

④IFERROR让公式不显示错误值。

思路二

1.添加一个辅助列A列,并使用公式:=A1+(B2=$G$2)

这是什么意思?

其实在这个公式中,是利用了比较运算得到一个逻辑值,再利用逻辑值计算得到一组数字。

公式解析:

查找的部门出现的次数,只不过是反推。即当G2中出现数据,且通过逻辑判断在B列中找到时,再与当前单元格相加。比如,下图中,当G2为“合同管理部”时,B列有相同的单元格时,相对应的A列单元格内依次计数为1—4;当B列没有与之相同的单元格时,相对应的A列单元格内显示为0。

最终的公式是:

=IFERROR(VLOOKUP(ROW(A1),$A:$D,COLUMN(C1),0),"")

在H2录入公式以后,右拉填充,再向下填充。

注意:

在这个公式中,VLOOKUP的第一参数直接使用ROW(A1),也就是数字1,2,3……

这里需要有个思想的转化过程,VLOOKUP找的实际是第一个1,第一个2,第一个3等等,这些正好是要找的部门第一次出现,第二次出现,第三次出现等等。

补充tips:

在公式=A1+(B2=$F$2)中,B2=$F$2是一个比较运算,得到的结果是TRUE或FALSE。在Excel中,逻辑值是可以参与计算的,在计算时TRUE相当于1,FALSE相当于0。

好的,以上。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多