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

Jak převést duplicitní řádky na sloupce v aplikaci Excel?

Předpokládejme, že máte v aplikaci Excel řadu dat, nyní byste chtěli převést duplicitní řádky do více sloupců, jak ukazuje následující snímek obrazovky, máte nějaké dobré nápady k vyřešení tohoto úkolu?

Transponujte duplicitní řádky do sloupců pomocí kódu VBA

doc-convert-duplicate-Rows-Columns-1


šipka modrá pravá bublina Transponujte duplicitní řádky do sloupců pomocí kódu VBA

Bohužel neexistuje žádný přímý způsob, jak s ním zacházet v aplikaci Excel, ale můžete jej vyřešit vytvořením kódu VBA, postupujte takto:

1. Podržte stisknuté tlačítko ALT + F11 klávesy pro otevření Okno Microsoft Visual Basic pro aplikace.

2, klikněte Vložit > Modula vložte následující kód do Okno modulu.

Kód VBA: Transponujte duplicitní řádky do více sloupců

Sub ConvertTable()
'Updateby Extendoffice
Dim xArr1 As Variant
Dim xArr2 As Variant
Dim InputRng As Range, OutRng As Range
Dim xRows As Long
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
xArr1 = InputRng.Value
t = UBound(xArr1, 2): xRows = 1
With CreateObject("Scripting.Dictionary")
    .CompareMode = 1
    For i = 2 To UBound(xArr1, 1)
        If Not .exists(xArr1(i, 1)) Then
            xRows = xRows + 1: .Item(xArr1(i, 1)) = VBA.Array(xRows, t)
            For ii = 1 To t
                xArr1(xRows, ii) = xArr1(i, ii)
            Next
        Else
            xArr2 = .Item(xArr1(i, 1))
            If UBound(xArr1, 2) < xArr2(1) + t - 1 Then
                ReDim Preserve xArr1(1 To UBound(xArr1, 1), 1 To xArr2(1) + t - 1)
                For ii = 2 To t
                    xArr1(1, xArr2(1) + ii - 1) = xArr1(1, ii)
                Next
            End If
            For ii = 2 To t
                xArr1(xArr2(0), xArr2(1) + ii - 1) = xArr1(i, ii)
            Next
            xArr2(1) = xArr2(1) + t - 1: .Item(xArr1(i, 1)) = xArr2
        End If
    Next
End With
OutRng.Resize(xRows, UBound(xArr1, 2)).Value = xArr1
End Sub

3. Pak stiskněte tlačítko F5 klíč ke spuštění tohoto kódu, vyberte rozsah dat, který chcete převést duplicitní řádky na více sloupců ve vyskakovacím dialogovém okně, viz screenshot:

doc-convert-duplicate-Rows-Columns-2

4, klikněte OK, a vyberte jednu buňku, kam chcete umístit výsledek do následujícího dialogového okna, viz screenshot:

doc-convert-duplicate-Rows-Columns-3

5. A pak klikněte na tlačítko OK tlačítko, vaše vybraná data byla převedena na následující:

doc-convert-duplicate-Rows-Columns-4


Související články:

Jak transponovat / převést sloupce a řádky do jednoho řádku?

Jak transponovat / převést sloupce a řádky do jednoho sloupce?

Jak transponovat / převést jeden sloupec na více sloupců v aplikaci Excel?


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

Kutools pro Excel vyřeší většinu vašich problémů a zvýší vaši produktivitu
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é funkce
    . Podporuje Office/Excel
    2007-2019 a 365
    . Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce
    30
    -denní zkušební verze zdarma. 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 tím
    50%
    a každý den vám sníží stovky kliknutí myší!
officetab dno

 

Komentáře (8)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Skvělý příklad – ušetřil mi spoustu času. Děkuji mnohokrát !!!
Tento komentář byl moderátorem webu minimalizován
Díky moc!

Bůh ti žehnej.
Tento komentář byl moderátorem webu minimalizován
Jsem neuvěřitelně šťastný, že se to povedlo. Jsi můj hrdina!!!!
Tento komentář byl moderátorem webu minimalizován
Opravdu skvělé. Ušetřil mi spoustu času
Tento komentář byl moderátorem webu minimalizován
Funguje pouze v případě, že existuje stejný počet duplikátů a zavolejte mu a. Nefunguje to, pokud mají různé počty duplikátů.
Tento komentář byl moderátorem webu minimalizován
To mi funguje dobře s různým počtem duplikátů Briane. Měl jsem problém pouze s tím, že se první duplikát na mém výstupu zobrazil dvakrát, ale to bylo velmi malé. Jen bych si přál, abych věděl, jak zkopírovat duplicitní výsledky do formátu odděleného čárkami namísto nových sloupců pro každý z nich.
Tento komentář byl moderátorem webu minimalizován
Ahoj! Může mi někdo pomoci...

Našel jsem tento kód, abych změnil řádky dat s jedinečným ID na jeden řádek na ID s více sloupci (min. sloupec 5 - včetně ID, maximum sloupců 25 - včetně ID). Poté odstraní všechny duplicitní řádky na základě jedinečného ID. Tento kód funguje, jediným problémem je, že nepřenáší dva sloupce dat.

Počet řádků dat na jedinečné ID se pohybuje od 1 do 6 (proto bych potřeboval minimálně 5 sloupců až maximálně 25 sloupců)

Existuje 20,000 5,000 řádků dat, ale mohu data rozdělit podle oddělení na minimálně XNUMX XNUMX řádků dat a spustit každé oddělení samostatně.

Díky za vaši pomoc!


Moje data vypadají nějak takto

ABCDE
ID POPIS STAV # DATUM
3 CPR US 567 6. 19. 2019
3 AET US 568 6. 19. 2019
4 CPR USA 6
4 AET
4 AED

atd.

Chci, aby to vypadalo takto

ABCDEFGHIJKLM ETC.....
ID POPIS STÁT # DATUM POPIS STÁT # DATUM POPIS STÁT # DATUM
3 CPR US 567 6. 19. 2019 AET US 568 6. 19. 2019
4 CPR US AET US AED US

Zde je kód, o kterém jsem zjistil, že tento druh funguje (pravděpodobně pro to, pro co byl napsán, přenáší pouze data ve sloupcích D a E a vynechává sloupce B a C... ponechává dva prázdné sloupce na sadu dat. To se mi líbí po přesunutí všech dat do jednoho sloupce na základě jedinečného ID odstraní duplikáty

Sub Addresses_To_Columns()

Dim lastRow As Long
Dim addressCount As Integer: addressCount = 0

lastRow = Range("A" & Rows.Count).End(xlUp).Row

Pro i = poslední řádek do 3 Krok -1
If Cells(i, 1).Value = Cells(i - 1, 1).Value Then
addressCount = addressCount + 1
Rozsah(Buňky(i - 1, 10), Buňky (i - 1, (počet adres * 5) + 10)) = Rozsah (Buňky (i, 4), Buňky (i, (Počet adres * 5) + 4)). Hodnota
Řádky(i).Odstranit
Jiný
addressCount = 0
End If
Příště já

End Sub
Tento komentář byl moderátorem webu minimalizován
Ahoj všichni

Zkoušel jsem tento kód a fungovalo to úspěšně.

Moje otázka zní: Jak bych mohl udělat totéž pomocí Ms Access pro větší data. Mohl bych získat dotaz funguje stejně nebo ne?

Děkuji mnohokrát .
Zatím zde nejsou žádné komentáře
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