Excel函数:巧用辅助列和INDEX实线多对多查询
文章来源:成都办公软件培训 文章作者:office技巧分享小编 发布时间:2021年 10月 20日 11:01:19 标签:Excel函数
今天,有小伙伴问成都办公软件培训学校小编如何能够快速实现多对多查询。今天,小编就给大家分享一下这个案例
吧:
如上图所示,需要根据所给出的部门和性别,在左侧表格内才哈讯对应的员工性别。
此案例要完成计算,我们只需要使用一个辅助列数据和一个查询函数即可。不会的小伙伴且跟着小编一步步往下操作
吧:
1. 制作辅助数据
在D2单元格内输入公式:=(B2=F$1)*(C2=F$2)+D1后往下填充
公式说明:
(B2=F$1)部分,用B列的部门与F1单元格指定的部门进行对比,如果相同,返回逻辑值TRUE,否则返回逻辑值FALSE。
(C2=F$2)部分 ,用C列的性别与F2单元格指定的性别进行对比,如果相同,返回逻辑值TRUE,否则返回逻辑值FALSE。
而(B2=F$1)*(C2=F$2)部分将两个条件相乘,则表示需要两部分条件同时满足,即B列部门与F1单元格指定的部门相同,
且C列性别与F2单元格指定的性别相同时,返回逻辑值TRUE,否则返回逻辑值FALSE。
然后将返回的逻辑值与前一个单元格中的数值相加。(因此,D1单元格内不能存放除0之外的数据)
在四则运算中,TRUE的作用相当于1,FALSE的作用相当于0。也就是如果部门和性别两个条件都符合了,D列的数值就
增加1,否则还等于前一个数值。
注意观察,1、2、3、4……这些序号首次出现的行,就是符合条件的记录。
2. 查询数据
在F4单元格内输入公式:=IFERROR(INDEX(A:A,MATCH(ROW(A1),D:D,0)),"")后往下拖动 即可
公式说明:
MATCH(ROW(A1),D:D,0)部分,ROW(A1)部分返回A1单元格的行号,往下拖动时,会依次返回A2、A3……的行号,1、
2、3……,然后再使用MATCH函数在D列中分别去定位ROW函数所得到的数字所在的行数(如有重复,则返回此数字第
一次出现的行数)
然后,再使用INDEX函数去A列中查询MATCH函数所定位得到行数相对应的姓名
最后,在最外层套用IFERROR函数对INDEX查询得到的结果进行检查,如INDEX函数所得到的结果为错误值,则返回””(空)
到此,本案例与大家分享的多对多查询就完成了。当然,本案例中,使用的查询函数为INDEX和MATCH函数的结合。如
果想使用VLOOKUP函数进行查询,可将辅助列数据放到姓名列前面即可。
今天的分享到此就结束了,希望对你有所帮助!