汇总Excel多条件查询的所有方法,GET它们,成为同事眼中的大神!

wufei123 发布于 2023-11-10 阅读(605)

#Excel函数公式#职场当中,在用Excel进行数据处理与分析时,经常会遇到多条件查询的问题,今天小包就来给小伙伴们汇总所有的多条件查询方法,让大家成为同事眼中的大神1.VLOOKUP函数多条件查询一提到数据查询,很多小伙伴们脑海中第一个蹦出来的就是VLOOKUP函数。

的确,VLOOKUP函数是目前全球使用频率最高的查询函数VLOOKUP函数不仅能应对单一条件查询,也能配合IF函数进行逆向查询,另外也可以应对多条件查询如图1所示,要查询“推广部张三”对应的工资,其公式为:=VLOOKUP(E2&F2,IF({1,0},A1:A9&B1:B9,C1:C9),2,FALSE),最后同时按下按Ctrl+Shift+Enter键(涉及到数组,因此要将一般公式转化为数组公式)。

IF函数配合第一个数组参数{1,0},当{1,0}为1时,返回IF函数第二个参数A1:A9&B1:B9,当{1,0}为0时,返回IF第三个参数C1:C9,这样就会形成这样的一堆数组:{"姓名部门","工资";"张三人事部",4500;"李四人事部",4600;"王五人事部",4800;"赵六客服部",5100;"周期客服部",5500;"张三推广部",5300;"李四推广部",5800;"王五推广部",5780},姓名部门是连接在一起的,其后分别对应工资,就会形成“姓名部门”和“工资”这样的两列数据区域。

也可以使用CHOOSE函数,其公式为:=VLOOKUP(E2&F2,CHOOSE({1,2},A1:A9&B1:B9,C1:C9),2,FALSE),同样要按下CTRL+SHIFT+ENTER,原理与IF函数一致。

除了搭配IF或CHOOSE函数,也可以通过添加辅助列的方式进行多条件查询如图2所示,在A列添加一列,在A2单元格输入=B2&C2,并向下填充再用VLOOKUP函数进行查询:=VLOOKUP(F2&G2,A1:D9,4,FALSE)。

2.LOOKUP函数多条件查询如图3所示,LOOKUP函数多条件查询公式为:=LOOKUP(0,0/(A1:A9=E2)*(B1:B9=F2),C1:C9)。

(A1:A9=E2)*(B1:B9=F2)会形成0和1组成的一堆数组{0;0;0;0;0;0;1;0;0},为1就是“张三”和“推广部”两个条件都能满足返回的值大家知道,分母是不准为0的,只有(A1:A9=E2)*(B1:B9=F2)都满足才会等于1,其余都会为0,。

因此用0除以(A1:A9=E2)*(B1:B9=F2),只为了让(A1:A9=E2)*(B1:B9=F2)强制满足0/(A1:A9=E2)*(B1:B9=F2)会形成以下一堆数组:{#DIV/0!;0;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!}。

#DIV/0!表示分母为0时返回的错误值,在小包Excel速成讲堂的第十节课给大家详细讲解了错误值类型,Excel速成第十节:错误值类型有哪些?怎么出现的?如何规避?不了解的小伙伴可以去学习一下只有当(A1:A9=E2)*(B1:B9=F2)满足时才会返回1,这样才能满足0/1时分母不会为0的强制要求。

3.SUMIFS函数多条件查询看到这里,肯定有不少小伙伴们会纳闷,SUMIFS不是用来条件求和的吗,怎么也能进行数据查询呢?小包告诉大家,虽然本质上是求和函数,但是也能达到条件查询的目的SUMIFS函数进行多条件查询,如图4所示,其公式为:=SUMIFS(C1:C9,A1:A9,E2,B1:B9,F2)。

需要注意两点:第一,SUMIFS函数的结果必须是数值;第二,第一个参数查找值必须保证唯一性比如说推广部有两个张三,函数结果就会对两个张三的工资进行相加

4.INDEX+SMALL+IF组合函数多条件查询INDEX+SMALL+IF组合函数多条件查询,如图5所示,同样的,求“推广部张三”的工资,其公式为:=INDEX(A1:C9,SMALL(IF((A1:A9=E2)*(B1:B9=F2),ROW(1:9),10^10),1),3),最后要同时按下Ctrl+Shift+Enter。

IF函数第一个参数(A1:A9=E2)*(B1:B9=F2)返回0和1组成的一堆数组{0;0;0;0;0;0;1;0;0},当两个条件均满足时,返回1第二个参数ROW(1:9)返回的结果是数组{1;2;3;4;5;6;7;8;9},即当(A1:A9=E2)*(B1:B9=F2)为1时,返回第二个参数数组中对应的7,当(A1:A9=E2)*(B1:B9=F2)为0时,一律返回10^10,IF函数的第三个参数,不一定要设置为10^10,可以设置为比第二个参数数组中最大的数要大即比9大就可以。

比如说,把10^10改成10,公式结果不变综上所述,IF函数最终返回的结果是数组{10000000000;10000000000;10000000000;10000000000;10000000000;10000000000;7;10000000000;10000000000},再用最小值函数SMALL对IF函数返回的数组结果求取最小值,最终SMLAA+IF函数返回的结果为7。

最后结合INDEX函数,查询出推广部张三所对应的工资5.SUM/SUMPRODUCT函数多条件查询SUM函数可以对符合条件的数组元素进行求和,如图6所示,公式为:=SUM((A2:A9=E2)*(B2:B9=F2)*(C2:C9)),要按下数组三键CTRL+SHIFT+ENTER。

(A2:A9=E2)*(B2:B9=F2)会返回0和1组成的一堆数组{0;0;0;0;0;1;0;0},其中1是满足条件的值,再用0和1分别一一对应乘以(C2:C9)中的数值,最终得到{0;0;0;0;0;5300;0;0},再用SUM求和。

SUMPRODUCT函数多条件查询,如图6-1所示,公式为:=SUMPRODUCT((A2:A9=E2)*(B2:B9=F2)*(C2:C9)),无需再按数组三键,原理与SUM函数一致,这里小包就不重复讲解了。

6.MAX函数多条件查询MAX函数多条件查询,如图7所示,其公式为:=MAX((A2:A9=E2)*(B2:B9=F2)*(C2:C9)),按下数组三键参数与SUM函数一致,区别只在于最后是求{0;0;0;0;0;5300;0;0}中的最大值。

7.INDEX+MATCH函数多条件查询INDEX+MATCH组合函数时经典的多条件查询,如图8所示,其公式为:=INDEX(C1:C9,MATCH(E2&F2,A1:A9&B1:B9,0)),按下数组三键。

MATCH(E2&F2,A1:A9&B1:B9,0)利用&将姓名和部门连接为一个条件,会得到条件在数据区域中的行数,根据行数去定位C1:C9区域中对应的结果

8.INDIRECT函数R1C1用法利用INDIRECT函数的R1C1用法,也可以进行多条件查询,R1C1指代的是Excel的对应的几行几列,有了对应的行列,即可定位查询值,语法为=INDIRECT(R1C1,FALSE),如图9所示,其公式为:=INDIRECT("R"&MATCH(E2&F2,A1:A9&B1:B9,0)&"C"&MATCH(G1,A1:C1,0),FALSE),按下数组三键。

9.INDIRECT+MATCH组合函数多条件查询INDIRECT+MATCH组合函数多条件查询,运用了INDIRECT函数的A1用法,语法为:=INDIRECT(A1,[TRUE]),A1表示单元格地址,第二参数可以省略。

如图10所示,其公式为:=INDIRECT("C"&MATCH(E2&F2,A1:A9&B1:B9,0)),按下数组三键MATCH(E2&F2,A1:A9&B1:B9,0)会返回条件所在的行数,"C"为结果所在列即工资所在的C列,整个公式即:=INDIRECT("C7"),C7单元格的值为5300。

10.DGET/DSUM/DMAX/DPRODUCT等数据库函数DGET/DSUM/DMAX等数据库函数用法一样,都有三个同样的参数,以DGET为例,语法为:=DGET(数据库区域,结果所在的列序数,条件),表示从数据库的列中提取满足条件的单个值。

如图11所示,公式为:=DGET(A1:C9,3,E1:F2)

以上,就是小包为小伙伴们总结的Excel当中所有的多条件查询的方法,GET它们,进阶职场达人。关注小包,后面持续给大家讲解Excel当中实用的职场知识点。

亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻31004