如何匹配数据(如何根据多个条件匹配数据)

80酷酷网    80kuku.com

工作中,我们常常遇到按照两个条件进行数据匹配(或查询)的情况。

如何匹配数据(如何根据多个条件匹配数据)(图1)

▲ 表1:数据源

例如,根据表1数据源的日期和科目来匹配费用到表2,我们权且把这种匹配称为二维到一维匹配。

如何匹配数据(如何根据多个条件匹配数据)(图2)

▲ 表2:目标表

又或者反过来,也有可能根据一维表(下表3):

如何匹配数据(如何根据多个条件匹配数据)(图3)

▲ 表3:数据源

匹配费用数据列表4:

如何匹配数据(如何根据多个条件匹配数据)(图4)

▲ 表4:目标表

我们也把这种匹配先称之为一维到二维。

今天,我来介绍一、二维表格数据匹配的几种方法。


01 二维到一维

方法1:INDEX MATCH

如何匹配数据(如何根据多个条件匹配数据)(图5)

首先,用MATCH函数分别求出数据行的日期和科目在数据源日期列(B3:B9)和科目行(C2:P2)的位置,然后在C3:P9这个区域利用INDEX索引函数,找到指定行和列对应的数值。

方法2:VLOOKUP MATCH

如何匹配数据(如何根据多个条件匹配数据)(图6)

先用MATCH找到科目所在列,再用VLOOKUP根据日期来查找(注意,第3个参数MATCH的结果要加1,因为第1列是从B列算起的)。

方法3:HLOOKUP MATCH

如何匹配数据(如何根据多个条件匹配数据)(图7)

方法3与方法2类似,但是先用MATCH找到日期所在行,再用HLOOKUP根据科目来匹配费用。

方法4:OFFSET MATCH

如何匹配数据(如何根据多个条件匹配数据)(图8)

OFFSET函数不仅可以返回一个区域,也可以返回一个单元格。所以,当OFFSET最后两个参数为1时,即可返回特定位置的数据。

OFFSET函数可以根据偏移量返回数据,它有5个参数:

参数1:起始位置

参数2:向下移动X行

参数3:向右移动Y列

参数4和参数5:从新的位置开始返回一个M行N列的区域

02一维到二维

如何匹配数据(如何根据多个条件匹配数据)(图9)

▲ 数据源:B2:D51

反过来,从一维到二维,又有哪些方法呢?

方法1:SUMPRODUCT

如何匹配数据(如何根据多个条件匹配数据)(图10)

公式:SUMPRODUCT(($B$3:$B$51=$B59)*($C$3:$C$51=C$58)*$D$3:$D$51)

利用SUMPRODUCT进行条件判断,判断数据源日期和科目字段中每个单元格是不是要查询的日期和科目,对满足条件的数据进行先乘积再求和,最后就得到费用。

由于存在查询不到数据的情况(比如2010年职工薪酬),用SUMPRODUCT计算的结果为0,因此可以用IF函数做一下处理,使结果为0的显示为空。

方法2:VLOOKUP IF{1,0}

公式:{VLOOKUP($B71

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: