首页 > 文章 > Excel表格 > Excel两表比对别按行号:用编号找新增、删除和修改

Excel两表比对别按行号:用编号找新增、删除和修改

Excel两表比对

点击使用相关工具

去使用

两张Excel表看起来只差几行,逐行盯着比却很容易越看越乱:新表只要在中间插入一条记录,后面的行号就会整体错位。真正需要对齐的不是“第几行”,而是每条记录自己的稳定标识,例如员工编号、订单号,或者“订单号 + 明细序号”的组合。

打开Excel两表比对并载入页面示例。旧表有001、002、003三条记录,新表有001、002、004三条记录;关键列选择“编号”,比较列包含“金额”。实际处理结果为:新增1、删除1、修改1、未变1。字段明细指出编号002的金额从20变为25。

四类结果是怎样从编号算出来的

先把两张表按编号建立对应关系,而不是按物理位置配对:

  • 001:两边都有,比较字段也相同,所以是未变。
  • 002:两边都有,但金额由20变为25,所以是修改。
  • 003:只在旧表出现,所以是删除。
  • 004:只在新表出现,所以是新增。

这套判断与行顺序无关。即使新表把004放在最前面,只要编号仍然唯一,结果也不应改变。反过来,若直接比较“旧表第2行”和“新表第2行”,插入、排序或筛选都可能制造一串并不存在的差异。

关键列怎么选,才不会把不同记录配成一对

合格的关键列至少要满足三个条件:同一张表中不重复、两个版本里含义稳定、空值不会被当成正常编号。身份证号、客户手机号看似唯一,但可能涉及隐私或会被更换;姓名、商品名称则经常重名,不适合单独做关键字。

一列不够时可以组合。例如一张订单包含多件商品,仅用订单号就会重复,可以选“订单号 + 明细序号”;考勤表可以选“员工编号 + 日期”。组合后的每一组值仍必须唯一。工具不会在重复键之间猜测谁该和谁配对,而是明确报冲突,避免悄悄生成错误结果。

如果重复来自同一记录被复制,可先用Excel按列去重核对重复行;若重复代表真实的多条业务明细,应增加组合关键列,而不是随便删除。

比较列不必把所有字段都勾上

关键列负责“找到同一条记录”,比较列负责“判断哪些字段变了”。审核价格变更时可只勾金额和币种;核对通讯录时可比较部门、电话和状态。把备注、更新时间、导出批次等每次都会变化的字段全部勾上,会让结果充满噪声。

“忽略文本两端空格”和“忽略大小写”只影响匹配与比较,不会改写原始输出。例如编号两侧误带空格时可以按需要忽略;产品代码A01与a01若在业务上是两个值,就不应打开忽略大小写。选项是否启用,要由数据规则决定,而不是为了让差异数量变少。

导出结果前要核对什么

  1. 确认文件顺序是旧表在前、新表在后,否则新增和删除会互换。
  2. 确认两张表选择了正确工作表与表头行,关键列名称在两边都存在。
  3. 先看新增、删除、修改、未变四类总数,再抽查字段级差异。
  4. 保存原始工作簿,不要把导出的比对结果当成原文件备份。

页面只处理 .xlsx。公式不会重新计算,只读取文件里已有的缓存结果;缺失缓存、错误单元格、宏、外部链接、加密工作簿和旧版 .xls 都不在支持范围内。样式、图表也不属于比对结果的保留承诺。涉及财务结账、库存调整或客户数据时,应把结果当作核对清单,再回到业务系统确认。

常见问题

两张表行数不同,还能比较吗?

可以。行数不同正是新增和删除的常见来源。关键是两边都有可对应的稳定关键列,而不是强求相同行数。

编号001为什么不能先转成数字1?

001可能是有意义的文本编号。工具会保留文本前导零;若在Excel里已把它保存成数值1,丢失的零无法由比对工具猜回。导入前应先确认关键列的数据类型。

出现重复关键字报错,能不能自动配第一条和第一条?

不建议。重复记录的顺序可能随排序变化,任意配对会产生不稳定结果。应先判断重复是脏数据还是合法明细,再去重或增加组合关键列。

立即使用Excel两表比对