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

 Hoe cellen in een kolom transponeren op basis van unieke waarden in een andere kolom?

Stel dat u een gegevensbereik heeft dat twee kolommen bevat, nu wilt u cellen in één kolom transponeren naar horizontale rijen op basis van unieke waarden in een andere kolom om het volgende resultaat te krijgen. Heeft u goede ideeën om dit probleem in Excel op te lossen?

doc transponeren unieke waarden 1

Transponeer cellen in één kolom op basis van unieke waarden met formules

Transponeer cellen in één kolom op basis van unieke waarden met VBA-code

Transponeer cellen in één kolom op basis van unieke waarden met Kutools voor Excel


Met de volgende matrixformules kunt u de unieke waarden extraheren en de bijbehorende gegevens in horizontale rijen transponeren, doe dit als volgt:

1. Voer deze matrixformule in: = INDEX ($ A $ 2: $ A $ 16, MATCH (0, AANTAL.ALS ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) in een lege cel, bijvoorbeeld D2, en druk op Shift + Ctrl + Enter toetsen samen om het juiste resultaat te krijgen, zie screenshot:

doc transponeren unieke waarden 2

Opmerking:: In de bovenstaande formule, A2: A16 is de kolom waarvan u de unieke waarden wilt weergeven, en D1 is de cel boven deze formulecel.

2. Sleep vervolgens de vulgreep naar de cellen om alle unieke waarden te extraheren, zie screenshot:

doc transponeren unieke waarden 3

3. En ga dan verder met het invoeren van deze formule in cel E2: =IFERROR(INDEX($B$2:$B$16, MATCH(0, COUNTIF($D2:D2,$B$2:$B$16)+IF($A$2:$A$16<>$D2, 1, 0), 0)), 0), en vergeet niet om op te drukken Shift + Ctrl + Enter toetsen om het resultaat te krijgen, zie screenshot:

doc transponeren unieke waarden 4

Opmerking:: In bovenstaande formule: B2: B16 zijn de kolomgegevens die u wilt transponeren, A2: A16 is de kolom waarop u de waarden wilt transponeren op basis van, en D2 bevat de unieke waarde die u in stap 1 heeft geëxtraheerd.

4. Sleep vervolgens de vulgreep naar rechts van de cellen waarvan u de getransponeerde gegevens wilt weergeven totdat 0 wordt weergegeven, zie screenshot:

doc transponeren unieke waarden 5

5. En ga vervolgens door met het slepen van de vulgreep naar het celbereik om de getransponeerde gegevens te krijgen zoals in het volgende screenshot:

doc transponeren unieke waarden 6


Misschien zijn de formules ingewikkeld om te begrijpen, hier kunt u de volgende VBA-code uitvoeren om het gewenste resultaat te krijgen dat u nodig hebt.

1. Houd de ALT + F11 toetsen om de te openen Microsoft Visual Basic voor toepassingen venster.

2. Klikken Invoegen > Moduleen plak de volgende code in het Module Venster.

VBA-code: transponeer cellen in één kolom op basis van unieke waarden in een andere kolom:

Sub transposeunique()
'updateby Extendoffice
    Dim xLRow As Long
    Dim i As Long
    Dim xCrit As String
    Dim xCol  As New Collection
    Dim xRg As Range
    Dim xOutRg As Range
    Dim xTxt As String
    Dim xCount As Long
    Dim xVRg As Range
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("please select data range(only two columns):", "Kutools for Excel", xTxt, , , , , 8)
    Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
    If xRg Is Nothing Then Exit Sub
    If (xRg.Columns.Count <> 2) Or _
       (xRg.Areas.Count > 1) Then
        MsgBox "the used range is only one area with two columns ", , "Kutools for Excel"
        Exit Sub
    End If
    Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8)
    If xOutRg Is Nothing Then Exit Sub
    Set xOutRg = xOutRg.Range(1)
    xLRow = xRg.Rows.Count
    For i = 2 To xLRow
        xCol.Add xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value
    Next
    Application.ScreenUpdating = False
    For i = 1 To xCol.Count
        xCrit = xCol.Item(i)
        xOutRg.Offset(i, 0) = xCrit
        xRg.AutoFilter Field:=1, Criteria1:=xCrit
        Set xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible)
        If xVRg.Count > xCount Then xCount = xVRg.Count
        xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVisible).Copy
        xOutRg.Offset(i, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
        Application.CutCopyMode = False
    Next
    xOutRg = xRg.Cells(1, 1)
    xOutRg.Offset(0, 1).Resize(1, xCount) = xRg.Cells(1, 2)
    xRg.Rows(1).Copy
    xOutRg.Resize(1, xCount + 1).PasteSpecial Paste:=xlPasteFormats
    xRg.AutoFilter
    Application.ScreenUpdating = True
End Sub

3. Druk vervolgens op F5 toets om deze code uit te voeren, en er verschijnt een promptvenster om u eraan te herinneren het gegevensbereik te selecteren dat u wilt gebruiken, zie screenshot:

doc transponeren unieke waarden 7

4. En klik vervolgens op OK knop, verschijnt er een ander promptvenster om u eraan te herinneren een cel te selecteren om het resultaat te plaatsen, zie screenshot:

doc transponeren unieke waarden 8

6. Klikken OK knop, en de gegevens in kolom B zijn getransponeerd op basis van unieke waarden in kolom A, zie screenshot:

doc transponeren unieke waarden 9


Als je Kutools for Excel, het combineren van de Geavanceerd Combineer rijen en Gespleten cellen hulpprogramma's, kunt u deze taak snel voltooien zonder formules of code.

Kutools for Excel : met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen.

Na het installeren van Kutools for Excelgaat u als volgt te werk:

1. Selecteer het gegevensbereik dat u wilt gebruiken. (Als u de originele gegevens wilt behouden, kopieer en plak de gegevens dan eerst op een andere locatie.)

2. Dan klikken Kutools > Samenvoegen en splitsen > Geavanceerd Combineer rijen, zie screenshot:

3. In de Combineer rijen op basis van kolom dialoogvenster, voer dan de volgende bewerkingen uit:

(1.) Klik op de kolomnaam waarop u gegevens wilt transponeren op basis van en selecteer Hoofdsleutel;

(2.) Klik op een andere kolom die u wilt transponeren, en klik Combineren Kies vervolgens een scheidingsteken om de gecombineerde gegevens te scheiden, zoals spatie, komma, puntkomma.

doc transponeren unieke waarden 11

4. Dan klikken Ok knop, zijn de gegevens in kolom B gecombineerd in één cel op basis van kolom A, zie screenshot:

doc transponeren unieke waarden 12

5. En selecteer vervolgens de gecombineerde cellen en klik Kutools > Samenvoegen en splitsen > Gespleten cellen, zie screenshot:

6. In de Gespleten cellen dialoogvenster, selecteer Splitsen in kolommen onder de Type optie en kies vervolgens het scheidingsteken dat uw gecombineerde gegevens scheidt, zie screenshot:

doc transpose unieke waarden 14 14

7. Dan klikken Ok knop en selecteer een cel om het gesplitste resultaat in het uitgeklapte dialoogvenster te plaatsen, zie screenshot:

doc transponeren unieke waarden 15

8. Klikken OK, en je krijgt het resultaat zoals je nodig hebt. Zie screenshot:

doc transponeren unieke waarden 16

Download en gratis proef Kutools voor Excel nu!


Kutools for Excel: met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen. Download en probeer nu gratis!

De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren 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...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, 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 vermindert elke dag honderden muisklikken!
officetab onderkant
Comments (56)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Hoe zou ik in de tegenovergestelde richting gaan? Van meerdere kolommen naar één kolom? Bij voorbaat dank! Timo
Tim
Deze opmerking is gemaakt door de moderator op de site
Dit was fantastisch. Ik had een Excel met ongeveer 2000 unieke waarden in rij A en had deze oefening niet kunnen doen zonder jouw hulp. Heel veel dank.
Piyush
Deze opmerking is gemaakt door de moderator op de site
Eerste stap zelf mislukt =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) geeft Value Not Available-fout
Pradeep
Deze opmerking is gemaakt door de moderator op de site
Ik wil juist het tegenovergestelde doen. Alsof ik het eindresultaat al heb en de eerste stap wil zetten.
Sanjeev Chidambaram
Deze opmerking is gemaakt door de moderator op de site
Ik ben op zoek naar hetzelfde
Chris
Deze opmerking is gemaakt door de moderator op de site
Heb je een oplossing gevonden voor het tegenovergestelde scenario? Bedankt!
Juan Carlos
Deze opmerking is gemaakt door de moderator op de site
Ik wil ook het tegenovergestelde doen. Hebben jullie een oplossing heren?
Prial
Deze opmerking is gemaakt door de moderator op de site
Hallo, jongens,
Om het tegenovergestelde resultaat te krijgen op basis van het voorbeeld van dit artikel, kunt u de volgende VBA-code toepassen: (Opmerking: sluit de koprij uit als u het gegevensbereik selecteert dat u wilt transponeren)

SubtransponerenUnique_2()
Dim xLRow, xLCcount zo lang
Dim xRg als bereik
Dim xOutRg As Range
Dim xObjRRg als bereik
Dim xTxt als string
Dim x Tel zo lang
Dim xVRg als bereik
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox ("selecteer gegevensbereik:", "Kutools for Excel", xTxt, , , , , 8)
Stel xRg = Application.Intersect (xRg, xRg.Worksheet.UsedRange) in
Als xRg niets is, sluit dan Sub af
Als (xRg.Rows.count < 2) Of _
(xRg.Areas.count > 1) Dan
MsgBox "Ongeldige selectie", , "Kutools voor Excel"
Exit Sub
End If
Set xOutRg = Application.InputBox ("selecteer het uitvoerbereik (geef één cel op):", "Kutools for Excel", xTxt, , , , , 8)
Als xOutRg niets is, sluit dan Sub af
Application.ScreenUpdating = False
xLCount = xRg.Kolommen.telling
Voor xLRow = 1 tot xRg.Rows.count
Stel xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Kopie
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
Bereik(Cellen(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Waarde = xRg.Cells(xLRow, 1).Waarde
Stel xOutRg = xOutRg.Offset (RowOffset:=xObjRRg.count) in
volgende
Application.ScreenUpdating = True
End Sub
skyyang
Deze opmerking is gemaakt door de moderator op de site
Hoe de transponering te doen als de B-kolom geen unieke waarden heeft, maar die waarden toch nodig heeft?
KTE 100
KTE 100
Ervan uitgaande dat het twee verschillende transacties zijn
Didin Mathew
Deze opmerking is gemaakt door de moderator op de site
Hallo, Didin,

Kunt u uw probleem duidelijker of gedetailleerder geven?
U kunt een voorbeeldschermafbeelding voor uw probleem invoegen.
Dank je!
skyyang
Deze opmerking is gemaakt door de moderator op de site
Hallo daar,
Kunt u mij alstublieft helpen met onderstaande eis.
Product ----- bestelling
KTE ------ 100 KTE ------ 200 KTO ------ 300 KTO ------ 300
verwachte resultaten
Product ----- bestelling ----- bestelling ------ bestelling
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







Bharath
Deze opmerking is gemaakt door de moderator op de site
Ik heb hetzelfde nodig. Ik wil 100 twee keer weergeven als er in de gegevens is
Joyal Isaak
Deze opmerking is gemaakt door de moderator op de site
Kun je daar een formule voor voorstellen?
Joyal Isaak
Deze opmerking is gemaakt door de moderator op de site
Heb je ooit een reactie/oplossing gekregen voor deze uitdaging? Ik heb dezelfde.
Alicia
Deze opmerking is gemaakt door de moderator op de site
Is er een manier om dit omgekeerd te doen? Dwz gegevens in rijen van verschillende lengte en dus sorteren in twee kolommen? Zie bijlage.
Aidan
Deze opmerking is gemaakt door de moderator op de site
ik wil ook dubbele waarden transponeren (alle waarden - uniek + duplicaat) en niet alleen unieke waarden. Kun je daar ook de formule voor geven.
Gast
Deze opmerking is gemaakt door de moderator op de site
Ik heb hetzelfde nodig
Joyal Isaak
Deze opmerking is gemaakt door de moderator op de site
Heb je ooit een reactie/oplossing gekregen voor deze uitdaging? Ik heb dezelfde.
Alicia
Deze opmerking is gemaakt door de moderator op de site
Met onderstaande formule:

=IFERROR(INDEX($B$2:$B$45, MATCH(0, COUNTIF($D2:D2,$B$2:$B$45)+IF($A$2:$A$10&lt;&gt;$D2, 1, 0), 0)), 0)

Hoe kan ik de gegevens transponeren met behulp van geschatte overeenkomsten? Stel, ik wil alle waarden uit kolom B halen die overeenkomen met de eerste 9 tekens / cijfers uit kolom A? Kolom B heeft 11 tekens, terwijl A slechts 9. bedankt!
Gino
Deze opmerking is gemaakt door de moderator op de site
Ik moet hier precies het tegenovergestelde van doen. Ik heb veel kolommen die zijn gekoppeld aan een rij-ID en ik wil ze in twee kolommen plakken
ik heb bijvoorbeeld
rowid, waarde, waarde1, waarde2, waarde3, waarde4, waarde..225
100, Dolfijn, 255, 9--, Sarah, Jameson, ....
179, router, overstroming, jason, 89, neus



Ik wil dat het er zo uitziet
100, Dolfijn
100, 255
100, 9--
100, sarah
100, jaemeson
179, router
179, overstroming
179, jason
179, 89
179, neus
Dave Babler
Deze opmerking is gemaakt door de moderator op de site
Hallo, Dave,
Gebruik de onderstaande VBA-code om uw probleem op te lossen: (Opmerking: als u het gegevensbereik selecteert dat u wilt transponeren, sluit dan de koprij uit.)

SubtransponerenUnique_2()
Dim xLRow, xLCcount zo lang
Dim xRg als bereik
Dim xOutRg As Range
Dim xObjRRg als bereik
Dim xTxt als string
Dim x Tel zo lang
Dim xVRg als bereik
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox ("selecteer gegevensbereik:", "Kutools for Excel", xTxt, , , , , 8)
Stel xRg = Application.Intersect (xRg, xRg.Worksheet.UsedRange) in
Als xRg niets is, sluit dan Sub af
Als (xRg.Rows.count < 2) Of _
(xRg.Areas.count > 1) Dan
MsgBox "Ongeldige selectie", , "Kutools voor Excel"
Exit Sub
End If
Set xOutRg = Application.InputBox ("selecteer het uitvoerbereik (geef één cel op):", "Kutools for Excel", xTxt, , , , , 8)
Als xOutRg niets is, sluit dan Sub af
Application.ScreenUpdating = False
xLCount = xRg.Kolommen.telling
Voor xLRow = 1 tot xRg.Rows.count
Stel xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Kopie
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False
Bereik(Cellen(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Waarde = xRg.Cells(xLRow, 1).Waarde
Stel xOutRg = xOutRg.Offset (RowOffset:=xObjRRg.count) in
volgende
Application.ScreenUpdating = True
End Sub
skyyang
Deze opmerking is gemaakt door de moderator op de site
Bedankt, het werkt perfect, je hebt me 2 dagen bespaard! :)
Anna
Deze opmerking is gemaakt door de moderator op de site
Hallo Skyyang,
deel de code voor 3 kolommen. Hieronder staat het voorbeeld:
Ik wil de gegevens zoals: yogesh@gmail.com community 1 bekijk alleen community 2 bekijk alleen ...... goyal@gmail.com community 1 alleen bekijken community 2 alleen bekijken........

Yogesh Goyal
Deze opmerking is gemaakt door de moderator op de site
Hallo, ygoyal,

Gebruik de onderstaande code om uw probleem op te lossen:

SubtransponerenUnique_2()

Dim xLRow, xLCcount zo lang

Dim xRg als bereik

Dim xOutRg As Range

Dim xObjRRg als bereik

Dim xTxt als string

Dim x Tel zo lang

Dim xVRg als bereik

Dim xC, xI, xI1, xI2 Als geheel getal

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox ("selecteer gegevensbereik:", "Kutools for Excel", xTxt, , , , , 8)

Stel xRg = Application.Intersect (xRg, xRg.Worksheet.UsedRange) in

Als xRg niets is, sluit dan Sub af

Als (xRg.Rows.Count < 2) Of _

(xRg.Areas.Count > 1) Dan

MsgBox "Ongeldige selectie", , "Kutools voor Excel"

Exit Sub

End If

Set xOutRg = Application.InputBox ("selecteer het uitvoerbereik (geef één cel op):", "Kutools for Excel", xTxt, , , , , 8)

Als xOutRg niets is, sluit dan Sub af

Application.ScreenUpdating = False

xLCount = xRg.Kolommen.Aantal

Voor xLRow = 1 tot xRg.Rows.Count

Stel xObjRRg = Range(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Count Mod 2)

Als xC <> 0 Dan

xC = Int(xObjRRg.Count / 2) + 1

Anders

xC = Int(xObjRRg.Aantal / 2)

End If

xI1 = 1

xI2 = 2

Voor xI = 1 Tot xC

Bereik(xObjRRg.Item(xI1), xObjRRg.Item(xI2)).Kopieer

xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False

xOutRg.Value = xRg.Cells(xLRow, 1).Value

Stel xOutRg = xOutRg.Offset (RowOffset:=1) in

xI1 = xI1 + (2)

xI2 = xI2 + (2)

volgende

volgende

Application.ScreenUpdating = True

End Sub



Probeer het alsjeblieft, ik hoop dat het je kan helpen!
skyyang
Deze opmerking is gemaakt door de moderator op de site
Hallo Bro, De code werkt tegenovergesteld. Raadpleeg de bijgevoegde schermafbeelding van de vereiste. De beschikbare gegevens zijn rijgewijs en u wilt de gegevens in kolommen transponeren.
Yogesh Goyal
Deze opmerking is gemaakt door de moderator op de site
Hallo, ygoyal,
Sorry voor het late antwoord, pas de volgende code toe, probeer het alstublieft!

Subtransponeringuniek()

'bijwerken door' Extendoffice

Dim xLRZolang zo lang

Dim ik zo lang

Dim xCrit As String

Dim xCol als nieuwe collectie

Dim xRg als bereik

Dim xOutRg As Range

Dim xTxt als string

Dim x Tel zo lang

Dim xVRg als bereik

Dim xFRg, xSRg, xCRg als bereik

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox ("selecteer gegevensbereik (slechts 3 kolommen):", "Kutools for Excel", xTxt, , , , , 8)

Stel xRg = Application.Intersect (xRg, xRg.Worksheet.UsedRange) in

Als xRg niets is, sluit dan Sub af

Als (xRg.Columns.Count <> 3) Of _

(xRg.Areas.Count > 1) Dan

MsgBox "het gebruikte bereik is slechts één gebied met twee kolommen", "Kutools for Excel"

Exit Sub

End If

Set xOutRg = Application.InputBox ("selecteer het uitvoerbereik (geef één cel op):", "Kutools for Excel", xTxt, , , , , 8)

Als xOutRg niets is, sluit dan Sub af

Stel xOutRg = xOutRg.Bereik (1) in

xLRow = xRg.Rijen.Aantal

Voor i = 2 tot xLRow

xKol.Toevoegen xRg.Cellen(i, 1).Waarde, xRg.Cellen(i, 1).Waarde

volgende

Application.ScreenUpdating = False

Application.ScreenUpdating = False

Voor i = 1 Tot xKol.Aantal

xCrit = xKol.Item(i)

xOutRg.Offset(i, 0) = xCrit

xRg.AutoFilter Veld:=1, Criteria1:=xCrit

Stel xVRg = xRg.Range("B2:B" & xLRow) in.SpecialCells(xlCellTypeVisible)

Als xVRg.Count > xCount Dan xCount = xVRg.Count

Stel xSRg = xRg.Range("B2:B" & xLRow) in.SpecialCells(xlCellTypeVisible)

Stel xCRg = xOutRg.Offset in (i, 1)

Voor elke xFRg In xSRg

xFRg.Kopie

xCRg.PlakkenSpecial

xRg.Bereik("B1").Kopiëren

xCRg.Offset(-(i), 0).PlakkenSpeciaal

xFRg.Offset(0, 1).Kopie

Stel xCRg = xCRg.Offset(0, 1) in

xCRg.PlakkenSpecial

xRg.Bereik("c1").Kopiëren

xCRg.Offset(-(i), 0).PlakkenSpeciaal

Stel xCRg = xCRg.Offset(0, 1) in

volgende

Application.CutCopyMode = False

volgende

xRg.Item(1).Kopie

xOutRg.PasteSpecial

xRg.AutoFilter

Application.ScreenUpdating = True

End Sub
skyyang
Deze opmerking is gemaakt door de moderator op de site
Hey Bro, ik heb geprobeerd deze code te gebruiken, maar de Excel loopt vast wanneer ik deze code uitvoer en kon de uitvoer van de bovenstaande code niet zien. stel alstublieft voor wat u in dit geval moet doen.
Yogesh Goyal
Deze opmerking is gemaakt door de moderator op de site
Hoi,
De code werkt goed in mijn werkmap, welke Excel-versie gebruik je?
skyyang
Deze opmerking is gemaakt door de moderator op de site
MS Excel 2016
Yogesh Goyal
Deze opmerking is gemaakt door de moderator op de site
De code werkt ook prima in mijn Excel 2016, probeer het eerst met wat kleine bereikgegevens.
skyyang
Deze opmerking is gemaakt door de moderator op de site
Heb getest op 160 platen maar daarin zat nog duplicaat.
Yogesh Goyal
Deze opmerking is gemaakt door de moderator op de site
Hallo Skyyang, vind je dit leuk, is er een kans dat je het voor vier kolommen kunt laten werken? opnieuw alleen de eerste twee als vergelijkingspunt gebruiken, of beter nog de mogelijkheid om het aantal kolommen te kiezen voordat ze worden geselecteerd? Ik heb je script bekeken, ik zou geen idee hebben hoe ik dit moet bereiken...
carlos7z
Deze opmerking is gemaakt door de moderator op de site
Hallo Skyyang, vind je dit leuk, is er een kans dat je het voor vier kolommen kunt laten werken? opnieuw alleen de eerste twee als vergelijkingspunt gebruiken, of beter nog de mogelijkheid om het aantal kolommen te kiezen voordat ze worden geselecteerd? Ik heb je script bekeken, ik zou geen idee hebben hoe ik dit moet bereiken...
carlos7z
Deze opmerking is gemaakt door de moderator op de site
Bro, help me hierbij.
Yogesh
Deze opmerking is gemaakt door de moderator op de site
Hallo Bro, ik wacht nog steeds op je hulp
Yogesh Goyal
Deze opmerking is gemaakt door de moderator op de site
Hallo
Yogesh Goyal
Deze opmerking is gemaakt door de moderator op de site
Hetzelfde als Dave, ik moet precies het tegenovergestelde doen. Tabel 2 om te transponeren naar Tabel 1. Invoertabel 2, Uitvoertabel 1.
Prial
Deze opmerking is gemaakt door de moderator op de site
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) werkte voor mij om de unieke waarden van een kolom om te zetten in een nieuwe kolom MAAR... is er een manier om een ​​advertentie in een sorteerfunctie te plaatsen, zodat de nieuwe kolom die wordt gemaakt in oplopende volgorde wordt getransponeerd?


Bedankt!
Kate
Deze opmerking is gemaakt door de moderator op de site
Moet dezelfde uitvoer krijgen, maar voorgedefinieerde kolommen die moeten worden geselecteerd, zijn ($A,$B) en hebben de uitvoerkolom Positie op $D$1 nodig.
Als iemand een idee heeft, zou dat een grote hulp zijn!!!!
Raj
Deze opmerking is gemaakt door de moderator op de site
Hallo, kunnen we elke rij toevoegen en de uitvoer in één kolom geven, met de bovenstaande functionaliteit.
kumar
Deze opmerking is gemaakt door de moderator op de site
Ik werk dus voor een bedrijf. We hebben kolommen voor info zoals achternaam, voornaam, rang, sectie, telefoonnummer, adres. Is er een manier waarop ik een vergelijkbare formule kan gebruiken om de hele rij met informatie op naam naar een kolom te transponeren?
Sean Vizcarrondo
Deze opmerking is gemaakt door de moderator op de site
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) werkte voor mij om de unieke waarden van een kolom om te zetten in een nieuwe kolom MAAR ... is er een manier om alle waarden in de B-kolom te transponeren zoals hieronder aangegeven:

Productbestellingsdatum Productbestelling Bestelling Bestelling Bestelling Bestelling Bestelling
KTE 100 3/3/2019 KTE 100 100 100 200 100 150 100
KTO 150 3/3/2019 KTO 150 100 200 100 150 200
KTE 100 3/4/2019 BOT 150 100 200 150 100 200
KTO 100 3/4/2019 COD 200 150 100 150
KTO 200 3-5-2019
KTE 100 3-5-2019
BOT 150 3-5-2019
BOT 100 3-6-2019
KTO 100 3-6-2019
KTE 200 3-6-2019
BOT 200 3-7-2019
COD 200 3-7-2019
KTE 100 3-7-2019
KTO 150 3-7-2019
BOT 150 3-8-2019
KTE 150 3-8-2019
COD 150 3-8-2019
BOT 100 3-9-2019
BOT 200 3-10-2019
COD 100 3-10-2019
KTO 200 3-10-2019
COD 150 3-11-2019
KTE 100 3-11-2019
Vinod
Deze opmerking is gemaakt door de moderator op de site
De macro werkte niet. Het kopieerde gewoon de inhoud in cel A1.
Martha Helder
Deze opmerking is gemaakt door de moderator op de site
Ik heb een gegevensset in kolommen A (unieke ID) - E. Elke rij heeft gegevens op basis van de ID #, er zijn meerdere rijen voor elke ID # maar ik wil één rij per ID # met alle andere gegevens in kolommen ( het zou minimaal 5 kolommen lang zijn en maximaal 25, afhankelijk van hoeveel elke unieke ID heeft). Ik heb een code gevonden, maar deze werkt maar voor twee kolommen. Ik moest de vier kolommen (exclusief ID) samenvoegen en vervolgens scheiden na het uitvoeren van de macro (veel werk). Voor 15,000 rijen data is dit extra tijdrovend. Is er een eindeloze kolommacro die zou werken? Iedereen alvast bedankt voor jullie hulp!
ID CODE ST CODE# DATUM
ariel
Deze opmerking is gemaakt door de moderator op de site
Ik heb een dataset met meerdere ID's in kolom A en gegevens in kolom B. Ik heb de bovenstaande formule gebruikt en deze een beetje gewijzigd, zodat ik de cellen in kolom B in een rij transponeer op basis van de unieke ID daaraan gekoppeld in kolom A. De formule die wordt gebruikt om de unieke ID's te identificeren is: =INDEX($A$2:$A$13409, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$13409), 0)). De formule die wordt gebruikt om te transponeren is: =IFERROR(INDEX($B$2:$B$13409, MATCH(0, IF($A$2:$A$13409<>$D2, 1, 0)+COUNTIF($D2: D2,$B$2:$B$13409), 0)), "N.v.t."). Beide gegeven in het artikel, slechts licht gewijzigd.

Het probleem is dat mijn dataset in kolom B duplicaten bevat, die soms achter elkaar verschijnen, en ik wil dat alle waarden in de kolom in de rijen worden weergegeven.

De bijgevoegde afbeelding is wat ik zou willen dat de tabel laat zien (dit is een kleine steekproefomvang, de echte dataset heeft meer dan 13,000 inzendingen). Wat er nu gebeurt, is dat wanneer een herhalingswaarde wordt aangetroffen, deze niet wordt geteld.
dwz Rij 9 voor ID 11980 toont nu alleen 0 -31.79 -0.19 -0.74 N/AN/A .... wanneer wat ik wil dat het in plaats daarvan toont 0 0 -31.79 -0.19 -0.74 0 0 N/AN/A is. ...

Is er een manier om dit probleem te omzeilen en op te lossen?

Dank u bij voorbaat!
Eduardo Sequeira
Deze opmerking is gemaakt door de moderator op de site
Heb je ooit een reactie/oplossing gekregen voor deze uitdaging? Ik heb dezelfde.
Alicia
Deze opmerking is gemaakt door de moderator op de site
Ik heb een dataset met 3 kolommen die hieronder worden weergegeven:



Kolom A Kolom B Kolom C



Land1 Jaar1 Waarde1

Land1 Jaar2 Waarde2

Land1 Jaar3 Waarde3,



Land2 Jaar1 Waarde1

Land2 Jaar3 Waarde3,

...........



Ik moet deze 3 kolommen combineren in een tabel zoals deze:

Jaar1 Jaar2 Jaar3 ................................. JaarX



Land1 Waarde1 Waarde2 Waarde3

Land2 Waarde1 #Ontbrekende waarde3

.....
.....
.....

LandX Valuex ...................





Het probleem waar ik mee te maken heb, is dat ik voor sommige gegevens in kolom A geen waarden heb voor elk jaar, alleen voor sommige. (Land 2 heeft bijvoorbeeld ontbrekende waarden voor jaar 2)





Is er een manier om dit probleem te omzeilen en op te lossen?



Dank u bij voorbaat!
Gabi L Margareta
Deze opmerking is gemaakt door de moderator op de site
kun je de code delen als er 2 kolommen moeten worden gekopieerd in plaats van 1. hieronder is het voorbeeld.
Yogesh Goyal
Er zijn nog geen reacties geplaatst
Laad meer
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0  Personages
Voorgestelde locaties