跳至主要内容

在Excel中合并重复行并求和其值(简单技巧)

Author: Xiaoyang Last Modified: 2025-05-07

在Excel中,经常会遇到包含重复项的数据集。通常情况下,您可能会面对一个数据范围,其中的关键挑战是如何高效地合并这些重复行,同时将对应列中的值进行求和,如下图所示。在此背景下,我们将深入探讨几种实用的方法,帮助您整合重复数据并汇总其关联值,从而提升Excel工作簿的清晰度和实用性。


使用“合并计算”功能合并重复行并求和

“合并计算”是一个非常有用的工具,可以帮助我们在Excel中合并多个工作表或行。通过此功能,我们可以快速轻松地合并重复行,并将其对应的值进行求和。请按照以下步骤操作:

步骤 1:选择目标单元格

选择您希望合并后的数据出现的位置。

步骤 2:访问“合并计算”功能并设置合并

  1. 点击“数据”>“合并计算”,如下图所示:
    A screenshot of the Consolidate option in Excel ribbon
  2. 在“合并计算”对话框中:
    • (1.) 从“函数”下拉列表中选择“求和”;
    • (2.) 点击以选择要合并的范围,在“引用”框中完成选择;
    • (3.) 在“标签位置”选项中勾选“首行”和“最左列”;
    • (4.) 最后,点击“确定”按钮。
    • A screenshot of the options in the Consolidate dialog box, including Function, Reference, and Use labels in settings

结果:

Excel会将第一列中的任何重复项合并,并将其相邻列中的对应值求和,如下图所示:

A screenshot of Excel after consolidation, showing combined duplicate rows and summed values

注意:
  • 如果范围不包括标题行,请确保在“标签位置”选项中取消勾选“首行”。
  • 通过此功能,计算只能基于数据的第一列(即最左侧的一列)进行合并。

使用Kutools合并重复行并求和

如果您已安装“Kutools for Excel”,它的“高级合并行”功能可以轻松合并重复行,并提供对数据进行求和、计数、平均值或其他计算的选项。此外,该功能不仅限于单个关键列,还可以处理多个关键列,使复杂的数据合并任务变得更加简单。

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

安装“Kutools for Excel”后,选择数据范围,然后点击“Kutools”>“合并与拆分”>“高级合并行”。

在“高级合并行”对话框中,请设置以下操作:

  1. 点击您希望基于其合并重复项的列名,这里我将点击“产品”,然后从“操作”列的下拉列表中选择“主键”;
  2. 然后,选择您希望对其值进行求和的列名,并从“操作”列的下拉列表中选择“求和”;
  3. 至于其他列,您可以选择所需的运算,例如用特定分隔符合并值或执行某种计算;(如果只有两列,此步骤可以忽略)
  4. 最后,您可以预览合并结果,然后点击“确定”按钮。
  5. A screenshot of Kutools' Advanced Combine Rows dialog box, with options to combine duplicates and sum values

结果:

现在,关键列中的重复值已合并,其他对应值也已求和,如下图所示:

A screenshot showing the result of combining duplicate rows and summing values in Excel using Kutools

提示:
  • 通过这个有用的功能,您还可以根据重复单元格值合并行,如下图所示:
    An animated demonstration of combining rows based on duplicate values in Excel using Kutools
  • 此功能“支持撤销”,如果您想恢复原始数据,只需按“Ctrl + Z”。
  • 要应用此功能,请下载并安装Kutools for Excel

使用数据透视表合并重复行并求和

Excel中的数据透视表提供了一种动态的方式来重新排列、分组和汇总数据。当您面对一个充满重复项的数据集并且需要对相应值进行求和时,这一功能变得非常有用。

步骤 1:创建数据透视表

  1. 选择数据范围。然后,转到“插入”选项卡,点击“数据透视表”,如下图所示:
    A screenshot of selecting the Pivot Table option from the Insert tab in Excel
  2. 在弹出的对话框中,选择您希望放置数据透视表报告的位置,您可以将其放在新工作表或现有工作表中,根据需要选择。然后,点击“确定”。如下图所示:
    A screenshot of the Pivot Table dialog box, where you can choose to insert the table in a new or existing sheet
  3. 现在,数据透视表已插入到选定的目标单元格中。如下图所示:
    A screenshot showing a blank Pivot Table inserted in the Excel worksheet

步骤 2:配置数据透视表: 

  1. 在“数据透视表字段”窗格中,将包含重复项的字段拖动到“行”区域。这将对您的重复项进行分组。
  2. 接下来,将包含您希望求和的值的字段拖动到“值”区域。默认情况下,Excel会对这些值进行求和。请参见以下示例:
  3. An animated demonstration of configuring the Pivot Table fields to group duplicates and sum values in Excel

结果:

数据透视表现在显示了您的数据,其中重复项已合并且其值已求和,为分析提供了清晰简洁的视图。如下图所示:

A screenshot showing the result of combining duplicate rows and summing values using a Pivot Table in Excel


使用VBA代码合并重复行并求和

如果您对VBA代码感兴趣,在本节中,我们将提供一段VBA代码来合并重复行并对其他列中的对应值进行求和。请按照以下步骤操作:

步骤 1:打开VBA模块编辑器并复制代码

  1. 在Excel中按住“ALT + F11”键以打开“Microsoft Visual Basic for Applications”窗口。
  2. 点击“插入”>“模块”,并将以下代码粘贴到“模块”窗口中。
    VBA代码:合并重复行并求和
    Sub CombineDuplicateRowsAndSumForMultipleColumns()
    'Update by Extendoffice
        Dim SourceRange As Range, OutputRange As Range
        Dim Dict As Object
        Dim DataArray As Variant
        Dim i As Long, j As Long
        Dim Key As Variant
        Dim ColCount As Long
        Dim SumArray() As Variant
        Dim xArr As Variant
        Set SourceRange = Application.InputBox("Select the original range:", "Kutools for Excel", Type:=8)
        If SourceRange Is Nothing Then Exit Sub
        ColCount = SourceRange.Columns.Count
        Set OutputRange = Application.InputBox("Select a cell for output:", "Kutools for Excel", Type:=8)
        If OutputRange Is Nothing Then Exit Sub
        Set Dict = CreateObject("Scripting.Dictionary")
        DataArray = SourceRange.Value
        For i = 1 To UBound(DataArray, 1)
            Key = DataArray(i, 1)
            If Not Dict.Exists(Key) Then
                ReDim SumArray(1 To ColCount - 1)
                For j = 2 To ColCount
                    SumArray(j - 1) = DataArray(i, j)
                Next j
                Dict.Add Key, SumArray
            Else
                xArr = Dict(Key)
                For j = 2 To ColCount
                    xArr(j - 1) = xArr(j - 1) + DataArray(i, j)
                Next j
                Dict(Key) = xArr
            End If
        Next i
        OutputRange.Resize(Dict.Count, ColCount).ClearContents
        i = 1
        For Each Key In Dict.Keys
            OutputRange.Cells(i, 1).Value = Key
            For j = 1 To ColCount - 1
                OutputRange.Cells(i, j + 1).Value = Dict(Key)(j)
            Next j
            i = i + 1
        Next Key
        Set Dict = Nothing
        Set SourceRange = Nothing
        Set OutputRange = Nothing
    End Sub
    

步骤 2:执行代码

  1. 粘贴此代码后,请按“F5”键运行此代码。在弹出的对话框中,选择您希望合并和求和的数据范围。然后,点击“确定”。
    A screenshot of selecting the data range in the VBA input box to combine and sum duplicate rows
  2. 在下一个弹出对话框中,选择一个单元格作为输出结果的位置,然后点击“确定”。
    A screenshot of selecting the output cell in the VBA input box for combined and summed results

结果:

现在,重复行已合并,并且其对应的值已求和。如下图所示:

A screenshot of the results after running the VBA code to combine duplicate rows and sum their values


在Excel中合并和求和重复行可以简单而高效。从简单的“合并计算”功能、高级的Kutools、分析性的数据透视表或灵活的VBA编码中选择适合您技能和需求的解决方案。如果您有兴趣探索更多Excel技巧,我们的网站提供了数千个教程,请 点击这里访问它们。感谢您的阅读,我们期待未来为您提供更多有用的信息!


相关文章:

  • 基于重复项将多行合并为一行
  • 也许,您有一个数据范围,在产品名称列A中有某些重复项,现在您需要删除列A中的重复项,但合并列B中的对应值。如何在Excel中完成此任务?
  • Vlookup并返回无重复的多个值
  • 有时,您可能希望vlookup并一次性将多个匹配值返回到单个单元格中。但是,如果返回的单元格中存在一些重复值,如何在返回所有匹配值时忽略重复项并仅保留唯一值,如下图所示?
  • 合并具有相同ID/名称的行
  • 例如,您有一个如下图所示的表格,您需要合并具有订单ID的行,有什么想法吗?本文将为您介绍两种解决方案。