如何比较 Excel 中的两列以查找匹配项
处理数据时,您经常需要比较两列来识别匹配项。为此,Excel 提供了多种方法,可根据数据的复杂程度选择最合适的方式。
使用等号运算符比较两列
在 Excel 中比较两列的一种直接方法是使用等号 = 运算符。该运算符直接检查两个单元格的值是否相同。例如,我这里有两列——A 列和 B 列。我还添加了第三列,并输入以下公式来检查两者是否相同。
=A2=B2
在单元格中输入等号公式。图片由作者提供。
= 运算符比较两个单元格的内容,如果完全一致则返回 TRUE,否则返回 FALSE。

检查两列是否相等。图片由作者提供。
当您需要一种快速、简单的方法来比较两列并验证条目是否一致时(例如对比姓名列表或产品编码),可以使用此方法。
使用 IF() 函数比较两列
由于 = 运算符只返回默认的 TRUE 或 FALSE,在需要自定义输出时并不理想。如果您需要自定义输出,可以改用 IF() 函数。下面是同样的示例,只是这次我使用了 IF() 函数:
=IF(A2=B2, "Found", "Not Found")
在单元格中输入 IF() 公式。图片由作者提供。
我根据自己的偏好定制了输出。我写的是 Found 和 Not Found,当然也可以换成任何文案。

使用 IF() 函数自定义消息。图片由作者提供。
使用 EXACT() 函数比较两列
EXACT() 函数通过区分大小写来比较两个值,这在需要区分大小写时非常实用。例如,我有两列,Column A 和 Column B,以及第三列 Result,我在其中输入以下公式:
=EXACT(A2,B2)
在单元格中输入 EXACT() 公式。图片由作者提供。
您可以看到我把 Apple 和 Cherry 写成了不同的大小写,应用公式后,即使名称相同也会显示 FALSE。原因在于该公式区分大小写,会区分大写和小写字母。

使用 Exact() 函数比较区分大小写的值。图片由作者提供。
如果您想用自定义消息替换 TRUE 或 FALSE,可以像下面这样将公式包裹在 IF() 函数中。
=IF(EXACT(A2,B2),"Match","Mismatch")
将 IF() 与 EXACT() 组合以自定义消息。图片由作者提供。
这种方法非常适合用于验证用户名、产品代码或其他文本字符串,当大小写差异会导致不同结果时尤其有用。
使用条件格式比较两列
条件格式是 Excel 的一项功能,可根据特定条件对单元格应用不同的格式。要在一列中高亮重复值,请按以下步骤操作:
- 选择您希望识别重复项的单元格范围。
- 然后,依次转到 开始 > 样式 > 条件格式 > 突出显示单元格规则 > 重复值。

选择“重复值”选项。图片由作者提供
- 在弹出的对话框中,您会看到浅红填充、深红文本 的格式已被预选。点击确定(OK)。

显示包含重复值的对话框示意图。图片由作者提供。
注意:如果您更喜欢其他格式,可以在下拉菜单中选择多种预设格式。若想完全自定义外观,请在下拉菜单底部选择自定义格式...,再选择所需的填充色和字体颜色。完成后点击确定(OK)。

使用条件格式高亮重复值。图片由作者提供。
- 同样地,从下拉菜单中选择唯一,即可高亮唯一值,而不是重复。

高亮唯一值。图片由作者提供。
若想深入了解可视化高亮技巧,请参阅我们的Excel 中高亮重复项指南,其中涵盖更多条件格式规则以及针对大型数据集的 Power Query 方法。
使用 VLOOKUP() 比较两列
您也可以使用 VLOOKUP() 函数来比较 Excel 中的列。例如,我使用与 IF() 示例相同的数据集,但这里我输入了以下公式:
=VLOOKUP(A2, $B$2:$B$10, 1, FALSE)
使用 VLOOKUP() 比较数值。图片由作者提供。
如果比较出现如上图所示的错误,请将公式包裹在 IFERROR() 函数中进行处理。
=IFERROR(VLOOKUP(A2, $B$2:$B$10, 1, FALSE), "Not Matched")其工作原理如下:
在范围 $B$2:$B10 中搜索单元格 A2 的值。
如果找到精确匹配,
VLOOKUP()返回匹配的值。如果未找到匹配,
IFERROR()将返回Not Matched,而不是报错。

将 IFERROR() 与 VLOOKUP() 搭配使用来处理错误。图片由作者提供。
使用 XLOOKUP()(Excel 365)比较两列
如果您使用的是 Excel 365 或 Excel 2021,XLOOKUP() 为比较列提供了比 VLOOKUP() 更灵活的替代方案。与 VLOOKUP() 不同,它可双向搜索、无需列索引号,并且内置缺失值回退——无需再配合 IFERROR()。
=XLOOKUP(A2, $B$2:$B$10, $B$2:$B$10, "Not Found")参数说明如下:
A2— 查找值(要在 B 列中查找的 A 列项目)$B$2:$B$10(第一次出现)— 查找数组(搜索位置)$B$2:$B$10(第二次出现)— 返回数组(找到后返回的内容)"Not Found"— 未找到时返回的值(取代 IFERROR())
若找到,则返回 B 列中的匹配值;未找到则返回“Not Found”。对于 Excel 2019 或更早版本,请使用上面的 VLOOKUP() 方法。若想了解如何选择,参阅我们的XLOOKUP 与 VLOOKUP 对比指南。
使用数组公式比较两列
数组公式可以一次处理多个值。它们不是对单个值操作,而是处理一个数据范围,从而更高效地完成复杂计算。要使用数组公式,在单元格中输入后按Ctrl+Shift+Enter。
例如,我这里有两列——A 列和 B 列。现在我想判断两者之间是否存在匹配。

A 列和 B 列包含数据。图片由作者提供。
为此,我将使用以下公式:
=SUM(--(A2=B2))说明如下:
SUM()函数对数组中的值求和。若至少存在一个匹配,求和结果大于 0;否则为 0。- 双一元运算符(--)将
TRUE和FALSE转换为 1 和 0,从而得到由 1 和 0 组成的数组。

使用 SUM() 公式比较列。图片由作者提供。
接下来,我希望显示自定义消息而不是 0 和 1,因此将 SUM() 函数包裹在 IF() 函数中。
=IF(SUM(--(A2=B2))=0, "No match", "Match")IF() 函数检查求和结果是否为0。如果是,则返回 No match;否则返回 Match。

IF() 中的 SUM() 公式。图片由作者提供。
就这样。借助数组公式,您可以高效完成类似的复杂比较。
如何比较 Excel 中的两列以查找重复项
现在您已经知道如何比较列以查找匹配项,但有时我们还需要识别重复项。需要明确的是,匹配项指不同列中同一行的对应值;而重复项则特指跨两列但位于不同行、出现一次或多次的值。
结合 IF() 和 MATCH() 比较两列
IF() 或 MATCH() 单独都无法完成查找以识别重复,但将它们结合使用则可以。 例如,我有一个按月份名称组织的数据集,分别在 A 列 和 B 列。我再创建一列用于返回结果。在第一个单元格输入以下 MATCH() 公式,并向下拖动至最后一个单元格,以检查数据范围内的重复值。
=MATCH(A2,$B$2:$B$7,0)
使用 MATCH() 查找重复项。图片由作者提供。
可以看到,如果值是重复的,MATCH() 会返回该值在第二列中的位置;否则会抛出 #N/A 错误。为避免显示 #N/A 错误,可将公式包裹在 ISERROR() 中。若发生 #N/A 错误则显示 TRUE,否则为 FALSE。

使用 ISERROR() 处理错误。图片由作者提供。
我更倾向于使用自定义输出而不是 TRUE 或 FALSE。要实现自定义输出,可将公式包裹在 IF() 中,如下所示:
=IF(ISERROR(MATCH(A2,$B$2:$B$7,0)),"Unique","Duplicate")
结合 IF() 与 MATCH() 显示重复项。图片由作者提供。
使用 COUNTIF() 比较两列
您还可以使用 COUNTIF() 函数比较两列并识别重复项。它会统计某个值在第二列中出现的次数,若值唯一则显示 0,若为重复则显示 1。请看以下公式:
=COUNTIF($B$2:$B$7,$A2:$A7)
使用 COUNTIF() 检查重复值。图片由作者提供。
如果您想用自定义消息替代 0 和 1,可将 COUNTIF() 包裹在 IF() 中。
=IF(COUNTIF($B$2:$B$7,$A2:$A7)=0,"Unique","Duplicate")
使用 IF() 显示自定义消息。图片由作者提供。
选择合适的比较方法
面对多种方法,下面这份快速参考可帮助您根据场景选择合适的方法:
| 方法 | 最适用场景 | 区分大小写? | 自定义输出? | Excel 版本 |
|---|---|---|---|---|
| 等号运算符 (=) | 快速逐行匹配检查 | 否 | 否(仅 TRUE/FALSE) | 所有版本 |
IF() | 返回便于阅读的匹配/不匹配标签 | 否 | 是 | 所有版本 |
EXACT() | 区分大小写的文本比较 | 是 | 可与 IF() 搭配 | 所有版本 |
| 条件格式 | 直观高亮重复或唯一值 | 否 | 仅视觉效果 | 所有版本 |
VLOOKUP() | 在两列清单间交叉引用值 | 否 | 可与 IFERROR() 搭配 | 所有版本 |
XLOOKUP() | 现代替代 VLOOKUP,内置错误处理 | 否 | 内置回退 | Excel 365 / 2021+ |
| 数组公式 | 对整段范围进行批量匹配计数 | 否 | 可与 IF() 搭配 | 所有版本 |
IF() + MATCH() | 跨列查找重复项(任意行) | 否 | 是 | 所有版本 |
COUNTIF() | 统计某值在第二列中的出现次数 | 否 | 可与 IF() 搭配 | 所有版本 |
结语
至此,您应已充分了解在 Excel 中比较两列的不同方法,从基础的 = 运算符到更高级的 VLOOKUP() 和数组公式。无论是需要快速比较,还是执行更复杂的数据验证任务,这些方法都各有其用。在比较匹配项或重复项时,同样适用。
如果您想进一步提升技能,也建议您查看其他资源。先从 Introduction to Excel 课程入手,夯实基础。之后再学习 Data Analysis in Excel 课程,掌握如何将原始数据转化为有洞见的报告。
为提升熟练度,建议完成 Excel Fundamentals 技能路径,该路径涵盖广泛的核心函数与功能。别忘了下载 Excel 公式速查表——一份随手可查的便捷参考指南。
我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 Splunk、Hackernoon 和 Tiiny Host 等公司为其受众打造兼具吸引力与信息量的内容。
常见的 Excel 问答
不使用公式也能在 Excel 中比较列吗?
是的。借助两个内置工具,您无需编写公式即可比较列:
- 条件格式:选择两列,转到 开始 > 条件格式 > 突出显示单元格规则 > 重复值,即可直观高亮匹配项或唯一值。
- 定位条件(Go To Special):选择两列,按 Ctrl+G(或 F5),点击 定位条件,然后选择 行差异。Excel 会立即选中第二列中与第一列不同的每个单元格——无需公式。
对于重复使用或大型数据集,IF() 或 COUNTIF() 等公式更可靠,也更易于自动化。
如何比较两列并仅高亮首次出现的不匹配项?
使用条件格式中的自定义公式。选择数据范围(如 A2:B10),转到 开始 > 条件格式 > 新建规则 > 使用公式确定要设置格式的单元格,输入:=AND(A2<>B2, COUNTIF($A$2:A2, A2)=1)。此规则仅高亮每个值首次出现的不匹配,忽略同一条目后续重复出现的不匹配。
如何仅比较两列中的重复项?
根据需求有两种方法:
- 可视化高亮:选择两列,转到 开始 > 条件格式 > 突出显示单元格规则 > 重复值,然后点击 确定。Excel 会高亮两列中重复出现的每个值。
- 基于公式:在辅助列中使用
=IF(COUNTIF($B$2:$B$10, A2)>0, "Duplicate", "Unique")。这会检查 A 列中的每个值是否在 B 列任意位置出现,而不受行位置影响。
能否比较两列并统计匹配或差异的数量?
可以。使用 COUNTIF() 统计某列值在另一列中出现的次数:=COUNTIF($B$2:$B$10, A2) 返回单个值的计数。要对整段范围求总数,逐行匹配可用 =SUMPRODUCT((A2:A10=B2:B10)*1),或用 =SUMPRODUCT(COUNTIF(A2:A10, B2:B10)) 统计 B 列中有多少值在 A 列任意位置出现。
在比较列时,XLOOKUP() 是否优于 VLOOKUP()?
对于 Excel 365 和 Excel 2021 用户,XLOOKUP() 通常更佳。它可双向搜索、无需列索引号,并且内置回退值——因此不必再用 IFERROR() 包裹。例如:=XLOOKUP(A2, $B$2:$B$10, $B$2:$B$10, "Not Found")。如果您使用的是 Excel 2019 或更早版本,VLOOKUP() 仍完全受支持,且适用于列比较。
如何比较两列并仅显示差异?
使用仅在值不同时返回标签、在匹配行留空的 IF() 公式:=IF(A2<>B2, "Different", "")。然后对该辅助列进行筛选或排序以定位不匹配。或者,使用条件格式,将公式 =$A2<>$B2 应用于数据范围,无需辅助列即可直观高亮不同的行。

您是否曾盯着 Excel 中的两列数据,想着有没有快捷的方法来比较它们?也许您想找出重复项或交叉核对信息。我懂这种感觉——确实让人沮丧。
因此在本指南中,我将一步步讲解如何使用最常见的方法在 Excel 中比较两列,包括等号运算符、
IF()函数和EXACT()函数。您还将学习如何使用VLOOKUP()进行交叉引用,以及条件格式和数组公式等进阶技巧,让比较更高效。要点速览
=A2=B2)快速逐行检查是否匹配——返回 TRUE 或 FALSE