Tip: andere talen zijn Google-Vertaald. Je kunt het English versie van deze link.
Log in
x
or
x
x
Registreren
x

or

Hoe dubbele rijen naar kolommen in Excel transponeren?

Stel dat je een gegevensbereik in Excel hebt, nu, zou je de dubbele rijen willen transponeren naar meerdere kolommen zoals het volgende screenshot getoond, heb je goede ideeën om deze taak op te lossen?

Transposeer dubbele rijen naar kolommen met VBA-code

doc-convert-duplicaat-rijen-kolommen-1


Verander een kolom of rij naar een bereik of omgekeerd:
Doordat uw bureau Kutools for Excel's Transformeer bereik functie, kunt u snel een cellenbereik naar een enkele rij of kolom converteren, u kunt ook een enkele rij of kolom naar een celbereik converteren. Lees meer over deze functie ...
doc transponeer bereik

pijl blauwe rechterbel Transposeer dubbele rijen naar kolommen met VBA-code


Helaas is er geen directe manier om het in Excel te behandelen, maar je kunt een VBA-code maken om het op te lossen, doe dit als volgt:

1. Houd de toets ingedrukt ALT + F11 toetsen om de te openen Microsoft Visual Basic for Applications-venster.

2. Klikken bijvoegsel > moduleen plak de volgende code in de Module venster.

VBA-code: dupliceer dubbele rijen naar meerdere kolommen

Sub ConvertTable()
'Update 20150113
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. Druk vervolgens op F5 sleutel om deze code uit te voeren, selecteer het gegevensbereik dat u de dubbele rijen naar meerdere kolommen in het uitgeklapte dialoogvenster wilt converteren, zie screenshot:

doc-convert-duplicaat-rijen-kolommen-2

4. Klikken OKen selecteer een cel waarin u het resultaat in het volgende dialoogvenster wilt plaatsen, zie screenshot:

doc-convert-duplicaat-rijen-kolommen-3

5. En klik vervolgens op OK knop, uw geselecteerde gegevens zijn geconverteerd naar:

doc-convert-duplicaat-rijen-kolommen-4


Gerelateerde artikelen:

Hoe kolommen en rijen transponeren / converteren naar één rij?

Hoe kolommen en rijen transponeren / converteren naar één kolom?

Hoe een enkele kolom naar meerdere kolommen in Excel transponeren / converteren?


Kutools voor Excel - De beste Office-productiviteitstool Verhoog uw productiviteit met 80%

  • Super Formula Bar (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken op gefilterd bereik...
  • Cellen / rijen / kolommen samenvoegen en gegevens bewaren; Inhoud gesplitste cellen; Combineer dubbele rijen en som / gemiddelde... voorkomen dubbele cellen; Ranges vergelijken...
  • Selecteer Dupliceren of Uniek rijen; Selecteer Lege rijen (alle cellen zijn leeg); Super Find en Fuzzy Find in veel werkboeken; Willekeurig selecteren ...
  • Exacte kopie Meerdere cellen zonder formule-referentie te wijzigen; Automatisch referenties maken naar meerdere vellen; Voeg kogels toe, Selectievakjes en meer ...
  • Favoriete en snel formules invoegen, Bereiken, grafieken en afbeeldingen; Coderen van cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • extract Text, Tekst toevoegen, verwijderen op positie, Verwijder de spatie; Subtotalen voor paging maken en afdrukken; Converteren tussen cellen Inhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerde sortering per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Werkt met Office 2007-2019 en 365 en ondersteunt alle talen. Het is eenvoudig te implementeren in uw bedrijf. Volledige functionaliteit 60-daagse gratis proefversie.
kte-tab 201905

Tabblad Office Brengt interface met tabbladen naar Office en maakt uw werk veel eenvoudiger

  • Bewerken en lezen met tabbladen inschakelen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en verlaagt dagelijks honderden muisklikken voor u!
Officetab onderaan

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    arielle · 2 months ago
    Hello! Can anyone help me...

    I found this code to turn rows of data with a unique ID into a single row per ID with multiple columns (min column 5 - including ID, maximum columns 25 - including ID). Then it deletes all of the duplicate rows based on unique ID. This code sort of works, the only problem is it isn't transferring two columns of data.

    The number of rows of data per unique ID varies from 1 to 6 (therefore I would need minimum 5 columns to maximum 25 columns)

    There are 20,000 rows of data but I can break the data up by department for a minimum of 5,000 rows of data and run each department separately.

    Thanks for your help!


    My data looks something like this

    A B C D E
    ID DESCRIPTION STATE # DATE
    3 CPR US 567 6/19/2019
    3 AET US 568 6/19/2019
    4 CPR US 6/19/2019
    4 AET
    4 AED

    etc.

    I want it to look like this

    A B C D E F G H I J K L M ETC.....
    ID DESCRIPTION STATE # DATE DESCRIPTION STATE # DATE DESCRIPTION STATE # DATE
    3 CPR US 567 6/19/2019 AET US 568 6/19/2019
    4 CPR US AET US AED US

    Here is the code I found that sort of works (probably for what it was written for, it carries over only the data in columns D and E and omits column B & C... leaving two blank columns per data set. I like that it deletes the duplicates after moving all of the data to a single column based on unique ID

    Sub Addresses_To_Columns()

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

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

    For i = lastRow To 3 Step -1
    If Cells(i, 1).Value = Cells(i - 1, 1).Value Then
    addressCount = addressCount + 1
    Range(Cells(i - 1, 10), Cells(i - 1, (addressCount * 5) + 10)) = Range(Cells(i, 4), Cells(i, (addressCount * 5) + 4)).Value
    Rows(i).Delete
    Else
    addressCount = 0
    End If
    Next i

    End Sub
  • To post as a guest, your comment is unpublished.
    Joe · 11 months ago
    This works fine for me with different number of duplicates Brian. I only had a problem with the first duplicate showing twice on my output, but that was very minor. I only wish I knew how to make it copy the duplicate results into a comma delimited format instead of new columns for each one.
  • To post as a guest, your comment is unpublished.
    Brian · 1 years ago
    Only works if there's the same number of duplicates and call him a. It doesn't work at if have different numbers of duplicates.
  • To post as a guest, your comment is unpublished.
    Alex · 2 years ago
    Really great. Saved me a lot of time
  • To post as a guest, your comment is unpublished.
    Jon · 3 years ago
    I am so incredibly happy this worked. You are my hero!!!!
  • To post as a guest, your comment is unpublished.
    Santosh · 4 years ago
    Awesome Example - saved me a lot of time.
    Thank You so much !!!