Analizując dane w programie Excel, może się okazać, że zawiera wiele zduplikowanych wierszy. W takim przypadku być może będziesz chciał szybko skonsolidować wiersze. To post zaoferuje 2 szybkie sposoby, aby to zdobyć.
Wielu użytkowników często musi scalać zduplikowane wiersze i zsumować odpowiednie wartości w programie Excel. Na przykład mam zakres danych w arkuszu programu Excel, który zawiera wiele zduplikowanych wpisów, takich jak poniższy zrzut ekranu. Dlatego chcę skonsolidować zduplikowane wiersze i zsumować odpowiadające im wartości w innej kolumnie. Z pewnością będzie to kłopotliwe, jeśli zrobię to ręcznie. Dlatego wykorzystuję następujące 2 sposoby, aby to zrealizować.
Metoda 1: Użyj funkcji „Konsoliduj”
- Po pierwsze, kliknij pustą komórkę, w której chcesz umieścić scalone i zsumowane dane.
- Następnie przejdź do zakładki „Dane” i kliknij przycisk „Konsoliduj”.
- W wyskakującym oknie dialogowym upewnij się, że w polu „Funkcja” wybrano opcję „Suma”.
- Następnie kliknij przycisk
.
- Później wybierz zakres, który chcesz skonsolidować i kliknij
.
- Następnie kliknij przycisk „Dodaj” w oknie dialogowym „Konsolidacja”.
- Następnie zaznacz opcję „Górny rząd” i „Lewa kolumna”.
- Na koniec kliknij przycisk „OK”.
- Od razu wiersze są konsolidowane, jak pokazano na poniższym zrzucie ekranu.
Metoda 2: Użyj kodu VBA programu Excel
- Na samym początku wybierz zakres, który chcesz.
- Następnie uruchom edytor VBA zgodnie z „Jak uruchomić kod VBA w programie Excel".
- Następnie skopiuj następujący kod VBA do modułu.
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
- Następnie naciśnij „F5”, aby teraz uruchomić to makro.
- Po zakończeniu działania makra pojawi się nowy skoroszyt programu Excel, w którym można zobaczyć scalone wiersze i zsumowane dane, jak na poniższym obrazku.
Porównanie
| Zalety | Wady | |
| Metoda 1 | Łatwy w obsłudze | Nie można przetworzyć dwóch kolumn, które nie znajdują się obok siebie |
| Metoda 2 | 1. Wygodny do ponownego użycia | 1. Trochę trudne do zrozumienia dla początkujących VBA |
| 2. Nie zepsuje oryginalnego arkusza Excela, ponieważ umieści scalone dane w nowym pliku | 2. Nie można przetworzyć dwóch kolumn, które nie znajdują się obok siebie |
Podczas napotkania awarii programu Excel
Jak wszyscy wiemy, od czasu do czasu program Excel może ulec awarii. W takiej sytuacji w najgorszym przypadku bieżący plik programu Excel może zostać bezpośrednio uszkodzony. W tym czasie nie masz innego wyjścia, jak tylko spróbować Odzyskiwanie programu Excel. Wymaga to poproszenia profesjonalistów o pomoc lub skorzystania ze specjalistycznego narzędzia do naprawy programu Excel, takiego jak DataNumen Excel Repair.
Wprowadzenie autora:
Shirley Zhang jest ekspertem w dziedzinie odzyskiwania danych w DataNumen, Inc., która jest światowym liderem w technologiach odzyskiwania danych, w tym skorumpowany SQL Server i oprogramowanie do naprawy programu Outlook. po więcej informacji odwiedź www.datanumen.com








