SheetReconcile · 表格对账助手

两份 Excel 列名不一样、行顺序打乱,如何按商品编号对账

昨天导出的表写“商品编码、库存”,今天的系统改叫“SKU、可用库存”,行也重新排序了。逐行相减会把不同行的商品放在一起。正确顺序是:先确定同一条业务记录,再对应字段,最后比较值。

本文只用虚构库存数据。你可以完全在本地用 Excel 操作,也可以用浏览器里的 SheetReconcile;不需要联系开发者、登录或提交反馈。

先看一份可核对的例子

旧表商品编码/库存:A001=30、A002=50、A003=15、A005=9。新表SKU/可用库存按乱序排列:A003=15、A001=26、A004=10、A005=9。

编号旧库存新库存结果
A0013026修改
A00250不存在删除
A0031515未变化
A004不存在10新增
A00599未变化

应得到新增1、删除1、修改1、未变化2。只比较库存这一个字段时,CSV报告有3行变更明细,不含表头。报告不列未变化记录;如果新增记录映射了多个字段,一条记录会展开多行。

下载合成旧表 CSV · 下载合成新表 CSV

按编号对账的五个步骤

  1. 选择两张表并看预览。 打开工具首页,先试“先看示例”,或分别选择旧表与新表。CSV默认UTF-8;旧中文编码选择GB18030。XLSX有多个工作表时先选对sheet。表头在第一行。
  2. 选择唯一编号。 旧表选“商品编码”,新表选“SKU”。界面的“主键”就是识别同一条记录的编号。不要选库存数或商品名称。若不同仓库可以有同一SKU,可按相同顺序选择“仓库+SKU”两列;如果同一编号在一张表出现两次,先确定业务规则,工具不会取第一条或擅自合并。
  3. 映射需要比较的字段。 将旧表“库存”对应新表“可用库存”。同名字段有建议,异名字段需要选择;不需要的选“不比较此字段”。编号本身不作为对比字段,至少配对一个其他字段。
  4. 开始对账并复核。 看四类记录数,筛选修改,搜索A001,确认30变成26。行顺序不参与匹配。空值、空白和0分别展示,大小写、首尾空格与前导零按原文比较。
  5. 下载报告。 点击“下载 diff-report.csv”。即使页面筛选了某种状态,下载仍含全部变化。报告列为状态、主键、旧表字段、新表字段、旧值、新值。完成后可“清除文件和数据”。

不用网页,也可用 Excel 公式

在支持XLOOKUP的Excel中,先把两张表的编号列设为文本、确认每表编号唯一;两张表的表头不必相同,公式引用实际列即可。假设旧表和新表都在A列放编号、B列放库存,旧表第2行可用:

=IF(ISNA(XMATCH(A2,新表!A:A,0)),"删除",IF(B2=XLOOKUP(A2,新表!A:A,新表!B:B),"未变化","修改"))

再在新表第2行检查新增:

=IF(ISNA(XMATCH(A2,旧表!A:A,0)),"新增","")

以上仅适合这一简单例子的存在性与库存判断,区域设置可能使用分号分隔参数。Excel的文本/数字、空白和大小写比较行为与本工具的严格字符规则可能不同;公式不能直接替代所有严格对账。旧Excel可用精确匹配VLOOKUP配合错误处理,Power Query也可按编号合并后展开值,但都应先检查重复键与字段类型。复合编号不要随意用分隔符拼接,以免产生相同字符串。

什么时候不适合使用

隐私与反馈

文件字节、文件名、表头、编号、单元格和搜索词都留在当前浏览器内存,不上传、不交给AI、不写入浏览器持久存储。本版本没有访问分析、业务埋点或会话回放。清空/刷新页面丢弃当前数据,不会删除你已下载的报告。结果区的匿名反馈只生成可复制文字,没有自动提交渠道,也不代表已经收集反馈。

打开工具,先看示例