Přejít k hlavnímu obsahu

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

Autor: Xiaoyang Naposledy změněno: 2024-09-25

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

transponovat duplicitní řádky do sloupců


š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:

vba kód pro výběr datového rozsahu

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:

vba kód pro výběr jedné buňky pro vložení výsledku

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

vybraná data se převedou na sloupce

snímek obrazovky kutools pro excel ai

Odemkněte kouzlo Excelu s Kutools AI

  • Chytré provedení: Provádějte operace s buňkami, analyzujte data a vytvářejte grafy – to vše pomocí jednoduchých příkazů.
  • Vlastní vzorce: Vytvářejte přizpůsobené vzorce pro zefektivnění vašich pracovních postupů.
  • Kódování VBA: Napište a implementujte kód VBA bez námahy.
  • Výklad vzorce: Snadno porozumíte složitým vzorcům.
  • Překlad textu: Prolomte jazykové bariéry ve svých tabulkách.
Vylepšete své možnosti aplikace Excel pomocí nástrojů založených na umělé inteligenci. Stáhnout nyní a zažijte efektivitu jako nikdy předtím!

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ší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  vzývat Kutools Funkce...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více
Použijte Kutools ve vašem preferovaném jazyce – podporuje angličtinu, španělštinu, němčinu, francouzštinu, čínštinu a více než 40 dalších!

Vylepšete si své excelové dovednosti s Kutools for Excela zažijte efektivitu jako nikdy předtím. Kutools for Excel Nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...


Office Tab Přináší do Office rozhraní s kartami a výrazně vám usnadňuje 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!