Při analýze dat v Excelu můžete zjistit, že obsahují více duplicitních řádků. V takovém případě budete možná chtít řádky rychle sloučit. Tento příspěvek nabízí 2 rychlé způsoby, jak toho dosáhnout.
Mnoho uživatelů často potřebuje sloučit duplicitní řádky a sečíst odpovídající hodnoty v aplikaci Excel. Například mám řadu dat v listu aplikace Excel, který obsahuje spoustu duplicitních položek, jako je následující snímek obrazovky. Proto bych chtěl konsolidovat duplicitní řádky a sečíst odpovídající hodnoty v jiném sloupci. Bude to určitě problematické, pokud to udělám ručně. Proto využívám následující 2 způsoby, jak to realizovat.
Metoda 1: Použijte funkci „Konsolidovat“
- Nejprve klikněte na prázdnou buňku, kam chcete umístit sloučená a sečtená data.
- Poté přejděte na kartu „Data“ a klikněte na tlačítko „Konsolidovat“.
- V rozbalovacím dialogovém okně zkontrolujte, zda je v poli „Funkce“ vybrán „Součet“.
- Dále klikněte na tlačítko
.
- Později vyberte rozsah, který chcete sloučit, a klikněte
.
- Poté klikněte na tlačítko „Přidat“ v dialogu „Konsolidovat“.
- Následně zaškrtněte možnosti „Horní řádek“ a „Levý sloupec“.
- Nakonec klikněte na tlačítko „OK“.
- Najednou jsou řádky sloučeny, jak ukazuje následující snímek obrazovky.
Metoda 2: Použijte kód Excel VBA
- Na samém začátku vyberte požadovaný rozsah.
- Poté spusťte editor VBA podle „Jak spustit kód VBA v aplikaci Excel".
- Dále zkopírujte následující kód VBA do modulu.
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
- Poté spusťte toto makro stisknutím klávesy „F5“.
- Po dokončení makra se zobrazí nový sešit aplikace Excel, ve kterém uvidíte sloučené řádky a sečtená data, jako je obrázek níže.
Porovnání
| Výhody | Nevýhody | |
| Metoda 1 | Snadná obsluha | Nelze zpracovat dva sloupce, které nejsou vedle sebe |
| Metoda 2 | 1. Pohodlné pro opětovné použití | 1. Trochu obtížné pro začátečníky VBA |
| 2. Nezkazí původní list aplikace Excel tím, že vloží sloučená data do nového souboru | 2. Nelze zpracovat dva sloupce, které nejsou vedle sebe |
Při setkání s Excel Crash
Jak všichni víme, Excel může občas selhat. Za těchto okolností, v nejhorším případě, může být aktuální soubor Excel poškozen přímo. V té době vám nezbývá než se pokusit Obnova aplikace Excel. Vyžaduje, abyste požádali o pomoc odborníky, nebo využili specializovaného nástroje pro opravu aplikace Excel, jako je DataNumen Excel Repair.
Úvod autora:
Shirley Zhang je expertem na obnovu dat DataNumen, Inc., která je světovým lídrem v oblasti technologií pro obnovu dat, včetně zkažený SQL Server a výhledové softwarové produkty pro opravy. Pro více informací navštivte www.datanumen.com








