在 excel 里面对比两列数据找出不同,最常用的方案一共有三种,分别是条件格式标记差异,函数公式比对,以及 vlookup 或者 xlookup 匹配查找缺失项,三种方案适用场景不一样,条件格式适合同行一一对应比对,函数适合自定义输出差异结果,vlookup 类函数适合找出一列有另一列没有的数据,大家可以根据自己的数据排列方式选择对应的办法,核心原理就是把同一行或者同名称的数据做相等判断,不相等就判定为存在不同。之所以要区分这几种办法,是因为很多新手会混淆同行对比和跨列匹配对比,同行对比是第一行和第一行直接对照,跨列匹配是不管行号,按照内容本身查找,两种需求操作完全不同,如果选错方法,最后得到的结果就会出错。
第一种 条件格式标记同行数据不同
这个方法最简单,适合两列数据是按顺序排好,同一行上下对应,想快速把不一样的单元格标颜色。
操作步骤
第一步 选中需要对比的两列全部数据区域
第二步 点击顶部菜单栏开始,找到条件格式,选择新建规则
第三步 选择使用公式确定要设置格式的单元格,输入公式 =A1<>B1,这里 A1 和 B1 是你选中区域的第一个单元格,要和你实际选区首单元格保持一致
第四步 点击格式,设置填充颜色,比如红色,确定保存规则
第五步 回到表格,所有同行不相等的单元格就会自动上色,一眼就能看到差异
注意要点
这个方法只对比同一行,就算 A 列第二行的数据等于 B 列第五行,也不会识别成相同,它不做跨位置匹配。
第二种 函数公式比对同行差异
适合想要直接在第三列输出文字结果,比如显示相同或者不同,方便筛选导出。
推荐公式
=IF (A1=B1,"相同","不同")
操作步骤
第一步 在两列旁边空白列,也就是 C 列第一行输入上面这个公式
第二步 鼠标放在单元格右下角,等光标变成黑色十字,下拉填充整列
第三步 完成之后,C 列就会逐行输出结果,之后可以点筛选,只筛选不同,就单独提取所有差异行
进阶版本,如果想要把两边不一样的值同时显示出来,可以用公式
=IF (A1=B1,"",A1&" vs "&B1)
第三种 xlookup 或者 vlookup 查找单列独有数据
这个是很多人最需要的场景,两列数据顺序打乱,不是同行对应,要找出 A 列有但是 B 列没有,或者 B 列有但是 A 列没有的数据。
vlookup 公式,在 C 列输入
=IFERROR (VLOOKUP (A1,B:B,1,0),"A 列独有")
含义就是拿 A1 去 B 整列查找,找不到就标记 A 列独有,找到就正常返回。
xlookup 新版 excel 推荐,公式更直观
=IFERROR (XLOOKUP (A1,B:B,B:B,"A 列独有"),"A 列独有")
反向查找,也就是查 B 列有 A 列没有,把公式里面的查找区域互换即可。
操作步骤
第一步 在辅助列输入公式,下拉填充
第二步 筛选辅助列里面标记独有的内容,就是两列之间缺失的数据
补充方案 countif 函数,也是高频用法
=IF (COUNTIF (B:B,A1)=0,"A 列有 B 列没有","存在")
countif 原理是统计 B 列里面 A1 这个内容出现次数,如果次数等于 0,代表 B 列不存在这个内容。
三种方案对比表格
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| 条件格式 | 同行顺序对应对比 | 操作简单,自动标色 | 不能输出文字,不识别错位数据 |
| if 函数 | 同行对比输出文字结果 | 结果可以筛选,可二次处理 | 仅支持同行对照 |
| vlookup xlookup countif | 顺序打乱跨列匹配 | 按内容查找,识别错位独有项 | 公式理解门槛略高,重复值会有特殊情况 |
特殊情况处理
第一 重复值问题,如果一列里面同一个内容出现多次,vlookup 只会匹配第一次出现的内容,这种情况建议改用 countifs 或者高级筛选。
第二 空格看不见的差异,两个单元格肉眼一样但是公式判定不同,一般是单元格前后存在隐藏空格,可以用 trim 函数清理,公式 = TRIM (A1)=TRIM (B1)。
第三 大小写差异,excel 默认公式对比不区分大小写,如果需要区分大小写,要用 exact 函数,公式 = EXACT (A1,B1),返回 true 就是完全一致,false 就是不同,这个函数会区分大小写和全半角字符。
总结
如果是整齐排列同行对照,优先条件格式或者 if 函数,如果两列数据顺序乱,需要查找互相缺失的数据,就选择 vlookup xlookup 或者 countif,如果需要严格区分大小写,就替换成 exact 函数,遇到隐藏空格就搭配 trim 清理,处理完之后筛选结果,就能完整拿到两列数据全部差异。
【常见问题】
问题 1 excel 两列数据对比找不同,为什么明明文字一样公式却判定不同
回答 1 excel 两列数据对比找不同出现这种情况,大多是单元格存在前后隐藏空格,全半角字符不一样,或者存在不可见换行符,可以使用 trim 函数清理空格,也可以用 exact 函数查看是不是大小写差异,清理之后再重新做 excel 两列数据对比找不同。
问题 2 excel 两列数据对比找不同,能不能一次性把所有差异行单独提取出来
回答 2 excel 两列数据对比找不同之后,在辅助列用 if 函数标记不同,然后开启筛选,筛选标记为不同的行,复制筛选结果,就可以单独提取所有差异行,完成 excel 两列数据对比找不同后的结果导出。
问题 3 excel 两列数据对比找不同,vlookup 匹配不到数据是哪里出错
回答 3 excel 两列数据对比找不同使用 vlookup 报错,常见原因是查找区域没有锁定,下拉公式区域偏移,或者两边数据类型不一致,一边是文本数字一边是数值型数字,需要统一单元格数据类型,才能正常完成 excel 两列数据对比找不同。
问题 4 excel 两列数据对比找不同,有没有不用公式的办法
回答 4 excel 两列数据对比找不同可以不用公式,使用条件格式直接标记,也可以使用高级筛选功能,将其中一列作为条件,筛选出另一列不存在的数据,同样可以实现 excel 两列数据对比找不同。
【免责申明】
本文操作教程基于常规 excel 版本编写,不同版本 excel 菜单名称和函数支持情况会存在差别,xlookup 仅新版 excel 支持,操作过程请注意备份原始表格数据,本文仅作技术参考,不承担因为操作失误造成的数据丢失相关责任。
