Hvordan transponeres celler i en kolonne baseret på unikke værdier i en anden kolonne?
Antag, at du har en række data, der indeholder to kolonner, nu vil du transponere celler i en kolonne til vandrette rækker baseret på unikke værdier i en anden kolonne for at få følgende resultat. Har du gode ideer til at løse dette problem i Excel?
Transponer celler i en kolonne baseret på unikke værdier med formler
Transponer celler i en kolonne baseret på unikke værdier med VBA-kode
Transponer celler i en kolonne baseret på unikke værdier med Kutools til Excel
Transponer celler i en kolonne baseret på unikke værdier med formler
Med følgende matrixformler kan du udtrække de unikke værdier og transponere deres tilsvarende data i vandrette rækker. Gør som følger:
1. Indtast denne matrixformel: = INDEKS ($ A $ 2: $ A $ 16, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) ind i en tom celle, f.eks. D2, og tryk på Skift + Ctrl + Enter nøgler sammen for at få det rigtige resultat, se skærmbillede:
Bemærk: I ovenstående formel A2: A16 er den kolonne, som du vil liste de unikke værdier fra, og D1 er cellen over denne formelcelle.
2. Træk derefter fyldhåndtaget ned til cellerne for at udtrække alle de unikke værdier, se skærmbillede:
3. Og fortsæt derefter med at indtaste denne formel i celle 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), og husk at trykke på Skift + Ctrl + Enter nøgler for at få resultatet, se skærmbillede:
Bemærk: I ovenstående formel: B2: B16 er de søjledata, du vil transponere, A2: A16 er den kolonne, som du vil transponere værdierne baseret på, og D2 indeholder den unikke værdi, som du har udvundet i trin 1.
4. Træk derefter fyldhåndtaget til højre for de celler, som du vil liste de transponerede data, indtil viser 0, se skærmbillede:
5. Og fortsæt derefter med at trække påfyldningshåndtaget ned til celleområdet for at få de transponerede data som vist på følgende skærmbillede:
Transponer celler i en kolonne baseret på unikke værdier med VBA-kode
Kan være, at formlerne er komplekse for dig at forstå, her kan du køre følgende VBA-kode for at få det ønskede resultat, du har brug for.
1. Hold nede ALT + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.
2. Klik indsatte > Moduler, og indsæt følgende kode i Moduler Vindue.
VBA-kode: Transponer celler i en kolonne baseret på unikke værdier i en anden kolonne:
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. Tryk derefter på F5 nøgle til at køre denne kode, og der vises et promptfelt for at minde dig om at vælge det dataområde, du vil bruge, se skærmbillede:
4. Og klik derefter på OK knap, vises en anden promptboks for at minde dig om at vælge en celle for at placere resultatet, se skærmbillede:
6. Klik OK knappen, og dataene i kolonne B er blevet transponeret baseret på unikke værdier i kolonne A, se skærmbillede:
Transponer celler i en kolonne baseret på unikke værdier med Kutools til Excel
Hvis du har Kutools til Excel, kombinerer Avancerede kombinere rækker og Opdel celler hjælpeprogrammer, kan du hurtigt afslutte denne opgave uden formler eller kode.
Kutools til Excel : med mere end 300 praktiske Excel-tilføjelsesprogrammer, gratis at prøve uden begrænsning på 30 dage. |
Efter installation Kutools til Excelskal du gøre som følger:
1. Vælg det dataområde, du vil bruge. (Hvis du vil beholde de originale data, skal du først kopiere og indsætte dataene til et andet sted.)
2. Klik derefter på Kutools > Flet og del > Avancerede kombinere rækker, se skærmbillede:
3. I Kombiner rækker baseret på kolonne dialogboksen, skal du udføre følgende handlinger:
(1.) Klik på det kolonnenavn, du vil transponere data baseret på, og vælg Primærnøgle;
(2.) Klik på en anden kolonne, som du vil transponere, og klik på Kombiner vælg derefter en separator for at adskille de kombinerede data, såsom mellemrum, komma, semikolon.
4. Klik derefter på Ok knap, er dataene i kolonne B kombineret i en celle baseret på kolonne A, se skærmbillede:
5. Og vælg derefter de kombinerede celler, og klik Kutools > Flet og del > Opdel celler, se skærmbillede:
6. I Opdel celler dialogboksen, vælg Opdel til kolonner under Type valgmulighed, og vælg derefter separatoren, der adskiller dine kombinerede data, se skærmbillede:
7. Klik derefter på Ok knap, og vælg en celle for at placere splitresultatet i den poppede dialogboks, se skærmbillede:
8. Klik OK, og du får resultatet, som du har brug for. Se skærmbillede:
Download og gratis prøveversion Kutools til Excel nu!
Demo: Transponer celler i en kolonne baseret på unikke værdier med Kutools til Excel
De bedste Office-produktivitetsværktøjer
Kutools til Excel løser de fleste af dine problemer og øger din produktivitet med 80%
- Genbruge: Indsæt hurtigt komplekse formler, diagrammer og alt, hvad du har brugt før; Krypter celler med adgangskode Opret postliste og send e-mails ...
- Super formel bar (let redigere flere linjer med tekst og formel); Læsning Layout (let at læse og redigere et stort antal celler); Indsæt til filtreret rækkevidde...
- Flet celler / rækker / kolonner uden at miste data; Split celler indhold; Kombiner duplikerede rækker / kolonner... Forhindre duplikerede celler; Sammenlign områder...
- Vælg Duplicate eller Unique Rækker; Vælg tomme rækker (alle celler er tomme); Super Find og Fuzzy Find i mange arbejdsbøger; Tilfældig valg ...
- Præcis kopi Flere celler uden at ændre formelreference; Auto Opret referencer til flere ark; Indsæt kugler, Afkrydsningsfelter og mere ...
- Uddrag tekst, Tilføj tekst, Fjern efter position, Fjern mellemrum; Opret og udskriv personsøgningssubtotaler; Konverter mellem celler indhold og kommentarer...
- Superfilter (gem og anvend filterskemaer på andre ark); Avanceret sortering efter måned / uge / dag, hyppighed og mere; Specielt filter af fed, kursiv ...
- Kombiner arbejdsbøger og arbejdsark; Fletabeller baseret på nøglekolonner; Opdel data i flere ark; Batch Konverter xls, xlsx og PDF...
- Mere end 300 kraftfulde funktioner. Understøtter Office / Excel 2007-2021 og 365. Understøtter alle sprog. Nem implementering i din virksomhed eller organisation. Fuld funktioner 30-dages gratis prøveperiode. 60 dages pengene tilbage garanti.

Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere
- Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
- Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
- Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!
















































