满足其一条件即可的多对多查询

前面小编和小伙伴们分享了怎么实现多对多查询,今天成都office培训机构小编和大家分享如何在多个条件满足其中一个时查询相对应的数据。

如上图所示,现在需要根据给出的两个部门查询出满足其中某一个部门的员工姓名(查询销售部或质检部的员工姓名)

具体步骤如下所示:

1.制作辅助数据

在D2单元格输入公式:=(B2=F$1)+(B2=F$3)+D1后往下填充

公式说明:

(B2=F$1)部分:用B列的部门与F1单元格指定的部门进行对比,如果相同,返回逻辑值TRUE,否则返回逻辑值FALSE。

(B2=F$3)部分:用B列的部门与F3单元格指定的部门进行对比,如果相同,返回逻辑值TRUE,否则返回逻辑值FALSE。

(B2=F$1)+(B2=F$3)部门:两个判断条件相加,如两个条件其中之一满足,则本部分公式返回TRUE+FALSE或者FALSE+TRUE

然后将返回的逻辑值与前一个单元格中的数值相加。(因此,D1单元格内不能存放除0之外的数据)

在四则运算中,TRUE的作用相当于1,FALSE的作用相当于0。也就是如果部门和性别两个条件都符合了,D列的数值就增加1,否则还等于前一个数值。

注意观察,1、2、3、4……这些序号首次出现的行,就是符合条件的记录。

2.使用INDEX函数查询员工姓名

在F5单元格输入公式:=IFERROR(INDEX(A:A,MATCH(ROW(A1),D:D,0)),””)后往下拖动填充

本公式逻辑和之前文章(多对多查询)内的查询公式逻辑一样,如有不理解的小伙伴,可查看之前文章哦

今日的分享到这就结束了,希望对你有所帮助!

如何快速进行多对多查询?

今天,有小伙伴问成都office培训机构小编如何能够快速实现多对多查询。今天,小编就给大家分享一下这个案例吧:

如上图所示,需要根据所给出的部门和性别,在左侧表格内才哈讯对应的员工性别。

此案例要完成计算,我们只需要使用一个辅助列数据和一个查询函数即可。不会的小伙伴且跟着小编一步步往下操作吧:

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函数进行查询,可将辅助列数据放到姓名列前面即可。

今天的分享到此就结束了,希望对你有所帮助!