一般情况下,都是根据单个条件(关键字)进行数据匹配,采用VLOOKUP函数进行,但有时遇到需要根据两个及其以上的条件进行匹配,这时采用VLOOKUP已经无法实现。
多条件匹配可采用SUMPRODUCT、SUMIFS函数、以及高级筛选法来实现,函数原理请自查EXCEL帮助或百度,多条件匹配具体见下图操作演示(如无法查看动态演示,需要点击图片,再点击图片下的“查看原图”即可):
方法一:SUMPRODUCT函数法,优点:可自动更新,如数据量大,打开文件时计算慢。缺点:仅支持数值型匹配结果,不支持文本匹配结果。
方法二:SUMIFS函数法,优点:相比SUMPRODUCT函数简单、可自动更新,如数据量大,打开文件时计算慢。缺点:仅支持数值型匹配结果,不支持文本匹配结果。
方法三:高级筛选法,优点:简单、方便、快捷、可支持文本匹配结果,缺点:需要手动更新。
方法一:2003以下版本通过SUMPRODUCT条件计数
在J1单元格输入以下公式,然后向下填充公式
=IF(SUMPRODUCT((A$1:A$5=H1)*(B$1:B$5=I1)*(C$1:C$5=F1)*(D$1:D$5=G1))>0,"相同","不同")
公式表示:各对应列在另一个表中多条件计数大于0,就返回“相同”;否则返回“不同”。
方法二:2007以上版本通过COUNTIFS函数多条件计数
在J1单元格输入以下公式,然后向下填充公式
=IF(COUNTIFS(A:A,H1,B:B,I1,C:C,F1,D:D,G1)>0,"相同","不同")
公式表示:各对应列在另一个表中多条件计数大于0,就返回“相同”;否则返回“不同”。
=SUMPRODUCT(($A$1:$A$12=F1)*($B$1:$B$12=G1)*($C$1:$C$12=H1)*($D$1:$D$12=I1))相同显示1,不相同显示0
=SUMPRODUCT(($A$1:$A$12=H1)*($B$1:$B$12=I1)*($C$1:$C$12=F1)*($D$1:$D$12=G1))如果值为1就表示相同,出现错误符号就是不同。
在J2直接输入:=if((A2:A1000=H2:H1000)*(B2:B1000=I2:I1000)*(C2:C1000=F2:F1000)*(D2:D1000=G2:G1000),"相同","不同"),向下复制公式