教程

如何在 Google 表格中比较两个列表(找出相同项和差异)

作者 9分钟阅读

Google 表格提供了比较两个列表所需的一切:高亮两边都有的值,标记缺失的值,或者把差异提取成一个会自动更新的独立列表。本文从简单的高亮讲到一次处理整列的公式,介绍最实用的几种方法。

所有示例都假设 列表 A 在 A 列,列表 B 在 B 列,从第 2 行开始,第 1 行是标题。B2:B 这样的开放式范围包含下面的所有行,新增的数据会被自动纳入。

只需要比较一次?把两个列表粘贴到免费的 两个列表比较工具,无需公式就能看到仅在 A、仅在 B 和两者共有的项目。


1. 用条件格式高亮匹配项

  1. 选中 A2:A。
  2. 点击 格式 → 条件格式。
  3. 在 设置格式的条件 中选择 自定义公式,输入:
=COUNTIF($B$2:$B,$A2)>0
  1. 选择填充颜色,点击 完成。

如果要高亮 A 中在 B 里找不到的值,改用:

=COUNTIF($B$2:$B,$A2)=0

在 B2:B 上再添加一条规则(交换列字母),就能给列表 B 也着色。公式是按范围的第一个单元格($A2)来写的,表格会自动为其他行调整。


2. 用 COUNTIF 或 MATCH 标记每一项

辅助列能给出可以排序和筛选的结果。在 C2 输入:

=IF(COUNTIF($B$2:$B,A2)>0,"匹配","不匹配")

或者用 MATCH,它会返回 TRUE 或 FALSE:

=ISNUMBER(MATCH(A2,$B$2:$B,0))

向下拖动填充公式,然后用 数据 → 创建过滤器,只显示匹配项或差异项。


3. 一个公式检查整列(ARRAYFORMULA)

不用把公式复制到每一行,在 C2 写一个 ARRAYFORMULA 就能填满整列,之后新增的行也会自动覆盖:

=ARRAYFORMULA(IF(A2:A="",,IF(COUNTIF(B2:B,A2:A)>0,"匹配","不匹配")))

IF(A2:A="",,…) 这部分会让空行保持空白,而不是被填上"不匹配"。


4. 把匹配项或差异项提取成新列表(FILTER)

FILTER 返回一个实时列表,任一列表变化时都会自动更新。A 中同样在 B 中的值:

=FILTER(A2:A,A2:A<>"",COUNTIF(B2:B,A2:A)>0)

A 中不在 B 中的值:

=FILTER(A2:A,A2:A<>"",COUNTIF(B2:B,A2:A)=0)

A2:A<>"" 这个条件很重要:没有它,A 列的空行会和 B 列的空行"匹配"上。要去重并排序,用 UNIQUE 和 SORT 包裹结果:

=SORT(UNIQUE(FILTER(A2:A,A2:A<>"",COUNTIF(B2:B,A2:A)=0)))

把公式中的 A 和 B 交换,就能得到仅在列表 B 中的值。


5. 用 XLOOKUP 或 VLOOKUP 查找匹配数据

如果列表 B 还有相关数据——比如 C 列是价格——XLOOKUP 会为每个匹配项返回对应的值:

=XLOOKUP(A2,$B$2:$B,$C$2:$C,"未找到")

VLOOKUP 也可以,最后一个参数一定要设为 FALSE(精确匹配):

=IFERROR(VLOOKUP(A2,$B$2:$C,2,FALSE),"未找到")

6. 逐行比较两列

如果两个列表是对齐的,想知道每一行是否和旁边一致:

=IF(A2=B2,"相同","不同")

= 不区分大小写。要区分大小写,使用 EXACT:

=IF(EXACT(A2,B2),"相同","不同")

要给不同的行着色,选中 A2:B,添加一条自定义公式为 =$A2<>$B2 的条件格式规则。


7. 比较两个不同工作表中的列表

在普通单元格中,可以直接引用另一个工作表:

=IF(COUNTIF(工作表2!$A$2:$A,A2)>0,"匹配","不匹配")

条件格式规则不能直接引用其他工作表,需要用 INDIRECT 包裹范围:

=COUNTIF(INDIRECT("工作表2!A2:A"),$A2)>0

把 工作表2 换成你的工作表名称。如果名称中有空格,要加单引号:INDIRECT("'老客户'!A2:A")。


常见问题及解决方法

  • 多余的空格: "Apple " 和 "Apple" 不会匹配。选中数据,使用 数据 → 数据清理 → 修剪空格。
  • 同一列表内有重复: 先用 数据 → 数据清理 → 移除重复项,或用 UNIQUE 包裹结果。
  • 大小写: COUNTIF、MATCH、XLOOKUP 和 VLOOKUP 都不区分大小写。如需区分大小写判断是否存在,使用 =SUMPRODUCT(--EXACT($B$2:$B$100,A2))>0。
  • 数字与文本: 数字和以文本形式存储的相同数字不会匹配。用 格式 → 数字 给两列设置相同格式,或用 =VALUE(A2) 转换。

总结

方法 结果 适用场景
条件格式(COUNTIF) 高亮匹配项或差异项 快速直观检查
COUNTIF / MATCH 辅助列 匹配 / 不匹配标记 排序和筛选
ARRAYFORMULA 整列的标记 持续增长的列表
FILTER(+ UNIQUE、SORT) 匹配项或差异项的实时列表 提取结果
XLOOKUP / VLOOKUP 另一列表中的相关数据 需要带出其他列的匹配
逐行比较(= / EXACT) 每行相同 / 不同 对齐的两列
条件格式中使用 INDIRECT 跨工作表高亮 不同标签页中的列表

在用 Excel?请看 如何在 Excel 中比较两个列表。如果只想不写公式快速检查一次,可以使用 在线列表比较工具。

标签

#Google 表格#列表比较#教程

关于作者

songshiqiang独立开发者

使用 AI 工具开发有趣的网站。

相关文章

教程

如何在 Java 中比较两个列表(相同、缺失和相等的元素)

在 Java 中比较两个列表:判断是否相等(考虑或不考虑顺序),用 retainAll 找出共同元素,用 removeAll 或 Stream 找出差异,比较对象列表,以及避开最常见的性能陷阱。

10分钟阅读
#Java#列表比较#教程
阅读更多
教程

如何在 Python 中比较两个列表(附示例)

Python 比较两个列表的完整指南:用集合找出相同和不同的元素,用列表推导式保留顺序,判断两个列表是否相等,逐个元素比较,比较字典列表,以及用 pandas 处理大数据。

12分钟阅读
#Python#列表比较#教程
阅读更多
教程

如何在 Excel 中比较两个列表(找出相同项和差异)

在 Excel 中比较两个列表的 9 种方法:用条件格式高亮匹配项,用 COUNTIF 或 MATCH 标记,用 VLOOKUP 或 XLOOKUP 查找,用 FILTER 提取,逐行比较,以及用 Power Query 处理大数据。

12分钟阅读
#Excel#列表比较#XLOOKUP#教程
阅读更多