2種在Excel中合併行的簡便方法

立即分享:

在Excel中分析數據時,您可能會發現其中包含多個重複的行。 在這種情況下,也許您想快速合併行。 這個post 將提供2種快捷方式來獲取它。

許多用戶經常需要合併重複的行並在Excel中匯總相應的值。 例如,我在Excel工作表中有一系列數據,其中包含大量重複的條目,如以下屏幕截圖所示。 因此,我希望合併重複的行,並將相應的值累加到另一列中。 如果我手動執行此操作肯定會很麻煩。 因此,我採用以下兩種方式來實現它。Excel工作表樣本

方法1:使用“合併”功能

  1. 首先,單擊一個空白單元格,您要在其中放置合併和求和的數據。
  2. 然後,轉到“數據”選項卡,然後單擊“合併”按鈕。點擊“合併”按鈕
  3. 在彈出對話框中,確保在“功能”框中選擇“求和”。
  4. 接下來,點擊 參考按鈕 按鈕。選擇“求和”功能
  5. 稍後,選擇要合併的範圍,然後單擊 參考按鈕 按鈕。選擇範圍
  6. 之後,在“合併”對話框中單擊“添加”按鈕。添加參考範圍
  7. 隨後,檢查“頂行”和“左列”選項。在“頂行”和“左列”中使用標籤
  8. 最後,單擊“確定”按鈕。
  9. 一次,將合併行,如以下屏幕截圖所示。合併數據

方法2:使用Excel VBA代碼

  1. 在開始時,選擇所需的範圍。選擇範圍
  2. 然後,根據“如何在Excel中運行VBA代碼“。
  3. 接下來,將以下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

VBA代碼-合併行

  1. 之後,按“ F5”立即運行此宏。
  2. 宏完成後,將顯示一個新的Excel工作簿,您可以在其中看到合併的行和匯總的數據,如下圖所示。新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

立即分享:

評論被關閉。