Kako prenesti celice v enem stolpcu na podlagi edinstvenih vrednosti v drugem stolpcu?
Recimo, da imate obseg podatkov, ki vsebuje dva stolpca, zdaj želite prenesti celice v enem stolpcu v vodoravne vrstice na podlagi edinstvenih vrednosti v drugem stolpcu, da dobite naslednji rezultat. Ali imate kakšno dobro idejo za rešitev te težave v Excelu?
Prenesite celice v en stolpec na podlagi edinstvenih vrednosti s formulami
Prenesite celice v en stolpec na podlagi edinstvenih vrednosti s kodo VBA
Prenesite celice v en stolpec na podlagi edinstvenih vrednosti s Kutools za Excel
Prenesite celice v en stolpec na podlagi edinstvenih vrednosti s formulami
Z naslednjimi formulami matrike lahko izvlečete edinstvene vrednosti in prenesete njihove ustrezne podatke v vodoravne vrstice, naredite naslednje:
1. Vnesite to matrično formulo: = INDEKS ($ A $ 2: $ A $ 16, UTEK (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) na primer v prazno celico D2 in pritisnite Shift + Ctrl + Enter da dobite pravilen rezultat, glejte posnetek zaslona:
Opombe: V zgornji formuli, A2: A16 je stolpec, iz katerega želite navesti unikatne vrednosti, in D1 je celica nad to formulo.
2. Nato povlecite ročico za polnjenje navzdol do celic, da izvlečete vse edinstvene vrednosti, glejte posnetek zaslona:
3. In nato nadaljujte z vnosom te formule v celico 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)in ne pozabite pritisniti Shift + Ctrl + Enter tipke, da dobite rezultat, glejte posnetek zaslona:
Opombe: V zgornji formuli: B2: B16 so podatki stolpca, ki jih želite prenesti, A2: A16 je stolpec, na podlagi katerega želite prenesti vrednosti, in D2 vsebuje edinstveno vrednost, ki ste jo izvlekli v 1. koraku.
4. Nato povlecite ročico za polnjenje desno od celic, v katere želite navesti prenesene podatke, dokler se ne prikaže 0, glejte posnetek zaslona:
5. In nato še naprej povlecite ročico za polnjenje do obsega celic, da dobite prenesene podatke, kot je prikazano na sliki spodaj:
Prenesite celice v en stolpec na podlagi edinstvenih vrednosti s kodo VBA
Morda so formule zapletene, da jih lahko razumete, tukaj lahko zaženete naslednjo kodo VBA, da dobite želeni rezultat, ki ga potrebujete.
1. Držite tipko ALT + F11 tipke za odpiranje Microsoft Visual Basic za aplikacije okno.
2. Kliknite Vstavi > Moduliin prilepite naslednjo kodo v Moduli Okno.
Koda VBA: Prenesite celice v en stolpec na podlagi edinstvenih vrednosti v drugem stolpcu:
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. Nato pritisnite F5 tipko za zagon te kode in pojavilo se bo pozivno polje, ki vas bo opomnilo, da izberete obseg podatkov, ki ga želite uporabiti, glejte posnetek zaslona:
4. In nato kliknite OK , se bo pojavilo drugo pozivno polje, ki vas bo opozorilo, da izberete celico, v katero želite dati rezultat, glejte sliko zaslona:
6. Kliknite OK in podatki v stolpcu B so bili preneseni na podlagi edinstvenih vrednosti v stolpcu A, glejte posnetek zaslona:
Prenesite celice v en stolpec na podlagi edinstvenih vrednosti s Kutools za Excel
Če imate Kutools za Excel, ki združuje Napredne kombinirane vrstice in Razdeljene celice pripomočki, lahko to nalogo hitro dokončate brez kakršnih koli formul ali kode.
Kutools za Excel : z več kot 300 priročnimi dodatki za Excel, ki jih lahko brezplačno preizkusite v 30 dneh. |
Po namestitvi Kutools za Excel, naredite naslednje:
1. Izberite obseg podatkov, ki ga želite uporabiti. (Če želite obdržati izvirne podatke, jih najprej kopirajte in prilepite na drugo mesto.)
2. Nato kliknite Kutools > Spoji in razdeli > Napredne kombinirane vrstice, glej posnetek zaslona:
3. v Kombiniraj vrstice na podlagi stolpca pogovorno okno, naredite naslednje:
(1.) Kliknite ime stolpca, na podlagi katerega želite prenesti podatke, in izberite Primarni ključ;
(2.) Kliknite drug stolpec, ki ga želite prenesti, in kliknite Združite nato izberite eno ločilo, da ločite kombinirane podatke, kot so presledek, vejica, podpičje.
4. Nato kliknite Ok , so podatki v stolpcu B združeni v eno celico na podlagi stolpca A, glej posnetek zaslona:
5. Nato izberite kombinirane celice in kliknite Kutools > Spoji in razdeli > Razdeljene celice, glej posnetek zaslona:
6. v Razdeljene celice pogovorno okno, izberite Razdeli na stolpce pod tip in nato izberite ločilo, ki ločuje vaše združene podatke, glejte posnetek zaslona:
7. Nato kliknite Ok in izberite celico, v katero boste razdeljeni rezultat postavili v izpuščeno pogovorno okno, glejte posnetek zaslona:
8. Kliknite OK, in dobili boste rezultat, kot ga potrebujete. Oglejte si posnetek zaslona:
Prenesite in brezplačno preizkusite Kutools za Excel zdaj!
Predstavitev: Prenesite celice v en stolpec na podlagi edinstvenih vrednosti s programom Kutools za Excel
Najboljša pisarniška orodja za produktivnost
Napolnite svoje Excelove spretnosti s Kutools za Excel in izkusite učinkovitost kot še nikoli prej. Kutools za Excel ponuja več kot 300 naprednih funkcij za povečanje produktivnosti in prihranek časa. Kliknite tukaj, če želite pridobiti funkcijo, ki jo najbolj potrebujete...
Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo
- Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
- Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
- Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!