Note: The other languages of the website are Google-translated. Back to English

Jak rychle sloučit sousední řádky se stejnými daty v aplikaci Excel?

Předpokládejme, že máte list se stejnými daty v sousedních řádcích a nyní chcete sloučit stejné buňky do jedné buňky, aby data vypadala úhledně a krásně. Jak rychle a pohodlně sloučíte sousední řádky se stejnými daty? Dnes vám představím rychlý způsob řešení tohoto problému.


Sloučte sousední řádky stejných dat s kódem VBA

Stejná data můžete samozřejmě sloučit s Sloučit a vycentrovat příkaz, ale pokud je třeba sloučit stovky buněk, bude tato metoda časově náročná. Následující kód VBA vám tedy pomůže snadno sloučit stejná data.

1. Podržte ALT + F11 klíče a otevře se Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující makro do souboru Modulokno.

Sub MergeSameCell()
'Updateby Extendoffice
Dim Rng As Range, xCell As Range
Dim xRows As Integer
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xRows = WorkRng.Rows.Count
For Each Rng In WorkRng.Columns
    For i = 1 To xRows - 1
        For j = i + 1 To xRows
            If Rng.Cells(i, 1).Value <> Rng.Cells(j, 1).Value Then
                Exit For
            End If
        Next
        WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge
        i = j - 1
    Next
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

3. Poté stiskněte tlačítko F5 klíč ke spuštění tohoto kódu, na obrazovce se zobrazí dialog pro výběr rozsahu pro práci. Viz screenshot:

doc sloučit stejné buňky 2

4. Pak klikněte na tlačítko OK, stejná data ve sloupci A budou sloučena dohromady. Viz screenshot:

doc sloučit stejné buňky 1


Sloučte sousední řádky se stejnými daty pomocí Kutools pro Excel

S Sloučit stejné buňky užitečnost Kutools pro Excel, můžete jedním kliknutím rychle sloučit stejné hodnoty do více sloupců.

Kutools pro Excel : s více než 300 praktickými doplňky Excel, můžete si je vyzkoušet bez omezení do 30 dnů. 

Po instalaci Kutools pro Excel, můžete postupovat následovně:

1. Vyberte sloupce, které chcete sloučit sousední řádky se stejnými daty.

2, klikněte Kutools > Sloučit a rozdělit > Sloučit stejné buňky, viz screenshot:

3. A pak byla stejná data ve vybraných sloupcích sloučena do jedné buňky. Viz screenshot:

doc sloučit stejné buňky 4

Klikněte a stáhněte si Kutools pro Excel a bezplatnou zkušební verzi hned teď!

Chcete-li se o tom dozvědět více, navštivte toto Sloučit stejné buňky vlastnost.


Demo: Sloučit stejné buňky do jedné buňky nebo zrušit sloučení a vyplnit duplicitní hodnoty:

Kutools pro Excel: s více než 300 praktickými doplňky aplikace Excel, můžete vyzkoušet bez omezení do 30 dnů. Stáhněte si a vyzkoušejte zdarma hned teď!

Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (43)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Jak replikuji makro VBA ke sloučení sousedních buněk ve sloupcích místo řádků? dík
Tento komentář byl moderátorem webu minimalizován
Violeto, duplikuji řádek (níže). např. např. try try např. např. try try A změňte kód na toto: Next WorkRng.Parent.Range(Rng.Cells(1, i), Rng.Cells(1, j - 1)).Merge i = j - 1 It sloučil řádek výše na „např.“ a „zkusit“
Tento komentář byl moderátorem webu minimalizován
pro každého, kdo se toho stále snaží dosáhnout, myslím, že to mám Začátek kódu *********************************** ***** Sub MergeSameCell() 'Updateby 20131127 Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "MergeSimilar" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address , Typ:=8) Application.ScreenUpdating = False Application.DisplayAlerts = False 'xRows = WorkRng.Rows.Count xCols = WorkRng.Columns.Count 'For Every Rng In WorkRng.Columns ' For i = 1 To xRows - 1 ' For j = i + 1 To xRows ' If Rng.Cells(i, 1).Value Rng.Cells(j, 1).Value Then ' Exit For ' End If ' Next ' WorkRng.Parent.Range(Rng.Cells(i) , 1), Rng.Cells(j - 1, 1)).Merge ' i = j - 1 ' Next 'Next For Every Rng In WorkRng.Rows For i = 1 To xCols - 1 For j = i + 1 To xCols If Rng.Cells(1, i).Value Rng.Cells(1, j).Value Then Exit For End If Next WorkRng.Parent.Range(Rng.Cells(1, i), Rng.Cells(1, j - 1)).Sloučit i = j - 1 Další Další Aplikace.DisplayAlerts = True Appl ication.ScreenUpdating = True End Sub ****************************************** Konec kódu IE Jednoduše upravit kód pro výměnu všech odkazů na řádky za odkazy na sloupce
Tento komentář byl moderátorem webu minimalizován
Díky moc!!! pomohl mi v rozhodující chvíli
Tento komentář byl moderátorem webu minimalizován
To se mi už tolikrát hodilo :) Díky moc, ušetřilo mi to spoustu času. mám malou prosbu. Snažím se najít způsob, jak provést stejné sloučení, ale když jsou pod každou hodnotou prázdné buňky, sloučit každou buňku se všemi prázdnými buňkami níže. Jak mohu upravit makro? Děkuji předem
Tento komentář byl moderátorem webu minimalizován
Zkuste tento kód Sub MergeSameCell() Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:= 8) Application.ScreenUpdating = False Application.DisplayAlerts = False xRows = WorkRng.Rows.Count For Every Rng In WorkRng.Columns For i = 1 To xRows - 1 For j = i + 1 To xRows If Rng.Cells(i, 1) ).Value Rng.Cells(j, 1).Value Then Exit For End If Next If Not IsEmpty(Rng.Cells(i, 1).Value) Or Not IsEmpty(Rng.Cells(j - 1, 1).Value ) Potom WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge End If i = j - 1 Next Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Tento komentář byl moderátorem webu minimalizován
zkuste tento kód Sub MergeSameCell() Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:= 8) Application.ScreenUpdating = False Application.DisplayAlerts = False xRows = WorkRng.Rows.Count For Every Rng In WorkRng.Columns For i = 1 To xRows - 1 For j = i + 1 To xRows If Rng.Cells(i, 1) ).Value Rng.Cells(j, 1).Value Then Exit For End If Next If Not IsEmpty(Rng.Cells(i, 1).Value) Or Not IsEmpty(Rng.Cells(j - 1, 1).Value ) Potom WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge End If i = j - 1 Next Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Tento komentář byl moderátorem webu minimalizován
Pokud mám stejné jméno lež Raju 1000 Raju 2000 Monu 100 Monu 200 Jak pak mohu zadat marge jméno s částkou
Tento komentář byl moderátorem webu minimalizován
Dobrý den, při spuštění tohoto makra se na řádku WorkRng.Parent.Range(rng.Cells(i, 1), rng.Cells(j - 1, 1)) zobrazí "Chyba definovaná aplikací nebo objektem". nápady jak to opravit? S pozdravem Michal
Tento komentář byl moderátorem webu minimalizován
Dostávám stejnou chybu. už jsi na to přišel? pokud ano, jak se vám dařilo? dík
Tento komentář byl moderátorem webu minimalizován
Dostávám stejnou chybu
Tento komentář byl moderátorem webu minimalizován
Nechám zde skript upravený tak, aby sloučil buňky níže se stejnou hodnotou nebo prázdnou buňkou: Sub MergeSameCell() 'Updateby20131127 Dim Rng As Range, xCell As Range Dim xRows As Integer xTitleId = "KutoolsforExcel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) Application.ScreenUpdating = False Application.DisplayAlerts = False xRows = WorkRng.Rows.Count For Every Rng In WorkRng.Columns For i = 1 To xRows - 1 For j = i + 1 To xRows If Rng.Cells(j, 1).Value "" Then If Rng.Cells(i, 1).Value Rng.Cells(j, 1).Value Then Exit For End If End If Next WorkRng.Parent.Range(Rng.Cells(i, 1), Rng.Cells(j - 1, 1)).Merge i = j - 1 Next Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Tento komentář byl moderátorem webu minimalizován
Ahoj prosím o pomoc. Mám problém s kódem, s tímto řádkem. Něco špatně? Pokud Rng.Cells(j, 1).Hodnota "" Potom
Tento komentář byl moderátorem webu minimalizován
Ahoj. Měli byste mít: if Rng.Cells(j, 1).Value = "" pak...
Tento komentář byl moderátorem webu minimalizován
Sloučení pěkné. Vyžaduje to však specifikaci rozsahu při spouštění kódu. Chci specifikovat rozsah, tj. B1: B50 v kódu vba. A udělat to zarovnání vlevo nahoře, ale jak prosím pomozte.
Tento komentář byl moderátorem webu minimalizován
Při spuštění výše uvedeného kódu se zobrazí chyba kompilace: chyba syntaxe. V řádku, kde je použito "" a spodním řádku tohoto.
Tento komentář byl moderátorem webu minimalizován
I já se s tímto problémem u této linky setkávám. If Rng.Cells(j, 1).Value "" Then Může někdo pomoci?
Tento komentář byl moderátorem webu minimalizován
Dobrý den, Jak mohu nastavit rozsah automaticky bez zásahu uživatele
Tento komentář byl moderátorem webu minimalizován
Omlouvám se, ale mám někoho jiného, ​​kdo za mě udělá skript, nemám žádné znalosti, které by vám pomohly s úpravami.
Tento komentář byl moderátorem webu minimalizován
Ahoj, pane, . Zkouším vba kód, ale nefunguje to. Chybová zpráva pro.408. Zvláště, že komentář WorkRng.Parent. Rozsah(rng.Cells (i, 1), rng.Cells(j - 1, 1)).Sloučit. Prosím o zaslání řešení. Trávím spoustu času slučováním dokumentů. Většinou jsem sloučil tento formát buněk C20059290. Díky a pozdravy Purusothaman. C
Tento komentář byl moderátorem webu minimalizován
Vážený pane, . Používám kód vba pro list aplikace Excel pro sloučení buněk. Nefunguje to kvůli chybě 408. Zejména tento kód WorkRng.Parent. Rozsah(rng.Cells (i, 1), rng.Cells(j - 1, 1)).Sloučit. Dejte řešení. Díky a pozdravy Purusothaman
Tento komentář byl moderátorem webu minimalizován
Ahoj, může někdo instruovat s reverzním inženýrstvím - demarging buněk se stejnou hodnotou pro všechny.
Tento komentář byl moderátorem webu minimalizován
Ahoj, makro funguje, ale když teď chci filtrovat podle sloupce A, zobrazí se pouze první Informace ze sloupce B, které se vztahují na sloupec A. Když se podíváme na příklad uvedený v makru, pokud chci filtrovat v pondělí po provedení sloučení, zobrazí se pouze Nicol a nezobrazí se žádné informace od Lucy a Lily. Mohu přidat řádek, abych tomu zabránil?
Tento komentář byl moderátorem webu minimalizován
pokud opravdu chcete filtrovat, sloučení buněk vám nepomůže.
Tento komentář byl moderátorem webu minimalizován
In EXCEL INPUT NAME PRO1 PRO2 PRO3 A B C output A PRO1 A PRO2 A PRO3 B PRO1 B PRO2 B PRO3 C PRO1 C PRO2 C PRO3
Tento komentář byl moderátorem webu minimalizován
Bylo to opravdu užitečné a ve větší míře mi to ušetřilo čas
Tento komentář byl moderátorem webu minimalizován
Lze kód VBA upravit tak, aby se dosáhlo stejného pro slučování napříč sloupci (na rozdíl od řádků dolů, jak je uvedeno výše) a poté opakovat pro všechny řádky?
Tento komentář byl moderátorem webu minimalizován
Použijte výše uvedený kód a poté transponujte výsledek
Tento komentář byl moderátorem webu minimalizován
Velmi nápomocný !! Díky moc
Tento komentář byl moderátorem webu minimalizován
Oh, kámo, zachránil jsi mi spoustu dní. Děkuji!!!!
Tento komentář byl moderátorem webu minimalizován
Ve výše uvedeném řádku kódu VBA číslo 19 "i=j-1"
jak to vůbec ovlivní naši logiku? Odstranil jsem to a stále mohu získat stejný výsledek!
Nějaký konkrétní účel, proč je přítomen?
Tento komentář byl moderátorem webu minimalizován
Slouží k omezení hodnoty i na poslední řádek.
Prosím ignorujte tento příspěvek!
Zatím zde nejsou žádné komentáře
Načíst další
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL