如何判断两列数据是否一致:逐字符精准比对排查隐形差异
上周加班整理业务对账报表,卡在了最基础的数据核对环节,迫切想搞懂如何判断两列数据是否一致,偏偏一开始用了最笨的方式,白白浪费了大把时间。手里有两列订单编码数据,一列是业务系统自动导出的原始数据,一列是同事手工录入的统计数据,需要确认两者完全匹配,确保对账数据没有偏差。
肉眼比对,是最没用的办法。
两千多行的数据密密麻麻铺满屏幕,盯着单元格逐行扫视,看了差不多四十分钟,主观觉得两列数据完全重合,没有任何出入。随手保存文件就提交给了财务组,结果不到十分钟就被打回,说账面数据对不上,存在多处编码不一致的情况。重新翻查表格才发现,很多差异根本肉眼识别不了,有的单元格末尾藏了隐形空格,有的数字0被打成了字母O,还有的半角符号和全角符号混用,这些细微差别,人的视觉完全分辨不出来,之前所有的核对工作,基本等于白做。
一开始想着用最简单的公式偷懒,直接在空白单元格输入=A2=B2,下拉填充整列数据,默认TRUE就是数据一致,FALSE就是存在差异。
空单元格的判定陷阱,特别容易被忽略。
折腾好久才搞明白,普通的等于比对公式容错率太高,根本不适合精准核对。表格里有不少空白行,正常的空白单元格互相匹配会显示TRUE,可部分单元格看似空白,实则藏了看不见的空白字符,一列真空白、一列带隐形字符,普通公式依旧会判定为一致,这就是隐性数据偏差的来源。手工录入的数据最容易出现这类问题,人工输入时不经意敲击的空格、切换输入法导致的格式错乱,都会让两列看似相同的数据,实则存在本质区别。
当时临时摸索出唯一靠谱的实操方式,就是先批量清理所有隐形字符,打开表格的替换功能,将空格内容全部替换为空值,彻底清除单元格里看不见的冗余字符。之后放弃普通比对公式,改用EXACT函数做校验,这个函数是逐字符、逐格式进行精准比对,不会默认兼容任何细微差异,只要字符、格式有一丁点不同,就会精准跳出FALSE提示。
整列套用公式后,直接筛选出所有FALSE的单元格,不用逐行翻找,所有不一致的数据行全部集中展示,针对性修改就行。原本耗费一小时都搞不定的核对工作,十来分钟就彻底梳理完毕,所有数据偏差全部清零。
关掉Excel窗口的时候,电脑屏幕的微光还映在桌面,一整天的繁琐工作,就栽在不起眼的数据核对细节里。