ARTICLE · 982826
《两份Excel哪里不一样?不用再一行行对了》
《两份Excel哪里不一样?不用再一行行对了》采购表刚整理完,发给领导。 下午文件又回来了。 名字从: 采购计划最终版.xlsx 变成: 采购计划最终版-修改.xlsx 消息只有一句: “我改了一下,你再核对一下。” 最怕的不是领导改表。 最怕的是—— 他没告诉你改了哪里。 打开旧表。 再打开新表。 两个窗口来回切。 A001,数量没变。 A002,好像也没变。 A003…… 看到第几十行的时候,你已经开始怀疑: “刚才这一行到底看过没有?” 如果只有十几行,这种办法还能凑合。 但采购清单、库存台账、设备备件表、供应商报价表,动不动就是几百甚至几千行。 这时候“人工找不同”就开始变成一种非常典型的无效加班。 真正麻烦的不是找一个数字 假设昨天的采购表里有500条物料。 今天收到修改版。 可能发生四种情况: 有一条物料被新增了。 有两条被删除了。 某个采购数量从100改成了80。 还有一个交货日期从8月30日改成了9月5日。 人工核对时,你真正要回答的其实不是: “这两个Excel是不是一样?” 而是: 新增了什么? 删除了什么? 哪一行发生了修改? 具体哪个单元格从什么变成了什么? 如果这些问题都靠眼睛完成,表越大,出错概率就越高。 这种工作其实很适合交给程序 这次筛到一个比较有意思的开源项目: diffxl。 它的目标非常直接: 比较两个版本的Excel表。 根据项目目前的官方说明,它会根据表格中的唯一标识,也就是类似: 物料编码、订单号、设备编号、员工编号…… 这样的字段判断每一条记录,然后识别三种最重要的变化: Added:新增 Removed:删除 Changed:修改 而且不仅判断“这一行变了”,还能进一步识别发生变化的单元格。 这就很适合采购、仓库和财务。 比较完,不只是告诉你“有差异” diffxl 默认可以生成两种结果。 一种是: Excel差异报告。 报告会把新增、删除和修改的数据拆分出来,并提供带颜色标记的完整差异表。 另一种是: HTML网页报告。 可以在浏览器里查看,并支持筛选和查看变化。 也就是说,你不需要面对一大段程序输出,然后自己猜哪里变了。 最终还是可以回到大家熟悉的:表格。 更适合哪些工作? 我首先想到的是采购。 供应商上午发: 报价单V1.xlsx 下午又发: 报价单V2.xlsx 最重要的问题不是重新看一遍报价。 而是: 哪些价格变了? 仓库也一样。 昨天库存台账一版。 今天系统又导出一版。 你想知道: 哪些物料数量发生变化? 设备管理还有: 备件清单V1 → V2 工程项目还有: 设备清单初版 → 修改版 甚至行政人员维护: 人员名单上月版 → 本月版 本质上都是同一个问题: 两个版本的数据,到底哪里发生了变化? diffxl也提供重复UID处理参数,但对于普通办公室场景,我更建议: 先把自己的基础数据规范好。 一个物料一个编码。 一个订单一个编号。 这样不只是为了对表方便。 以后做库存、采购、ERP甚至数字化管理都会轻松很多。 官方资料显示,如果没有主动指定关键列,diffxl会尝试自动识别表头,并默认采用最左侧列作为唯一标识;如果找不到指定的关键列,还能生成诊断建议。 真正值得解决的是“重复核对” 我越来越觉得,办公室自动化最应该消灭的不是那些很复杂的工作。 而是这种: 明明规则非常清楚,却每天都有人重复做的事情。 两张表来回切。 一个数字一个数字看。 看到最后眼睛都花了。 真正需要人的地方应该是: 发现差异以后判断: 为什么采购数量变了? 为什么价格上涨了? 为什么库存突然减少? 而不是把半个小时浪费在: “到底是哪一个单元格不一样?” 如果你工作里也经常收到: 最终版.xlsx 最终版2.xlsx 最终版-真的最终版.xlsx 那么“自动找版本差异”这件事,可能比又学一个复杂Excel公式更值得折腾。 后面我还会继续找这种工具。 不是看它有多少Star。 而是看: 它到底能不能少做一点重复劳动。