Excel表格中高频使用的功能之一:数据核对
- 2026-11-01 18:35:50
Excel表格中高频使用的功能之一:数据核对Excel表格中高频使用的功能之一:数据核对,对,就是这个反复用来的功能,今天小结一下。 其实,核对数据的时候,情况不同,方法也略有差别。其背后的数学逻辑其实就是从2个不同的集合当中,找出相同的部分和不同的部分。 情况1:数据顺序相同,个数也一样。这种最简单,但底层逻辑体现和复杂情形是一样的。 
方法1是使用条件格式。先选中数据区域B2:C15,点条件格式,新建规则,使用公式确实要设置格式的单元格,在编辑规则中输入:=$B2<>$C2。点击格式,设置一种醒目的颜色,确定既可。 
方法2是EXACT结合IF函数。在D2单元格输入:=IF(EXACT(B2:B15,C2:C15),"相同","不同")。回车即可。解析:EXACT用于对比B列和C列相同行单元格内值是否一致,相同的返回TRUE,不同的返回FALSE,传给IF,在IF函数的返回结果里设置TRUE返回相同,FALSE返回不同。 
方法3是直接法,在E2单元格输入:=B2:B15=C2:C15,系统会自动对比B2和C2,一起到B15和C15,相同的返回TRUE,不同的返回FALSE。 
方法3是利用COUNTIF或COUNTIFS函数。COUNTIF的功能是查找一个单元格的值在另一个数组中出现的次数,在此例中,出现1次即意味着相同,0次就是不同。在F2单元格中输入:=COUNTIF(B2:B15,C2:C15),回车。 
情况2:数据数量相同数据顺序不同。这个稍增加了难度,方法1是先把2组数据重新排序,再应用情况1的方法,这里不展开。 方法2是利用COUNTIF函数。这个函数不用考虑数据的顺序,只要数据在2个不同的集合中就能行,它只管数据有没有,不管顺序的问题。 为了好理解,分步来介绍。先在E2单元格输入:XLOOKUP(C2,$A$2:$A$15,$B$2:$B$15)。意思是先把表2的C列字段对应的在表1 A列相对应列的值找出来,这里用精确查找。然后,使用EXACT函数,用表2的C列字段对应D列的值,与XLOOKUP找出来值进行精确比对,这不就回到情况1的方法2了嘛!再套IF搞定,下拉填充即可。 
情况3:数据数量不相同且数据顺序也不同。 
主要思路还是从一个A集合中找另一个B集合中的值在A集合中是否存在。直接用COUNTIF函数不好使,我们套个数组函数FILTER,COUNTIF和COUNTIFS的区别是单条件和多条件,看情况选用就行。 
方法1, 找表1有而表2没有的项目,注意必须是2列字段完全相同才能算相同。在G2单元格输入:=FILTER($A$3:$B$11,COUNTIFS(D3:D11,A3:A11,E3:E11,B3:B11)=0) 解析,我们要找表1有的项目,所以筛选范围为表1,COUNTIFS =0表示找表2中没有的项目,D列对A列,E列对B列,我们要找表1有的,所以表1的列是条件,表2是计数的数据区域范围,以下逻辑全是一样的。 找表2有而表1没有的项目,在G9单元格=FILTER($D$3:$E$11,COUNTIFS(A3:A11,D3:D11,B3:B11,E3:E11)=0),我们要找表2有的,所以表2的列是条件,表1是计数的数据区域范围,出现0是由于表2最后比表1少2行数据,我们选表2范围与表1一致,数组溢出导致的。再嵌套个TRIMRANGE就能解决,以下遇到这类情况同样对待即可。 COUNTIFS=1表示找表1中有的项目,我们要找表1有的,所以表1的列是条件,表2是计数的数据区域范围,或J2单元格 =FILTER($D$3:$E$11,COUNTIFS(A3:A11,D3:D9,B3:B11,E3:E11)=1),COUNTIFS=1表示找表2中有的项目。








找表1表2都有的项目,在J2单元格=FILTER($A$3:$B$11,COUNTIFS(D3:D11,A3:A11,E3:E11,B3:B11)=1)
本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。