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 , 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
Bedste kontorproduktivitetsværktøjer
Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid. Klik her for at få den funktion, du har mest brug for...
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!