跳至主要内容

如何在不同的工作表中使用vlookup比较两个列表?

Author: Xiaoyang Last Modified: 2025-07-31

sample sheets1

sample sheets2

假设你有两个工作表,每个工作表都包含一个名称列表,如上面的截图所示。你可能想检查Names-1中的哪些名称也存在于Names-2中。手动进行这种比较,尤其是当处理长列表时,可能会非常繁琐且容易出错。本文将介绍几种高效的方法,帮助你快速、准确地比较这两个列表,并在不同工作表中找到匹配的值。

使用公式在单独的工作表中用Vlookup比较两个列表

使用Kutools for Excel在单独的工作表中用Vlookup比较两个列表

跨工作表使用公式进行条件格式化

VBA代码 - 自动比较列表并突出显示或提取匹配项


使用公式在单独的工作表中用Vlookup比较两个列表

一种实用而直接的比较位于不同Excel工作表中的列表的方法是利用VLOOKUP函数。这种方法可以帮助你高效地提取或标记在Names-1Names-2中都存在的所有名称:

1. 在Names-1工作表中,选择列表数据旁边的一个单元格(例如,单元格B2),并输入以下公式:

=VLOOKUP(A2,'Names-2'!$A$2:$A$19,1,FALSE)

然后按Enter键。如果当前行中的名称存在于Names-2中,公式将返回该名称;否则,将显示#N/A错误。请参见下面的示例:

compare two lists with a formula

2. 通过拖动填充柄复制公式以比较Names-1中的每个名称与Names-2中的所有名称。匹配的条目将显示名称,而未找到的条目将显示错误值:

drag the formula to get the result

注意事项:

1. 为了更清晰起见,你可以使用此替代公式来返回“是”或“否”的匹配指示:

=IF(ISNA(VLOOKUP(A2,'Names-2'!$A$2:$A$19,1,FALSE)), "No", "Yes")

此公式为在两张表中都存在的名称显示“是”,只为Names-1中存在的名称显示“否”:

another formula to get the yes and no result

2. 使用这些公式时,请将A2替换为列表中的第一个单元格,将Names-2替换为引用工作表的名称,并调整$A$2:$A$19以匹配工作表中的实际数据范围。请记住,范围必须以正确的行号开始和结束,以确保包含所有数据。

3. 使用技巧:如果你在应该有匹配的地方遇到#N/A错误,请仔细检查是否有可能由多余的空格、数据格式差异(文本与数字)或列表中的拼写错误引起的问题。如有必要,使用TRIMCLEAN在辅助列中清理数据。

4. 为了避免意外覆盖,请考虑在应用批量公式之前备份你的数据。此外,在比较之后,你可以在公式结果列上使用筛选器,快速查看所有匹配项或唯一项。


在分离的工作表中使用Vlookup比较两个列表

如果你有Kutools for Excel,使用其“选择相同和不同单元格”功能,只需几次点击即可找到并高亮显示来自两个不同工作表的相同或不同的值。此功能大大减少了手动错误的风险,并节省了大量时间,特别是对于大型数据集。 点击下载Kutools for Excel!

compare two lists in separated worksheets by kutools

Kutools for Excel:拥有超过300个便捷的Excel插件,免费试用30天无限制。 立即下载并免费试用!


使用Kutools for Excel在单独的工作表中用Vlookup比较两个列表

如果你有Kutools for Excel,它的“选择相同和不同单元格”功能可以帮助你快速比较来自不同工作表的两个列表,并选择或高亮显示这两张工作表之间的共同名称——所有这些都不需要输入复杂的公式。当你处理大量数据或想要一个视觉上易于解读的颜色编码结果时,这种方法特别有效。

Kutools for Excel 提供了超过 300 种高级功能,简化复杂任务,提升创造力与效率。 通过集成 AI 能力,Kutools 能够精准自动执行任务,让数据管理变得轻松简单。Kutools for Excel 的详细信息...         免费试用...

安装Kutools for Excel后,按照以下步骤轻松比较你的列表:

1. 转到Kutools选项卡,然后点击选择 > 选择相同和不同单元格,如下所示:

Click Kutools > Select > Select Same & Different Cells

2. 在打开的“选择相同和不同单元格”对话框中:

(1.) 在“查找值”下,选择需要比较的Names-1的范围;

(2.) 在“根据”下,选择要比较的Names-2的范围;

(3.) 在“基于”部分,选择按行分别比较行;

(4.) 从“查找”部分,选择“相同值”以识别和高亮显示匹配的名称;

(5.) 可选地,你可以设置背景色或字体颜色以高亮显示结果,并使匹配项在视觉上突出。

specify the options in the dialog box

3. 点击确定,你会看到一个提示框,显示已找到并高亮显示了多少匹配单元格。所有在两个列表中存在的名称都将被选择并在视觉上强调,简化进一步的审查或修改:

a prompt box pops out to remind how many matching cells are selected

点击立即下载并免费试用Kutools for Excel!

实用技巧:如果你的工作表包含大型数据集,请考虑在高亮显示后使用筛选功能以快速查看仅匹配项。此外,在运行比较之前,请仔细检查范围选择是否正确对齐,并且不包括标题行(除非有意为之),因为不匹配会影响结果。

在极少数情况下,如果该功能未返回预期结果,请检查两个列表是否格式化相同(例如,均为文本,没有隐藏的前导/尾随空格),因为格式不一致可能导致匹配遗漏。


跨工作表使用公式进行条件格式化

如果你不想在列中写入公式或使用加载项,可以利用带有自定义公式的条件格式化来直观标识一个工作表中基于另一个工作表数据的匹配名称。这种方法简单明了,不需要VBA,但不会返回单独的结果列表——而是简单地格式化匹配项以便快速一目了然地查看。

适用场景:此解决方案适用于希望获得非侵入性、视觉匹配值指示符并且不希望更改工作表结构的用户。局限性在于条件格式化规则不能直接引用另一个工作簿,并且公式跨工作表引用只能在同一文件内工作。

步骤:

1. 在Names-1中,选择要应用高亮显示的范围(例如,A2:A19)。

2. 转到开始 > 条件格式化 > 新建规则 > 使用公式确定要格式化的单元格

3. 在公式框中,输入以下公式:

=COUNTIF('Names-2'!$A$2:$A$19,A2)>0

这会检查Names-1中A2的值是否存在于Names-2!A2:A19中的任何地方。

4. 点击格式以选择高亮颜色,然后点击确定以应用规则。任何匹配项都会在选定范围内自动高亮显示。

实用技巧:你可以根据实际数据调整范围,并且COUNTIF步骤可以与筛选结合使用,仅聚焦于高亮单元格。确保在设置跨工作表引用时,两个工作表都在同一个工作簿内,因为Excel不支持引用外部文件的条件格式化规则。

错误提示:如果高亮显示没有按预期出现,请检查单元格范围选择和跨工作表引用是否有误。确保没有前导/尾随空格或格式不一致导致匹配遗漏。如有必要,使用TRIM在辅助列中清理列表以进行准确比较。


VBA代码 - 自动比较列表并突出显示或提取匹配项

对于熟悉宏的用户来说,使用VBA代码提供了一种高度灵活和自动化的方式来比较两个独立工作表中的列表。这种方法允许你高亮显示匹配的名称或将匹配的值提取到新位置,当你处理大量数据或需要随着列表变化快速更新时,这尤其有用。

适用场景:此解决方案在你希望重复运行比较、处理非常大的数据集、自动化报告或进一步定制匹配项处理或呈现方式时尤为有效。尽管需要具备VBA知识,但你能获得完全自动化和控制的好处。一个缺点是必须在工作簿中启用宏,由于安全设置的原因,并非所有环境中都允许这样做。

如何运行宏以在Names-1中高亮显示如果出现在Names-2中的匹配项:

1. 点击开发工具 > Visual Basic以启动Microsoft Visual Basic for Applications窗口。在窗口中,点击插入 > 模块并将以下代码粘贴到新模块中:

Sub HighlightMatchingNames()
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim rng1 As Range
    Dim cell As Range
    Dim matchFound As Range
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set ws1 = Worksheets("Names-1")
    Set ws2 = Worksheets("Names-2")
    
    Set rng1 = ws1.Range("A2", ws1.Cells(ws1.Rows.Count, "A").End(xlUp))
    
    ws1.Range("A2:A" & ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row).Interior.ColorIndex = xlNone
    
    For Each cell In rng1
        Set matchFound = ws2.Range("A2:A" & ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row).Find( _
            What:=cell.Value, LookIn:=xlValues, LookAt:=xlWhole)
        
        If Not matchFound Is Nothing And cell.Value <> "" Then
            cell.Interior.Color = vbYellow
        End If
    Next cell
End Sub

2在VBA编辑器中,点击 Run button 按钮以运行代码。此宏将扫描“Names-1”工作表中A列的名称,如果某个名称也出现在“Names-2”工作表的A列中,它将在“Names-1”中用黄色填充颜色高亮显示该单元格。范围内的任何先前高亮显示都将在此新比较之前清除。

故障排除:如果没有单元格被高亮显示,请检查两个工作表是否确切命名为“Names-1”和“Names-2”,并且你的数据范围是否从A2开始。确保启用了宏,并且两个工作表都没有受到保护或筛选。这种方法可以轻松定制;例如,你可以更改高亮颜色,或将代码改编为将匹配结果复制到另一个工作表或列。

总结与建议:根据你的需求和技术熟练程度,你可以选择内置公式解决方案、宏自动化、智能加载项(如Kutools)或使用条件格式化进行直观可视化。在使用公式或VBA时,始终检查你的数据是否有额外空格或格式不一致的情况,这是常见的错误来源。在进行批量更改之前备份你的数据,尤其是在首次使用宏或加载项时。如果你遇到诸如公式未更新或匹配错误等问题,请检查相对/绝对范围错误并验证工作表名称。通过选择符合你工作流程的方法,你可以有效地在Excel中的不同工作表之间比较列表。


最佳 Office 办公效率工具

🤖 Kutools AI 助手:基于智能执行,彻底革新数据分析 生成代码创建自定义公式分析数据并生成图表调用 Kutools Functions
热门功能:查找、选中项的背景色或标记重复项|删除空行|合并列或单元格且不丢失数据|四舍五入(无公式)...
高级 LOOKUP多条件查找 (VLookup)多值查找 (VLookup)多表查找 (VLookup Across Multiple Sheets)模糊查找 (Fuzzy Lookup)...
高级下拉列表快速创建下拉列表依赖型下拉列表多选下拉列表...
列管理器添加指定数量的列移动列切换隐藏列的可见状态比较区域及列...
特色功能网格聚焦设计视图增强编辑栏工作簿 & 工作表管理器资源库(自动文本)|日期提取合并数据加密/解密单元格按列表发送电子邮件超级筛选特殊筛选(筛选粗体/倾斜/删除线等)...
热门15 大工具集12 款文本工具添加文本删除特定字符等)50+ 种图表 类型甘特图等)40+ 实用公式基于生日计算年龄等)19 款插入工具插入二维码按路径插入图片等)12 种转换工具小写金额转大写汇率转换等)7 款合并与分割工具高级合并行分割单元格等)...更多精彩等你发现
使用 Kutools,支持您的首选语言——包括英语、西班牙语、德语、法语、中文及40 多种其他语言!

用 Kutools for Excel 加速你的 Excel 技能,体验前所未有的高效办公。 Kutools for Excel 提供300 多项高级功能,助您提升效率,节省大量时间。点击此处,获取你最需要的功能...


Office Tab 为 Office 带来标签式界面,让你的工作更加轻松

  • 在 Word、Excel、PowerPoint 启用标签式编辑和阅读
  • 在同一窗口的新标签中打开和创建多个文档,无需新建窗口。
  • 办公效率提升50%,每天帮你减少上百次鼠标点击!