跳至主要内容

如何在 Excel 中比较两列:分步指南

学习如何在 Excel 中比较两列的匹配项与重复项,使用等号运算符、IF() 函数、EXACT()、XLOOKUP() 等方法。
· 9分钟 阅读

使用 AI 探索

    您是否曾盯着 Excel 中的两列数据,想着有没有快捷的方法来比较它们?也许您想找出重复项或交叉核对信息。我懂这种感觉——确实让人沮丧。

    因此在本指南中,我将一步步讲解如何使用最常见的方法在 Excel 中比较两列,包括等号运算符、IF() 函数和 EXACT() 函数。您还将学习如何使用 VLOOKUP() 进行交叉引用,以及条件格式和数组公式等进阶技巧,让比较更高效。

    要点速览

    • 使用等号运算符(=A2=B2)快速逐行检查是否匹配——返回 TRUE 或 FALSE
    • 使用 IF() 将 TRUE/FALSE 替换为自定义标签,如“匹配”或“不匹配”
    • 当区分大小写很重要时使用 EXACT()(例如区分 “Apple” 和 “apple”)
    • 使用条件格式在无需公式的情况下直观高亮重复或唯一值
    • 使用 VLOOKUP() 或(Excel 365 的)XLOOKUP() 在两列清单之间交叉引用值
    • 使用 COUNTIF() 或 IF()+MATCH() 在整列范围内查找重复项,而不仅是同一行的匹配


    如何比较 Excel 中的两列以查找匹配项

    处理数据时,您经常需要比较两列来识别匹配项。为此,Excel 提供了多种方法,可根据数据的复杂程度选择最合适的方式。

    使用等号运算符比较两列

    在 Excel 中比较两列的一种直接方法是使用等号 = 运算符。该运算符直接检查两个单元格的值是否相同。例如,我这里有两列——A 列和 B 列。我还添加了第三列,并输入以下公式来检查两者是否相同。

    =A2=B2

    在 Excel 的单元格中输入等号公式

    在单元格中输入等号公式。图片由作者提供。

    = 运算符比较两个单元格的内容,如果完全一致则返回 TRUE,否则返回 FALSE。

    在 Excel 中检查单元格是否相等

    检查两列是否相等。图片由作者提供。

    当您需要一种快速、简单的方法来比较两列并验证条目是否一致时(例如对比姓名列表或产品编码),可以使用此方法。

    使用 IF() 函数比较两列

    由于 = 运算符只返回默认的 TRUE 或 FALSE,在需要自定义输出时并不理想。如果您需要自定义输出,可以改用 IF() 函数。下面是同样的示例,只是这次我使用了 IF() 函数:

    =IF(A2=B2, "Found", "Not Found")

    Excel 中的 IF 公式

    在单元格中输入 IF() 公式。图片由作者提供。

    我根据自己的偏好定制了输出。我写的是 Found 和 Not Found,当然也可以换成任何文案。

    在 Excel 中使用 IF 函数自定义消息

    使用 IF() 函数自定义消息。图片由作者提供。

    使用 EXACT() 函数比较两列

    EXACT() 函数通过区分大小写来比较两个值,这在需要区分大小写时非常实用。例如,我有两列,Column A 和 Column B,以及第三列 Result,我在其中输入以下公式:

    =EXACT(A2,B2)

    Excel 中的 EXACT 公式

    在单元格中输入 EXACT() 公式。图片由作者提供。

    您可以看到我把 Apple 和 Cherry 写成了不同的大小写,应用公式后,即使名称相同也会显示 FALSE。原因在于该公式区分大小写,会区分大写和小写字母。

    在 Excel 中使用 Exact 函数比较值

    使用 Exact() 函数比较区分大小写的值。图片由作者提供。

    如果您想用自定义消息替换 TRUE 或 FALSE,可以像下面这样将公式包裹在 IF() 函数中。

    =IF(EXACT(A2,B2),"Match","Mismatch")

    在 Excel 中将 IF 与 EXACT 组合以自定义输出

    将 IF() 与 EXACT() 组合以自定义消息。图片由作者提供。

    这种方法非常适合用于验证用户名、产品代码或其他文本字符串,当大小写差异会导致不同结果时尤其有用。

    使用条件格式比较两列

    条件格式是 Excel 的一项功能,可根据特定条件对单元格应用不同的格式。要在一列中高亮重复值,请按以下步骤操作:

    • 选择您希望识别重复项的单元格范围。
    • 然后,依次转到 开始 > 样式 > 条件格式 > 突出显示单元格规则 > 重复值。

    在 Excel 中使用高级比较技术高亮重复项

    选择“重复值”选项。图片由作者提供

    • 在弹出的对话框中,您会看到浅红填充、深红文本 的格式已被预选。点击确定(OK)。

    Excel 中“重复值”对话框示意图

    显示包含重复值的对话框示意图。图片由作者提供。

    注意:如果您更喜欢其他格式,可以在下拉菜单中选择多种预设格式。若想完全自定义外观,请在下拉菜单底部选择自定义格式...,再选择所需的填充色和字体颜色。完成后点击确定(OK)。

    在 Excel 中使用条件格式高亮重复值

    使用条件格式高亮重复值。图片由作者提供。

    • 同样地,从下拉菜单中选择唯一,即可高亮唯一值,而不是重复。

    在 Excel 中高亮唯一值

    高亮唯一值。图片由作者提供。

    若想深入了解可视化高亮技巧,请参阅我们的Excel 中高亮重复项指南,其中涵盖更多条件格式规则以及针对大型数据集的 Power Query 方法。




    使用 VLOOKUP() 比较两列

    您也可以使用 VLOOKUP() 函数来比较 Excel 中的列。例如,我使用与 IF() 示例相同的数据集,但这里我输入了以下公式:

    =VLOOKUP(A2, $B$2:$B$10, 1, FALSE)

    Use <code524

    使用 VLOOKUP() 比较数值。图片由作者提供。

    如果比较出现如上图所示的错误,请将公式包裹在 IFERROR() 函数中进行处理。

    =IFERROR(VLOOKUP(A2, $B$2:$B$10, 1, FALSE), "Not Matched")

    其工作原理如下:

    • 在范围 $B$2:$B10 中搜索单元格 A2 的值。

    • 如果找到精确匹配,VLOOKUP() 返回匹配的值。

    • 如果未找到匹配,IFERROR() 将返回 Not Matched,而不是报错。

    Handle the error using <code624

    将 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 列。现在我想判断两者之间是否存在匹配。

    Excel 中的两列:A 列和 B 列

    A 列和 B 列包含数据。图片由作者提供。

    为此,我将使用以下公式:

    =SUM(--(A2=B2))

    说明如下:

    • SUM() 函数对数组中的值求和。若至少存在一个匹配,求和结果大于 0;否则为 0。
    • 双一元运算符(--)将 TRUE 和 FALSE 转换为 1 和 0,从而得到由 1 和 0 组成的数组。

    Compare columns with <code456

    使用 SUM() 公式比较列。图片由作者提供。

    接下来,我希望显示自定义消息而不是 0 和 1,因此将 SUM() 函数包裹在 IF() 函数中。

    =IF(SUM(--(A2=B2))=0, "No match", "Match")

    IF() 函数检查求和结果是否为0。如果是,则返回 No match;否则返回 Match。

    Wrapping an Excel formula inside <code553

    IF() 中的 SUM() 公式。图片由作者提供。

    就这样。借助数组公式,您可以高效完成类似的复杂比较。

    如何比较 Excel 中的两列以查找重复项

    现在您已经知道如何比较列以查找匹配项,但有时我们还需要识别重复项。需要明确的是,匹配项指不同列中同一行的对应值;而重复项则特指跨两列但位于不同行、出现一次或多次的值。

    结合 IF() 和 MATCH() 比较两列

    IF() 或 MATCH() 单独都无法完成查找以识别重复,但将它们结合使用则可以。 例如,我有一个按月份名称组织的数据集,分别在 A 列 和 B 列。我再创建一列用于返回结果。在第一个单元格输入以下 MATCH() 公式,并向下拖动至最后一个单元格,以检查数据范围内的重复值。

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

    在 excel 中使用 MATCH() 函数查找重复项。

    使用 MATCH() 查找重复项。图片由作者提供。

    可以看到,如果值是重复的,MATCH() 会返回该值在第二列中的位置;否则会抛出 #N/A 错误。为避免显示 #N/A 错误,可将公式包裹在 ISERROR() 中。若发生 #N/A 错误则显示 TRUE,否则为 FALSE。

    在 excel 中使用 ISERROR() 函数处理错误。

    使用 ISERROR() 处理错误。图片由作者提供。

    我更倾向于使用自定义输出而不是 TRUE 或 FALSE。要实现自定义输出,可将公式包裹在 IF() 中,如下所示:

    =IF(ISERROR(MATCH(A2,$B$2:$B$7,0)),"Unique","Duplicate")

    在 excel 中使用 IF() 与 MATCH() 显示重复项。

    结合 IF() 与 MATCH() 显示重复项。图片由作者提供。

    使用 COUNTIF() 比较两列

    您还可以使用 COUNTIF() 函数比较两列并识别重复项。它会统计某个值在第二列中出现的次数,若值唯一则显示 0,若为重复则显示 1。请看以下公式:

    =COUNTIF($B$2:$B$7,$A2:$A7)

    在 excel 中使用 COUNTIF() 检查重复值。

    使用 COUNTIF() 检查重复值。图片由作者提供。

    如果您想用自定义消息替代 0 和 1,可将 COUNTIF() 包裹在 IF() 中。

    =IF(COUNTIF($B$2:$B$7,$A2:$A7)=0,"Unique","Duplicate")

    在 excel 中使用 IF() 显示自定义消息。

    使用 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 公式速查表——一份随手可查的便捷参考指南。

    Laiba Siddiqui

    作者

    Laiba Siddiqui

    我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 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 应用于数据范围,无需辅助列即可直观高亮不同的行。

    主题