对于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三种方法,其实如果不用公式的话,数据透视表和高级筛选是更好的选择,这些方法会在今后的教程中分享给大家。

声明:本站所有文章均出自互联网,只为学习之用;如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。