对于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$ =F2)*($B$2:$B$ =G2)*$D$2:$D$ )
优势:再增加条件时比较容易。
不足:数组计算,数据量大时比较卡,对函数的用法不理解容易出错,并只对数字的匹配结果适用。
推荐指数:★★★
3、辅助列+VLOOKUP函数实现多条件匹配
VLOOKUP函数本来是按单条件匹配的,这个函数很多朋友都应该熟悉,之前也多次分享过相关教程。
这里简单说一下函数的结构:
VLOOKUP(查找值,查找区域,第几列找,精确查找)
本例中的公式为:=VLOOKUP(G2&”-“&H2,$A$1:$E$ ,4,0)
在这个公式中,查找条件不是一个单元格,而是使用&将机构和姓名两个条件做了连接G2&”-“&H2。
在连接两个条件时,建议在中间添加一个分隔符,这在某些情况下可以避免出现错误。
因为我们使用了自己构造的条件,而这个条件在数据源中并不存在,因此需要在数据源的最左侧添加一个辅助列,如上中A列所示。
辅助列的公式为:=B2&”-“&C2
优势:公式对于匹配结果为数字或者非数字的时候都可以使用,适用面比SUMIFS更广泛。
不足:要增加辅助列才能使用,虽然难度指数降低了,但是会略显繁琐。
推荐指数:★★★★
4、VLOOKUP+IF函数实现多条件匹配
这是VLOOKUP较有难度的一种套路,公式为:
=VLOOKUP(F2&G2,IF({1,0},$A$2:$A$ &$B$2:$B$ ,$C$2:$C$ ),2,0)
对于这个公式套路,关键是IF这部分,篇幅所限,不对公式原理做过多解释,只要掌握IF函数的第二参数是将数据源中的两列进行合并,第三参数是数据源中需要匹配结果的列,同时公式需要按CTRL+SHIFT+ENTER键完成输入,遇到问题能够套用就行了。
优势:不用辅助列,一步到位。
不足:不适于新手使用,数据量较大时计算缓慢。
推荐指数:★★★
5、VLOOKUP+CHOOSE函数实现多条件匹配
这是将前一个公式中的IF换成了CHOOSE函数,公式为:
=VLOOKUP(F2&G2,CHOOSE({1,2},$A$2:$A$ &$B$2:$B$ ,$C$2:$C$ ),2,0)
这个公式套路的核心是CHOOSE,同样是构造了一个合并后的查找列,对于具体原理,需要了解的可以留言,一般能够套用公式解决问题就足够了,这个公式同样需要三键输入。
优势:不用辅助列,一步到位。
不足:不适于新手使用,数据量较大时计算缓慢。
推荐指数:★★★
6、LOOKUP函数实现多条件匹配
在常用的引用函数里,LOOKUP无疑是最受高手喜欢的一个函数了,这个函数充满了很多套路,例如多条件匹配时,公式套路就是:
=LOOKUP(1,0/((条件区域1=条件1)*(条件区域2=条件2)),结果区域)
就本例而言,公式为:
=LOOKUP(1,0/(($A$2:$A$ =F2)*($B$2:$B$ =G2)),$C$2:$C$ )
优势:不使用辅助列一步到位,增加条件也方便,适用场合广泛,不管数字还是文本都可以使用这个套路。
不足:会让新手有一点畏惧心态。
推荐指数:★★★★★
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三种方法,其实如果不用公式的话,数据透视表和高级筛选是更好的选择,这些方法会在今后的教程中分享给大家。
评论(0)