在Excel中分析數據時,您可能會發現其中包含多個重複的行。 在這種情況下,也許您想快速合併行。 這個post 將提供2種快捷方式來獲取它。
許多用戶經常需要合併重複的行並在Excel中匯總相應的值。 例如,我在Excel工作表中有一系列數據,其中包含大量重複的條目,如以下屏幕截圖所示。 因此,我希望合併重複的行,並將相應的值累加到另一列中。 如果我手動執行此操作肯定會很麻煩。 因此,我採用以下兩種方式來實現它。
方法1:使用“合併”功能
- 首先,單擊一個空白單元格,您要在其中放置合併和求和的數據。
- 然後,轉到“數據”選項卡,然後單擊“合併”按鈕。
- 在彈出對話框中,確保在“功能”框中選擇“求和”。
- 接下來,點擊
按鈕。
- 稍後,選擇要合併的範圍,然後單擊
按鈕。
- 之後,在“合併”對話框中單擊“添加”按鈕。
- 隨後,檢查“頂行”和“左列”選項。
- 最後,單擊“確定”按鈕。
- 一次,將合併行,如以下屏幕截圖所示。
方法2:使用Excel 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








