在 Excel 中分析数据时,您可能会发现它包含多个重复行。 在这种情况下,您可能希望快速合并行。 这个ost 将提供 2 种快速获取方式。
许多用户经常需要合并重复的行并对 Excel 中的相应值求和。 例如,我在 Excel 工作表中有一系列数据,其中包含大量重复条目,如下面的屏幕截图所示。 因此,我希望合并重复的行并对另一列中的相应值求和。 如果我手动这样做肯定会很麻烦。 因此,我利用以下两种方式来实现它。
方法一:使用“合并”功能
- 首先,单击要放置合并和求和数据的空白单元格。
- 然后,转到“数据”选项卡并单击“合并”按钮。
- 在弹出的对话框中,确保在“Function”框中选择了“Sum”。
- 接下来,点击
按钮。
- 稍后,选择要合并的范围并单击
按钮。
- 之后,单击“合并”对话框中的“添加”按钮。
- 随后,选中“顶行”和“左列”选项。
- 最后,单击“确定”按钮。
- 立即合并行,如以下屏幕截图所示。
方法 2:使用 Excel VBA 代码
- 一开始,选择你想要的范围。
- 然后,根据“触发VBA编辑器如何在 Excel 中运行 VBA 代码“。
- 接下来,将以下 VBA 代码复制到模块中。
Sub MergeRowsSumValues()
Dim objSelectedRange As Excel.Range
Dim varAddressArray As Variant
Dim nStartRow, nEndRow As Integer
Dim strFirstColumn, strSecondColumn As String
Dim objDictionary As Object
Dim nRow As Integer
Dim objNewWorkbook As Excel.Workbook
Dim objNewWorksheet As Excel.Worksheet
Dim varItems, varValues As Variant
On Error GoTo ErrorHandler
Set objSelectedRange = Excel.Application.Selection
varAddressArray = Split(objSelectedRange.Address(, False), ":")
nStartRow = Split(varAddressArray(0), "$")(1)
strFirstColumn = Split(varAddressArray(0), "$")(0)
nEndRow = Split(varAddressArray(1), "$")(1)
strSecondColumn = Split(varAddressArray(1), "$")(0)
Set objDictionary = CreateObject("Scripting.Dictionary")
For nRow = nStartRow To nEndRow
strItem = ActiveSheet.Range(strFirstColumn & nRow).Value
strValue = ActiveSheet.Range(strSecondColumn & nRow).Value
If objDictionary.Exists(strItem) = False Then
objDictionary.Add strItem, strValue
Else
objDictionary.Item(strItem) = objDictionary.Item(strItem) + strValue
End If
Next
Set objNewWorkbook = Excel.Application.Workbooks.Add
Set objNewWorksheet = objNewWorkbook.Sheets(1)
varItems = objDictionary.keys
varValues = objDictionary.items
nRow = 0
For i = LBound(varItems) To UBound(varItems)
nRow = nRow + 1
With objNewWorksheet
.Cells(nRow, 1) = varItems(i)
.Cells(nRow, 2) = varValues(i)
End With
Next
objNewWorksheet.Columns("A:B").AutoFit
ErrorHandler:
Exit sub
End Sub
- 之后,按“F5”立即运行此宏。
- 宏完成后,将出现一个新的 Excel 工作簿,您可以在其中看到合并的行和汇总的数据,如下图所示。
对比
| 优势 | 缺点 | |
| 方法1 | 操作简便 | 无法处理不相邻的两列 |
| 方法2 | 1.方便重复使用 | 1.对VBA新手来说有点难懂 |
| 2.不会弄乱原来的Excel工作表,因为它将合并的数据放在新文件中 | 2.不能处理不相邻的两列 |
当遇到 Excel 崩溃时
众所周知,Excel 有时会崩溃。 在这种情况下,最坏的情况下,当前的 Excel 文件可能会被直接损坏。 那时,你别无选择,只能尝试 Excel恢复. 它要求您要么向专业人士寻求帮助,要么使用专门的 Excel 修复工具,例如 DataNumen Excel Repair.
作者简介:
Shirley Zhang 是一位数据恢复专家 DataNumen, Inc.,它是数据恢复技术领域的世界领先者,包括 腐败 SQL Server 和 outlook 修复软件产品。 欲了解更多信息,请访问 datanumen.com








