Excel 公式

Excel 两个表格怎么核对差异(找不同)

更新于 2026-06-04 · 阅读约 7 分钟

两份员工名单、两期订单、两张库存表——哪些行只在 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 那边再写一遍。

小提示
VLOOKUP 核对时同样怕格式不一致:姓名多了空格、编号一边是文本一边是数值,都会造成明明存在却显示「找不到」。动手前先用 TRIM 清一遍两边的关键列。

这些公式写法的几个麻烦

COUNTIF / VLOOKUP 能解决问题,但在实际核对工作里有几个痛点反复出现:

  • 只能单向看,要写两遍:找「只在 A 有」写一次,找「只在 B 有」还要去另一张表再写一次,两个结果分散在两个地方,难以整体看清差异全貌。
  • 结果不直观:核对结论分散在两列甚至两个 Sheet 里,要翻来翻去才能下结论。
  • 格式问题难排查:空格、大小写、全角半角任何一处不一致就会漏报,需要额外清洗步骤。
  • 数据更新需手动刷新:A 表或 B 表新增了记录,之前的公式列不会自动跟着扩展,容易漏掉新增差异。
  • 行数多时慢:COUNTIF 做全表区域匹配在几万行时明显拖慢工作表响应速度。

如果两张表经常需要核对,或者数据量较大,公式方案的维护成本其实挺高。

更简单:超级表关联两表,一眼标出差异

超级表(TableDI)是一款桌面端高能表格助手,支持 macOS 和 Windows,离线运行、无需登录、数据本地存储。它把「核对两表、标出差异」做成了可视化的关联列操作——不用写任何公式,也不怕格式不一致。步骤如下:

  1. 两张表导入超级表(Excel / CSV 直接拖进来即可)。
  2. 在表 A 上新建一个关联列,选择「按姓名(或 ID)匹配表 B」。
  3. 超级表自动按关键列做双向比对,每行会标注:两边都有 / 只在 A 有 / 只在 B 有
  4. 可以直接按标注结果筛选,只看差异行,也可以导出为 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 省事。

不想再写两遍 COUNTIF?

免费下载超级表,关联两表、一眼标出差异,全程不写公式

免费下载(macOS / Windows)