跳至主要内容

Power Query:在Excel中比较两个表格

Author: Xiaoyang Last Modified: 2025-07-31

在处理来自不同来源的数据、更新数据集或执行数据审计时,比较Excel中的两个表格是一项常见的需求。常见的目标包括识别两个表格中存在的记录、找出差异或指定哪些条目在任一列表中缺失。例如,您可能从同事或外部系统收到新数据,并需要将其与主列表进行比较以查找更新或差异。在下面的截图中,两个具有相同列结构的表格包含一些不同的和一些匹配的记录。有效突出显示这些差异或相似之处的能力对于数据验证和业务决策至关重要。

本教程详细解释了如何使用Power Query功能比较两个表格。此外,如果您正在寻找替代且实用的方法——包括公式、VBA代码或条件格式——请参阅目录中添加的解决方案。

在Power Query中比较两个表格

替代解决方案

two sample tables
arrow down
Compare two tables

在Power Query中比较两个表格

Power Query是Excel中用于重组和分析来自多个来源数据的有效工具。当您需要逐行比较两个数据表格时,Power Query可以自动化大部分过程,减少手动比较错误并节省时间。请按照以下逐步指南比较两个表格,其中包含了注意事项和实用技巧,以确保顺利的工作流程。

从两个表格创建查询

1. 选择要比较的第一个表格。在Excel 2019和Excel 365中,转到 数据 选项卡,然后点击 从表/区域。见下图截图。
提示:在开始之前,请确保您的表格已格式化为实际的Excel表格(Ctrl+T)。这有助于Power Query准确识别数据边界。

注意:在Excel 2016和Excel 2021中,菜单显示为 数据 > 从表。它们在功能上是等效的。
如果您的选择未格式化为表格,Excel可能会提示您创建一个。

 In Excel2016 and Excel2021, click Data > From Table

2. Power Query编辑器窗口打开。在这里,您可以根据需要查看或清理数据,但为了进行比较,您可以直接继续。点击关闭并加载 > 关闭并加载至以设置连接选项。

 click Close & Load > Close & Load To

3. 在导入数据对话框中,选择仅创建连接,然后点击确定。此选项允许您仅在Power Query内部使用数据,而不会立即将其加载回工作表中。见以下截图。

 select Only Create Connection option in the dialog box

4. 重复前面的步骤(1-3)以创建第二个表格的连接。现在,两个表格作为单独的连接出现在 查询与连接 窗格中。这为下一步的比较准备好了您的数据。
提示:仔细检查两个表格是否具有相同的列名和结构,以确保下一步的准确比较。

Repeat the same steps to create a connection for the second table

合并查询以比较两个表格

创建两个查询后,现在将它们合并以比较并揭示差异或逐行匹配。

5. 在Excel 2019和Excel 365中,选择数据选项卡,然后点击获取数据 > 合并查询 > 合并。这将启动合并过程。见截图。

 click Data > Get Data > Combine Queries > Merge

注意:对于Excel 2016和Excel 2021,通过数据 > 新查询 > 合并查询 > 合并访问此功能——过程保持不变。

 In Excel2016 and Excel2021, click Data > New Query > Combine Queries > Merge

6. 在合并对话框中:

  • 在两个下拉列表中选择第一和第二表格查询。
  • 选择要在每个表格中比较的列——按Ctrl键选择多列。通常,必须选择所有列才能进行真正的逐行比较。
  • 选择完全外部(来自两者的全部行)作为连接类型。此选项匹配所有行并突出显示缺失、多余或不同的记录。
  • 点击确定继续。
预防措施:确保所选的连接列具有匹配的数据类型(例如,不要混合文本和数字),否则连接结果可能不正确。

 

 set options one by one in the dialog box

7. 第二个表格的匹配数据出现了一个新列:

  • 点击新列标题旁边的小展开按钮(两个箭头)。
  • 选择展开,并选择要在结果中包含的列(通常是所有列)。
  • 按确定插入它们。
提示:展开所有列有助于更快地视觉检查行以查找匹配项和差异。

set options in the Expand pane

8. 第二个表格的数据现在显示在第一个表格的旁边,使得比较记录变得简单。要将此合并后的数据返回到Excel,请转到主页 > 关闭并加载 > 关闭并加载。这将在一个新的工作表中添加并排比较。

 click Home > Close & Load > Close & Load to load the data into a new worksheet

9. 在生成的工作表中,您可以轻松发现匹配项和不匹配项:相同的行并排显示,而差异则表现为空白或不同的单元格。这种布局使您可以高效定位两个表格之间的唯一、缺失或更改的记录。
故障排除提示:如果某些记录没有如预期那样匹配,请重新检查连接列是否具有一致的格式,并确保源数据中没有多余的空格或拼写错误。Power Query对细微差异非常敏感。

find the different rows of the two tables

总之,Power Query简化了在Excel中比较两个表格的复杂过程。一旦熟悉了这些步骤,就可以将该过程扩展到更复杂的场景,例如比较不同文件中的表格或执行多字段匹配。在处理频繁的数据更新时,将Power Query步骤保存为模板可以加快未来对类似结构的比较速度。如果在列选择或合并过程中遇到困难,请仔细检查列数据类型,并考虑提前删除任何重复行以避免匹配问题。

如果Power Query对于偶尔的任务来说过于复杂,或者您需要直接在工作表中突出显示差异或自动执行重复比较,也可以使用下面描述的替代解决方案。


Excel公式 - 使用公式比较两个表格

逐行比较两个表格以检查差异,一种强大的方法是结合使用Excel的TEXTJOIN函数和IF公式进行此检查。

假设您在单元格A2:C10中有Table1,在单元格F1:H10中有Table2,您想检查Table1中的哪些项目不在Table2中。

two sample tables

1. 在单元格I2中输入以下公式:

=IF(TEXTJOIN("|",,A2:C2)=TEXTJOIN("|",,F2:H2), "Match", "Mismatch")

2. 然后将公式拖动到其他单元格以获得结果。如果每个表格中的两行完全相同,则公式返回“匹配”;否则,返回“不匹配”。

这个公式的解释:
  • TEXTJOIN("|",,A2:C2) 将单元格A2到C2中的值组合成一个文本字符串,用竖线 | 符号分隔。
  • TEXTJOIN("|",,F2:H2) 对单元格F2到H2做同样的事情。
  • IF函数检查两个组合字符串是否完全相同。如果相同 → 返回“匹配”,如果不同 → 返回“不匹配”。

VBA代码 - 使用宏自动化比较两个表格

当您希望快速且直观地逐行比较两个表格而不让公式混乱您的工作表时,VBA方法是理想的。它特别适用于以干净和用户友好的方式审核或验证导入的数据。

1. 点击开发工具 > Visual Basic 打开VBA编辑器。

2. 在编辑器中,点击插入 > 模块并将以下代码粘贴到模块窗口中:

Sub CompareSelectedTablesRowByRow()
    Dim rng1 As Range, rng2 As Range
    Dim rowCount As Long, colCount As Long
    Dim r As Long, c As Long
    Dim xTitle As String
    xTitle = "Compare Tables - KutoolsforExcel"
    On Error Resume Next
    Set rng1 = Application.InputBox("Select the first table range:", xTitle, Type:=8)
    If rng1 Is Nothing Then Exit Sub
    Set rng2 = Application.InputBox("Select the second table range:", xTitle, Type:=8)
    If rng2 Is Nothing Then Exit Sub
    On Error GoTo 0
    If rng1.Rows.Count <> rng2.Rows.Count Or rng1.Columns.Count <> rng2.Columns.Count Then
        MsgBox "Selected ranges do not have the same size.", vbExclamation, xTitle
        Exit Sub
    End If
    rng1.Interior.ColorIndex = xlNone
    rng2.Interior.ColorIndex = xlNone
    For r = 1 To rng1.Rows.Count
        For c = 1 To rng1.Columns.Count
            If rng1.Cells(r, c).Value <> rng2.Cells(r, c).Value Then
                rng1.Cells(r, c).Interior.Color = vbYellow
                rng2.Cells(r, c).Interior.Color = vbYellow
            End If
        Next c
    Next r
    MsgBox "Comparison complete. Differences are highlighted in yellow.", vbInformation, xTitle
End Sub

3. 要运行代码,选择VBA窗口中的运行按钮,或按F5。当提示时,选择第一个表格范围,然后选择第二个表格范围。宏将逐行检查两个表格中的每个单元格,如果值不同,两个表格中的单元格都会被高亮显示为黄色。


条件格式 - 直观比较表格

条件格式提供了一种直观的方法来直接在工作表中突出显示差异或匹配项。当您需要识别重复或不同的值而不改变底层数据时,这种方法是合适的,并且在侧边显示较小的表格时特别有效。

1. 选择您的第一个表格范围(例如, A1:C10).
2. 转到 主页 > 条件格式 > 新建规则.
3. 点击使用公式确定要设置格式的单元格 并输入以下公式:=A2<>F2
4. 点击 格式,选择填充颜色,然后点击 确定 > 确定 以应用规则。

结果:高亮显示的单元格表示Table1中不存在于Table2中的值。如有需要,您可以重复对Table2 vs Table1的过程。

a screenshot of kutools for excel ai

使用 Kutools AI 解锁 Excel 魔法

  • 智能执行:执行单元格操作、分析数据和创建图表——所有这些都由简单命令驱动。
  • 自定义公式:生成量身定制的公式,优化您的工作流程。
  • VBA 编码:轻松编写和实现 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%,每天帮你减少上百次鼠标点击!