Excel 两个表格怎么核对差异(找不同)
两份员工名单、两期订单、两张库存表——哪些行只在 A 有、哪些只在 B 有、哪些两边都有?本文讲清用 COUNTIF / VLOOKUP 找差异的写法,再教你用超级表关联两表、一眼标出差异,不用写任何公式。
用 COUNTIF 核对两张表的差异
COUNTIF 是核对两表最直接的公式:去对方表里数一数这个值出现了几次,结果为 0 就代表对方没有这条记录。
假设表 A 的姓名在 A2:A100,表 B 的姓名在 Sheet2!A2:A200。在表 A 新增一列「是否在 B 中」,写:
=COUNTIF(Sheet2!$A$2:$A$200, A2)
结果含义:
- ≥ 1:这个值在表 B 中存在,两边都有;
- = 0:这个值在表 B 中找不到,只在 A 有。
同理,在表 B 那边也写一遍,把区域改成表 A 的范围,就能找出「只在 B 有」的行。如果想让结果更直观,可以套一层 IF:
=IF(COUNTIF(Sheet2!$A$2:$A$200, A2)=0, "只在A", "两边都有")
实际例子:两份活动报名名单核对时,在报名表 A 新建「核对」列,写上述公式,下拉填充——结果为「只在A」的行就是「报名了但对方表里没有」的条目,一目了然。
用 VLOOKUP + IFERROR 标记差异
另一种常见写法是借助 VLOOKUP 的特性:在表 B 里找不到的值会返回错误,用 IFERROR 包一层就能把「找不到」转成可读的标签。
在表 A 的核对列写:
=IFERROR(VLOOKUP(A2, Sheet2!$A:$A, 1, FALSE), "只在A")
找到了就返回原值,找不到就显示「只在A」。这种写法比纯 COUNTIF 略直观,但本质相同——两者都是单向查询:想知道「只在 B 有」还得去表 B 那边再写一遍。
TRIM 清一遍两边的关键列。
这些公式写法的几个麻烦
COUNTIF / VLOOKUP 能解决问题,但在实际核对工作里有几个痛点反复出现:
- 只能单向看,要写两遍:找「只在 A 有」写一次,找「只在 B 有」还要去另一张表再写一次,两个结果分散在两个地方,难以整体看清差异全貌。
- 结果不直观:核对结论分散在两列甚至两个 Sheet 里,要翻来翻去才能下结论。
- 格式问题难排查:空格、大小写、全角半角任何一处不一致就会漏报,需要额外清洗步骤。
- 数据更新需手动刷新:A 表或 B 表新增了记录,之前的公式列不会自动跟着扩展,容易漏掉新增差异。
- 行数多时慢:COUNTIF 做全表区域匹配在几万行时明显拖慢工作表响应速度。
如果两张表经常需要核对,或者数据量较大,公式方案的维护成本其实挺高。
更简单:超级表关联两表,一眼标出差异
超级表(TableDI)是一款桌面端高能表格助手,支持 macOS 和 Windows,离线运行、无需登录、数据本地存储。它把「核对两表、标出差异」做成了可视化的关联列操作——不用写任何公式,也不怕格式不一致。步骤如下:
- 把两张表导入超级表(Excel / CSV 直接拖进来即可)。
- 在表 A 上新建一个关联列,选择「按姓名(或 ID)匹配表 B」。
- 超级表自动按关键列做双向比对,每行会标注:两边都有 / 只在 A 有 / 只在 B 有。
- 可以直接按标注结果筛选,只看差异行,也可以导出为 Excel。
两表关联完成后,还可以借助多表联动功能:A 表或 B 表里的数据一改,关联结果和差异标注会自动更新,不用重新核对一遍。
两种做法对比
| 对比项 | Excel COUNTIF / VLOOKUP | 超级表关联列 |
|---|---|---|
| 怎么操作 | 写公式、下拉填充、写两遍 | 点选关键列,自动双向对比 |
| 查看差异全貌 | 结果分散在两列/两 Sheet | 单列直接标「只在A / 只在B / 都有」 |
| 格式不一致 | 易漏报,要先手动清洗 | 更宽容,可配合 AI 清洗后匹配 |
| 数据更新后 | 需手动重拖公式覆盖新行 | 联动自动更新,无需重做 |
| 大数据量 | 全表 COUNTIF 可能卡顿 | 跟手不卡 |
| 上手成本 | 要记参数、理解语法 | 零公式,点选即完成 |
常见问题
怎么找两边都有的行?
用 COUNTIF 时,结果 ≥ 1 的就是两边都有。超级表关联后,标注「两边都有」的行筛选出来即可。如果你只想确认某个值在两张表里是否完全一致(不只是存在,还要求数值/金额相同),可以在 COUNTIF 之外再加一列 =A2=VLOOKUP(A2, Sheet2!$A:$B, 2, FALSE) 对比对应字段是否相等。
怎么找只在 A 有、B 里没有的行?
用 COUNTIF 公式,结果 = 0 的就是只在 A 有。加 IF 包一层可以输出「只在A」文字标签,然后按该列筛选。超级表里直接筛选标注为「只在 A 有」的行,不需要额外步骤。如果两表要同时比对,建议参考两个表格匹配数据的写法,先匹配再核对差异,逻辑更清晰。
大小写、多余空格会影响核对结果吗?
会,且是 Excel 公式核对最常见的坑。COUNTIF 和 VLOOKUP 都是大小写不敏感的,但空格敏感——「张三」和「张三 」(尾部多一个空格)会被当成两个不同的值,核对时漏报。建议核对前先用 =TRIM(A2) 清理两表的关键列,再做核对。超级表导入数据后可以用 AI 处理列批量去除多余空格,比手动 TRIM 省事。