Σ表格公式学堂EXCEL FORMULA & SCENARIO
组合数据验证与查错 · 3 个 Sheet

找出不匹配的数据(两表校验)

两张表对不上,到底是哪几条?

1

场景背景

业务表和人名表应该一一对应,实际总有对不上的。校验思路:用 MATCH 或 COUNTIF 判断某个值在另一张表里是否存在,不存在就标出来。更严谨的是双向校验:A 有 B 没有、B 有 A 没有,两边都要查。

2

数据结构

共 2 个 Sheet
Sheet:业务表
字段含义示例值
客户待校验的值甲公司
是否在档案中MATCH 判断已建档
Sheet:客户档案
字段含义示例值
客户名称标准名单甲公司
3

解决步骤

1
第 1 步:用 COUNTIF 判断是否存在
最简单:在档案表里数一下这个客户出现几次,0 就是不存在。
=IF(COUNTIF(客户档案!A:A,A2)>0,"已建档","未建档")
2
第 2 步:用 MATCH 判断
MATCH 找不到会返回 #N/A,用 ISNA 转成 TRUE/FALSE。
=IF(ISNA(MATCH(A2,客户档案!A:A,0)),"未建档","已建档")
3
第 3 步:反向校验
在档案表里也加一列,检查档案里的客户在业务表中有没有记录,找出「僵尸档案」。
=IF(COUNTIF(业务表!A:A,A2)=0,"无业务","正常")
4
第 4 步:统计不匹配数量
COUNTIF 数「未建档」的条数,作为数据质量指标。
=COUNTIF(C:C,"未建档")
4

完整公式与逐段拆解

=IF(COUNTIF(客户档案!A:A,A2)>0,"已建档","未建档")
COUNTIF(客户档案!A:A,A2)在档案表整列里数这个客户出现几次
>0大于 0 说明存在
"未建档"等于 0 说明档案里没有,需要补录
5

多 Sheet 示例

在编辑器中打开 ↗
ABCDE
1订单号A金额B金额差额状态
2SO-001225.00225.000.00一致
3SO-0021,798.001,898.00-100.00金额不符
4SO-003175.00175.000.00一致
5SO-004795.00无此单—B表缺失
6SO-005675.00无此单—B表缺失
7SO-0060.00240.00-240.00金额不符
当前表:差异表 · 公式单元格 E2 · 绿色底为公式,蓝色底为动态数组溢出结果

差异表 E 列就是用 IF 判断出的对账状态

6

数据流向

数据流向演示1 / 4
来源业务表!A2
➜
去向COUNTIF
业务表的客户名
来源客户档案!A:A
→
去向匹配次数
去档案表整列查找
来源匹配次数
→
去向IF
次数为 0 → 未建档
来源IF
→
去向业务表!C2
输出校验结果
跟着高亮一步步看数据怎么流动
7

注意事项与坑

!只做单向校验会漏掉「档案里有但业务没有」的情况。
!数据量上万时 COUNTIF 整列会变慢,改用精确区域。
!文本前后空格是最常见的「假不匹配」,先 TRIM。
8

相关场景