网站首页 > 开源技术 正文
Hello,各位小伙伴们~
Excel中多条件匹配的问题,永远是一个热点话题。
匹配结果是数字或者非数字的时候,有些查找方法又不能通用,今天就对多条件匹配的常见方法做一次梳理,并对每种方法的适用情况做出说明,希望对大家的工作能有所帮助。
先来看看今天用到的案例:
需要从数据源(A-D列)中按照机构和姓名分别匹配出职级(非数字内容)和基本工资(数字内容),以下就结合本案例来介绍多种常用的公式套路。
1、SUMIFS函数实现多条件匹配
SUMIFS函数本来是一个多条件求和的函数,格式为:
SUMIFS(求和列,条件列1,条件1,条件列2,条件2……)
但是当同时满足多个条件的结果只有一个时,多条件求和就等同于多条件匹配。
公式为:=SUMIFS(D:D,A:A,F2,B:B,G2)
要引用的列就是实际求和列,本例中是D列,而条件列分别就是A列和B列。
优势:使用SUMIFS多条件匹配时,比较方便高效,公式简单易用,再增加条件也比较容易。
不足:当要匹配的结果不是数字时,就不能使用这个方法了,同时当满足多个条件的数据不是唯一值时,结果可能错误。
2、SUMPRODUCT函数实现多条件匹配
SUMPRODUCT函数的功能是计算多个数组或区域的数据乘积之和,利用比较运算和逻辑值的特性,也可以实现多条件求和的功能,用来处理多条件匹配,其实和SUMIFS的原理差不多,公式为:
=SUMPRODUCT(($A$2:$A$15=F2)*($B$2:$B$15=G2)*$D$2:$D$15)
鉴于之前有多篇教程分析过SUMPRODUCT的用法和原理,这里就不对这个公式过多阐述了。不熟悉的同学可以查看往期教程《Excel教程:加了*的 SUMPRODUCT函数无所不能》
优势:再增加条件时比较容易。
不足:数组计算,数据量大时比较卡,对函数的用法不理解容易出错,并只对数字的匹配结果适用。
3、辅助列+VLOOKUP函数实现多条件匹配
VLOOKUP函数本来是按单条件匹配的,这个函数很多朋友都应该熟悉,之前也多次分享过相关教程。
这里简单说一下函数的结构:
VLOOKUP(查找值,查找区域,第几列找,精确查找)
本例中的公式为:=VLOOKUP(G2&"-"&H2,$A$1:$E$15,4,0)
在这个公式中,查找条件不是一个单元格,而是使用&将机构和姓名两个条件做了连接G2&"-"&H2。
在连接两个条件时,建议在中间添加一个分隔符,这在某些情况下可以避免出现错误。
因为我们使用了自己构造的条件,而这个条件在数据源中并不存在,因此需要在数据源的最左侧添加一个辅助列,如上图中A列所示。
辅助列的公式为:=B2&"-"&C2
优势:公式对于匹配结果为数字或者非数字的时候都可以使用,适用面比SUMIFS更广泛。
不足:要增加辅助列才能使用,虽然难度指数降低了,但是会略显繁琐。
4、VLOOKUP+IF函数实现多条件匹配
这是VLOOKUP较有难度的一种套路,公式为:
=VLOOKUP(F2&G2,IF({1,0},$A$2:$A$15&$B$2:$B$15,$C$2:$C$15),2,0)
对于这个公式套路,关键是IF这部分,篇幅所限,不对公式原理做过多解释,只要掌握IF函数的第二参数是将数据源中的两列进行合并,第三参数是数据源中需要匹配结果的列,同时公式需要按CTRL+SHIFT+ENTER键完成输入,遇到问题能够套用就行了。
优势:不用辅助列,一步到位。
不足:不适于新手使用,数据量较大时计算缓慢。
5、VLOOKUP+CHOOSE函数实现多条件匹配
这是将前一个公式中的IF换成了CHOOSE函数,公式为:
=VLOOKUP(F2&G2,CHOOSE({1,2},$A$2:$A$15&$B$2:$B$15,$C$2:$C$15),2,0)
这个公式套路的核心是CHOOSE,同样是构造了一个合并后的查找列,对于具体原理,需要了解的可以留言,一般能够套用公式解决问题就足够了,这个公式同样需要三键输入。
优势:不用辅助列,一步到位。
不足:不适于新手使用,数据量较大时计算缓慢。
6、LOOKUP函数实现多条件匹配
在常用的引用函数里,LOOKUP无疑是最受高手喜欢的一个函数了,这个函数充满了很多套路,例如多条件匹配时,公式套路就是:
=LOOKUP(1,0/((条件区域1=条件1)*(条件区域2=条件2)),结果区域)
就本例而言,公式为:
=LOOKUP(1,0/(($A$2:$A$15=F2)*($B$2:$B$15=G2)),$C$2:$C$15)
优势:不使用辅助列一步到位,增加条件也方便,适用场合广泛,不管数字还是文本都可以使用这个套路。
不足:会让新手有一点畏惧心态。
7、更多实现多条件匹配的方法
就公式而言,除了上面分享的五种套路,其实还有一些,这里只列举公式套路和适用条件,其它的就不一一举例了,例如:
=MAX((条件区域1=条件1)*(条件区域2=条件2)*结果区域),这个公式是一个数组公式,只适合结果为数字的情况。
=INDEX(结果区域,MATCH(条件1&条件2,条件区域1&条件区域2,0)),数组公式,量大时比较卡。
=XLOOKUP(条件1&条件2,条件区域1&条件区域2,结果区域),新函数,只有office365版本可以用。
=FILTER(结果区域,(条件区域1=条件1)*(条件区域2=条件2)),新函数,只有office365版本可以用。
小结:对于多条件匹配问题,推荐使用第1、3和6三种方法,其实如果不用公式的话,数据透视表和高级筛选是更好的选择
猜你喜欢
- 2025-06-15 IF函数用不明白,用Excel新公式IFS,简单好用!
- 2025-06-15 Excel工作表中的4个多条件查询引用技巧,绝对的干货哦
- 2025-06-15 双条件查找,别再用vlookup了,xlookup秒杀
- 2025-06-15 Excel多条件查询,这里汇集了6大方法,总有一种你没用过
- 2025-06-15 Excel三种方法多条件筛选,你都用过吗?
- 2025-06-15 7个Excel多条件查找公式,谁才是你心中的NO.1,我最喜欢第6个
- 2025-06-15 跨N个表查找数据,VLOOKUP+INDIRECT函数高级用法了解一下?
- 2025-06-15 多条件查找匹配,3个函数公式,你喜欢哪个
- 2025-06-15 扔掉Vlookup了,一对多查询,使用FILTER函数才是最简单的
- 2025-06-15 扔掉Vlookup函数,Excel多条件查询,只看这一篇就够了
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)