两张表各三千行,用 VLOOKUP 拉了一下午,眼睛都花了还对不完。对比两个 Excel 表格数据异同,方法得按数据量来选。

先确定用哪一列当主键

两张表能对上,靠的是订单号、手机号或者身份证号这种唯一列。没有唯一列,先拼一个组合键,比如日期加单号。主键有重复值,VLOOKUP 只会返回第一条,结果看着对,实际漏了数据,比对前先用 COUNTIF 查重。

几百行:条件格式最快

选中两列数据,开始 → 条件格式 → 突出显示单元格规则 → 重复值,重复的会被标色。缺点是只能看重复,看不出哪边多了哪边少了。配合 COUNTIF 更清楚,在新列写 =COUNTIF(Sheet2!A:A,A2),结果是 0 的就是第一张表独有的。

想逐格对比,在空白列写 =A2=Sheet2!A2,向下填充,FALSE 就是不一样的行,再套一个筛选。两列内容顺序不同时先排序,否则整列都是 FALSE。条件格式里还有个对比两区域的用法,选中两块区域后设置规则,差异会直接标出来,适合列数不多的表。

几千行:XLOOKUP 或 Power Query

XLOOKUP 比 VLOOKUP 灵活,能向左查,找不到时可以指定返回 0:=XLOOKUP(A2,Sheet2!A:A,Sheet2!B:B,0)。它要 Excel 2021 以后的版本和 Microsoft 365 才有,老版本还是用 VLOOKUP 或 INDEX 加 MATCH。数据量再大就用 Power Query,两个表都导入,选合并查询,用主键做完全外部连接,多出来的行一眼能看到。刷新一下就重新比对,适合每周都要做的表。

比对前先统一格式

文本型数字和数值型看着一样,比对结果全是差异,用 VALUE 或者分列转一下。前后空格用 TRIM 清掉,日期统一成 yyyy-mm-dd,大小写用 UPPER 或 LOWER 拉平。两表列顺序不一致时按列名对齐,别按位置硬套。这些细节比公式本身更容易出错。

几万行以上 Excel 会明显卡,导入数据库或者用 pandas 的 merge 更稳。偶尔对一次,条件格式够用;长期要对的表,把 Power Query 查询存下来,下次刷新就行,别每次手工拉公式。