在文件A中
点击上传或拖入表格文件
XLSX、XLS、ODS 或 CSV — 在浏览器中读取,绝不上传在文件B中
点击上传或拖入表格文件
XLSX、XLS、ODS 或 CSV — 在浏览器中读取,绝不上传关于比较两个表格
「比较两个列表」回答的是:对于单独一列数值,什么在这边有、在那边没有。而这里回答的是更难、也更常遇到的问题:给定同一张表的两个版本,究竟改了什么?
这个问题分三部分,一个有用的答案会把它们区分开:
- 在较新那份文件里新增的行
- 消失的行
- 仍然存在、但现在内容不同的行——以及是哪个单元格不同
第三点才是要紧的,也正是列表比较给不了你的。价格从 10 变成 12,不是「删掉一行」加「新增一行」;它是一行里的一个单元格变了,报告时也应当这样呈现。
行是怎么配对的
这决定了其余的一切,所以它是第一个控件。
- 按主键列——通常的情形。同一批数据的两次导出,用订单号、货号或邮箱来对上,这样即使某一行换了位置,仍然会被认出是同一行
- 按位置——第1行对第1行。当根本没有主键,或者你要核对的正是顺序本身时,这才是对的选择
使用主键时,重复的值会被报告出来,而不是悄悄配给恰好排在前面的那一行。 如果主键不唯一,任何配对都不可信;而不声不响地挑一个,正是那种会被人当真的答案。
公平地比较数值
有三个设置决定两个单元格何时算作不同,而默认值都是宽容的那一档:
- 忽略多余空格——开启。末尾多一个空格,不是任何人想要表达的改动
- 把 1,000 和 1000 视为同一个数——开启。同一个值的两种写法就是同一个值;没有这一条,一份带千位分隔符导出的文件,会显得每一个数字单元格都变了
- 区分大小写——关闭,所以 ACME 和 Acme 是匹配的
如果你要核查的恰恰是格式本身,就把它们关掉。
需要说明的是,简体与繁体不会被视为相同。如果一份文件来自港台的供应商、另一份是简体版本,那么几乎每一个文字单元格都会被报告为「已变动」——这是照实呈现,而不是判断失误:软件 和 軟體 确实是不同的字符,工具不会替你假定它们该不该算一回事。遇到这种情况,先把其中一份统一转换过来,再来做比较。
使用方法
- 载入文件A和文件B——两个都上传、两个都粘贴,或者一边一个
- 选择行怎么配对,以及哪一列是主键
- 阅读汇总:已变动、仅在A、仅在B、完全相同
- 如果列表很长,就把视图收窄到某一类
- 下载CSV,为每一处差异留一份记录
人们用它来做什么
- 核对本月导出与上月导出之间改了什么
- 在价目表上线之前先审一遍价格表
- 验证一次数据迁移是否把所有内容原样搬了过来
- 找出同事在共享工作簿里改动过的行
- 拿产品目录和供应商的版本逐条核对
- 确认备份与原件逐行一致
值得一提
- 可在 Windows、macOS、Linux、ChromeOS 以及手机和平板上使用——它接收的是粘贴的文本或文件,而不是文件夹
- 不上传任何内容。两个文件的读取和比较都在页面内完成
- 只读。两个文件都不会被以任何方式修改
- 列名取自文件A的表头,因此两个文件的列顺序应当保持一致
- 只比较数值。公式按其计算结果读取,而格式、颜色和批注完全不参与比较
- 屏幕上最多列出 200 个变动的单元格,每个分区最多 100 行;CSV 则始终包含每一处差异