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

 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?

doc prenese enolične vrednosti 1

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


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:

doc prenese enolične vrednosti 2

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:

doc prenese enolične vrednosti 3

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:

doc prenese enolične vrednosti 4

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:

doc prenese enolične vrednosti 5

5. In nato še naprej povlecite ročico za polnjenje do obsega celic, da dobite prenesene podatke, kot je prikazano na sliki spodaj:

doc prenese enolične vrednosti 6


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:

doc prenese enolične vrednosti 7

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:

doc prenese enolične vrednosti 8

6. Kliknite OK in podatki v stolpcu B so bili preneseni na podlagi edinstvenih vrednosti v stolpcu A, glejte posnetek zaslona:

doc prenese enolične vrednosti 9


Č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.

doc prenese enolične vrednosti 11

4. Nato kliknite Ok , so podatki v stolpcu B združeni v eno celico na podlagi stolpca A, glej posnetek zaslona:

doc prenese enolične vrednosti 12

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:

doc prenese enolične vrednosti 14 14

7. Nato kliknite Ok in izberite celico, v katero boste razdeljeni rezultat postavili v izpuščeno pogovorno okno, glejte posnetek zaslona:

doc prenese enolične vrednosti 15

8. Kliknite OK, in dobili boste rezultat, kot ga potrebujete. Oglejte si posnetek zaslona:

doc prenese enolične vrednosti 16

Prenesite in brezplačno preizkusite Kutools za Excel zdaj!


Kutools za Excel: z več kot 300 priročnimi dodatki za Excel, brezplačno preizkusite brez omejitev v 30 dneh. Prenesite in brezplačno preskusite zdaj!

Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila denarja.
zavihek kte 201905

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!
dno pisarniške mize
Komentarji (56)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Kako naj grem v nasprotno smer? Iz več stolpcev v en sam stolpec? Hvala vnaprej! Tim
Ta komentar je moderator na spletnem mestu minimiziral
To je bilo fantastično. Imel sem excel z okoli 2000 edinstvenimi vrednostmi v vrstici A in te vaje ne bi mogel izvesti brez vaše pomoči. Najlepša hvala.
Ta komentar je moderator na spletnem mestu minimiziral
Prvi korak sam po sebi ne uspe =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) daje napako Vrednost ni na voljo
Ta komentar je moderator na spletnem mestu minimiziral
Rad bi naredil ravno nasprotno. Kot da že imam končni rezultat in želim narediti prvi korak.
Ta komentar je moderator na spletnem mestu minimiziral
Iščem isto stvar
Ta komentar je moderator na spletnem mestu minimiziral
Ste našli rešitev za nasprotni scenarij? Hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Želim narediti tudi nasprotno. Imate kakšno rešitev, gospodje?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo družba,
Če želite dobiti nasprotni rezultat na podlagi primera tega članka, lahko uporabite naslednjo kodo VBA: (Opomba: Ko izberete obseg podatkov, ki ga želite prenesti, izključite naslovno vrstico)

Sub TransposeUnique_2()
Dim xLRow, xLCount As Long
Dim xRg As Range
Dim xOutRg kot obseg
Dim xObjRRg kot razpon
Dim xTxt kot niz
Dim xCount As Long
Zatemni xVRg kot obseg
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Nastavite xRg = Application.InputBox("prosim, izberite obseg podatkov:", "Kutools for Excel", xTxt, , , , , 8)
Nastavi xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Če xRg ni nič, zapustite Sub
Če (xRg.Rows.count < 2) ali _
(xRg.Areas.count > 1) Nato
MsgBox "Neveljavna izbira", , "Kutools za Excel"
Exit Sub
Konec Če
Nastavite xOutRg = Application.InputBox("prosim, izberite izhodni obseg (določite eno celico):", "Kutools za Excel", xTxt, , , , , 8)
Če xOutRg ni nič, zapustite Sub
Application.ScreenUpdating = Napačno
xLCount = xRg.Columns.count
Za xLRow = 1 do xRg.Rows.count
Nastavite xObjRRg = Obseg(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Kopiraj
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = Napačno
Obseg(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Value = xRg.Cells(xLRow, 1).Value
Nastavite xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Naslednji
Application.ScreenUpdating = Res
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Kako izvesti transponiranje, če stolpec B nima edinstvenih vrednosti, vendar še vedno potrebuje te vrednosti
KTE 100
KTE 100
Ob predpostavki, da gre za dve različni transakciji
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, Didin,

Ali lahko bolj jasno ali podrobneje opišete svoj problem?
Za vašo težavo lahko vstavite primer posnetka zaslona.
Hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Zdravo,
Mi lahko prosim pomagate pri spodnji zahtevi.
Izdelek ----- naročilo
KTE ------ 100KTE ------ 200KTO ------ 300KTO ------ 300
pričakovani rezultat
Izdelek ----- naročilo ----- naročilo ------ naročilo
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







Ta komentar je moderator na spletnem mestu minimiziral
Tudi jaz potrebujem enako. Želim dvakrat prikazati 100, če je v podatkih
Ta komentar je moderator na spletnem mestu minimiziral
Ali lahko predlagate formulo za to
Ta komentar je moderator na spletnem mestu minimiziral
Ste kdaj dobili odgovor/rešitev na ta izziv? jaz imam enakega.
Ta komentar je moderator na spletnem mestu minimiziral
Ali obstaja način, da to storite v obratni smeri? Tj. podatki v vrsticah različnih dolžin in jih tako razvrščate v dva stolpca? Glej priloženo.
Ta komentar je moderator na spletnem mestu minimiziral
želim prenesti tudi podvojene vrednosti (vse vrednosti - edinstvene + podvojene) in ne samo edinstvene vrednosti. Lahko daš tudi formulo za to.
Ta komentar je moderator na spletnem mestu minimiziral
Potrebujem enako
Ta komentar je moderator na spletnem mestu minimiziral
Ste kdaj dobili odgovor/rešitev na ta izziv? jaz imam enakega.
Ta komentar je moderator na spletnem mestu minimiziral
S spodnjo formulo:

=IFERROR(INDEX($B$2:$B$45, MATCH(0, COUNTIF($D2:D2,$B$2:$B$45)+IF($A$2:$A$10<>$D2, 1, 0), 0)), 0)

Kako lahko prenesem podatke s približnimi ujemanji? Recimo, želim iz stolpca B izluščiti vse vrednosti, ki se ujemajo s prvimi 9 znaki/števkami iz stolpca A? Stolpec B ima 11 znakov, A samo 9. hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Moram narediti ravno nasprotno od tega. Imam veliko veliko stolpcev, povezanih z ID-jem vrstice, in jih želim prilepiti v dva stolpca
na primer imam
rowid, vrednost, vrednost1, vrednost2, vrednost3, vrednost4, vrednost..225
100, Delfin, 255, 9--, Sarah, Jameson, ....
179, Usmerjevalnik, poplava, Jason, 89, nos



Želim, da izgleda takole
100, delfin
100, 255
100, 9--
100, Sarah
100, jaemeson
179, usmerjevalnik
179, poplava
179, Jason
179, 89
179, nos
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, Dave,
Za rešitev težave uporabite spodnjo kodo VBA: (Opomba: Ko izberete obseg podatkov, ki ga želite prenesti, izključite naslovno vrstico.)

Sub TransposeUnique_2()
Dim xLRow, xLCount As Long
Dim xRg As Range
Dim xOutRg kot obseg
Dim xObjRRg kot razpon
Dim xTxt kot niz
Dim xCount As Long
Zatemni xVRg kot obseg
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Nastavite xRg = Application.InputBox("prosim, izberite obseg podatkov:", "Kutools for Excel", xTxt, , , , , 8)
Nastavi xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)
Če xRg ni nič, zapustite Sub
Če (xRg.Rows.count < 2) ali _
(xRg.Areas.count > 1) Nato
MsgBox "Neveljavna izbira", , "Kutools za Excel"
Exit Sub
Konec Če
Nastavite xOutRg = Application.InputBox("prosim, izberite izhodni obseg (določite eno celico):", "Kutools za Excel", xTxt, , , , , 8)
Če xOutRg ni nič, zapustite Sub
Application.ScreenUpdating = Napačno
xLCount = xRg.Columns.count
Za xLRow = 1 do xRg.Rows.count
Nastavite xObjRRg = Obseg(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Kopiraj
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = Napačno
Obseg(Cells(xOutRg.Row, xOutRg.Column), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Value = xRg.Cells(xLRow, 1).Value
Nastavite xOutRg = xOutRg.Offset(RowOffset:=xObjRRg.count)
Naslednji
Application.ScreenUpdating = Res
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Hvala, deluje odlično, prihranili ste mi 2 dni! :)
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni Skyyang,
prosim delite kodo za 3 stolpce. Spodaj je primer:
Želim podatke, kot so: yogesh@gmail.com skupnost 1 samo ogled skupnosti 2 samo ogled ...... goyal@gmail.com skupnost 1 ogled samo skupnost 2 samo ogled........

Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, ygoyal,

Če želite rešiti težavo, uporabite spodnjo kodo:

Sub TransposeUnique_2()

Dim xLRow, xLCount As Long

Dim xRg As Range

Dim xOutRg kot obseg

Dim xObjRRg kot razpon

Dim xTxt kot niz

Dim xCount As Long

Zatemni xVRg kot obseg

Dim xC, xI, xI1, xI2 Kot celo število

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Nastavite xRg = Application.InputBox("prosim, izberite obseg podatkov:", "Kutools for Excel", xTxt, , , , , 8)

Nastavi xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Če xRg ni nič, zapustite Sub

Če (xRg.Rows.Count < 2) ali _

(xRg.Areas.Count > 1) Nato

MsgBox "Neveljavna izbira", , "Kutools za Excel"

Exit Sub

Konec Če

Nastavite xOutRg = Application.InputBox("prosim, izberite izhodni obseg (določite eno celico):", "Kutools za Excel", xTxt, , , , , 8)

Če xOutRg ni nič, zapustite Sub

Application.ScreenUpdating = Napačno

xLCount = xRg.Columns.Count

Za xLRow = 1 do xRg.Rows.Count

Nastavite xObjRRg = Obseg(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Count Mod 2)

Če je xC <> 0 Potem

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

Else

xC = Int(xObjRRg.Count / 2)

Konec Če

xI1 = 1

xI2 = 2

Za xI = 1 do xC

Obseg(xObjRRg.Item(xI1), xObjRRg.Item(xI2)).Kopiraj

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

Application.CutCopyMode = Napačno

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

Nastavi xOutRg = xOutRg.Offset(RowOffset:=1)

xI1 = xI1 + (2)

xI2 = xI2 + (2)

Naslednji

Naslednji

Application.ScreenUpdating = Res

End Sub



Prosim poskusite, upam, da vam lahko pomaga!
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni brat, koda deluje nasprotno. Prosimo, glejte priloženi posnetek zaslona zahteve. Podatki, ki so na voljo, so po vrsticah in jih želite prenesti v stolpce.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, ygoyal,
Oprostite za pozen odgovor, uporabite naslednjo kodo, poskusite!

Subtransposeunique()

'updateby Extendoffice

Dim xLRow As Long

Dim i as Long

Dim xCrit kot niz

Dim xCol kot nova kolekcija

Dim xRg As Range

Dim xOutRg kot obseg

Dim xTxt kot niz

Dim xCount As Long

Zatemni xVRg kot obseg

Dim xFRg, xSRg, xCRg kot razpon

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Nastavite xRg = Application.InputBox("prosim, izberite obseg podatkov (samo 3 stolpci):", "Kutools za Excel", xTxt, , , , , 8)

Nastavi xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange)

Če xRg ni nič, zapustite Sub

Če (xRg.Columns.Count <> 3) ali _

(xRg.Areas.Count > 1) Nato

MsgBox "uporabljeni obseg je samo eno območje z dvema stolpcema ", , "Kutools za Excel"

Exit Sub

Konec Če

Nastavite xOutRg = Application.InputBox("prosim, izberite izhodni obseg (določite eno celico):", "Kutools za Excel", xTxt, , , , , 8)

Če xOutRg ni nič, zapustite Sub

Nastavi xOutRg = xOutRg.Range(1)

xLRow = xRg.Rows.Count

Za i = 2 do xLRow

xCol.Dodaj xRg.Cells(i, 1).Value, xRg.Cells(i, 1).Value

Naslednji

Application.ScreenUpdating = Napačno

Application.ScreenUpdating = Napačno

Za i = 1 Do xCol.Count

xCrit = xCol.Item(i)

xOutRg.Offset(i, 0) = xCrit

xRg.Polje samodejnega filtra:=1, merilo1:=xCrit

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

Če je xVRg.Count > xCount Potem je xCount = xVRg.Count

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

Nastavi xCRg = xOutRg.Offset(i, 1)

Za vsak xFRg v xSRg

xFRg.Kopiraj

xCRg.PasteSpecial

xRg.Range("B1").Kopiraj

xCRg.Odmik(-(i), 0).PrilepiPosebno

xFRg.Odmik(0, 1).Kopiraj

Nastavi xCRg = xCRg.Offset(0, 1)

xCRg.PasteSpecial

xRg.Range("c1").Kopiraj

xCRg.Odmik(-(i), 0).PrilepiPosebno

Nastavi xCRg = xCRg.Offset(0, 1)

Naslednji

Application.CutCopyMode = Napačno

Naslednji

xRg.Item(1).Kopiraj

xOutRg.PasteSpecial

xRg.AutoFilter

Application.ScreenUpdating = Res

End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Hej brat, poskusil sem uporabiti to kodo, vendar se excel ustavi, ko zaženem to kodo in nisem mogel videti izhoda zgornje kode. prosim predlagajte, kaj storiti v tem primeru.
Ta komentar je moderator na spletnem mestu minimiziral
Hi,
Koda dobro deluje v mojem delovnem zvezku, katero različico Excela uporabljate?
Ta komentar je moderator na spletnem mestu minimiziral
MS Excel 2016
Ta komentar je moderator na spletnem mestu minimiziral
Koda deluje dobro tudi v mojem Excelu 2016, najprej poskusite z nekaj podatki majhnega obsega.
Ta komentar je moderator na spletnem mestu minimiziral
Preizkusil sem 160 zapisov, vendar je bil v tem še vedno dvojnik.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, Skyyang, všeč mi je to, ali obstaja možnost, da bi ga spravil za štiri stolpce? spet samo uporaba prvih dveh kot primerjalnika ali še bolje možnost izbire števila stolpcev, preden jih izberete? Ogledal sem si tvoj scenarij, ne bi imel pojma, kako to doseči...
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, Skyyang, všeč mi je to, ali obstaja možnost, da bi ga spravil za štiri stolpce? spet samo uporaba prvih dveh kot primerjalnika ali še bolje možnost izbire števila stolpcev, preden jih izberete? Ogledal sem si tvoj scenarij, ne bi imel pojma, kako to doseči...
Ta komentar je moderator na spletnem mestu minimiziral
Brate, prosim pomagajte pri tem.
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni brat, še vedno čakam na vašo pomoč
Ta komentar je moderator na spletnem mestu minimiziral
zdravo
Ta komentar je moderator na spletnem mestu minimiziral
Enako kot Dave, moram narediti ravno nasprotno od tega. Tabela 2 za prenos v tabelo 1. Vhodna tabela 2, izhodna tabela 1.
Ta komentar je moderator na spletnem mestu minimiziral
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) mi je pomagal prenesti edinstvene vrednosti stolpca v novo stolpec AMPAK ... ali obstaja način za oglas v funkciji razvrščanja, tako da je nov ustvarjen stolpec prenesen v naraščajočem vrstnem redu?


Hvala!
Ta komentar je moderator na spletnem mestu minimiziral
Morate dobiti enak izhod, vendar za izbiro vnaprej določenih stolpcev je ($A,$B) in potrebujete položaj izhodnega stolpca na $D$1.
Če ima kdo kakšno idejo bi bila v veliko pomoč!!!!
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, ali lahko dodamo vsako vrstico in podamo izhod v enem stolpcu z zgornjo funkcionalnostjo.
Ta komentar je moderator na spletnem mestu minimiziral
Torej delam v podjetju. Imamo stolpce za informacije, kot so priimek, ime, čin, oddelek, telefonska številka, naslov. Ali lahko uporabim podobno formulo za prenos celotne vrstice informacij v stolpec po imenih?
Ta komentar je moderator na spletnem mestu minimiziral
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) mi je pomagal prenesti edinstvene vrednosti stolpca A v nov stolpec AMPAK ... ali obstaja način, da se vse vrednosti v stolpcu B prenesejo, kot je navedeno spodaj:

Datum naročila izdelka Naročilo izdelka Naročilo Naročilo Naročilo Naročilo Naročilo Naročilo Naročilo
KTE 100 3/3/2019 KTE 100 100 100 200 100 150 100
KTO 150 3 KTO 3 2019 150 100 200 100
KTE 100 3 BOT 4 2019 150 100 200 150
KTO 100 3 COD 4 2019 200 150
KTO 200 3
KTE 100 3. 5. 2019
BOT 150 3. 5. 2019
BOT 100 3. 6. 2019
KTO 100 3
KTE 200 3. 6. 2019
BOT 200 3. 7. 2019
COD 200 3. 7. 2019
KTE 100 3. 7. 2019
KTO 150 3
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
Ta komentar je moderator na spletnem mestu minimiziral
Makro ni deloval. Pravkar je kopiral vsebino v celici A1.
Ta komentar je moderator na spletnem mestu minimiziral
Imam nabor podatkov v stolpcih A (Edinstven ID) - E. Vsaka vrstica ima podatke, ki temeljijo na ID#, obstaja več vrstic za vsak ID#, vendar želim eno vrstico na ID# z vsemi drugimi podatki v stolpcih ( bilo bi najmanj 5 stolpcev in največ 25, odvisno od tega, koliko ima vsak edinstven ID). Našel sem kodo, vendar deluje samo za dva stolpca. Moral sem povezati štiri stolpce (brez ID-ja) in nato razmejiti po zagonu makra (veliko dela). Za 15,000 vrstic podatkov to zahteva dodaten čas. Ali obstaja neskončen makro stolpca, ki bi deloval? Vnaprej hvala vsem za pomoč!
ID KODA ST KODA # DATUM
Ta komentar je moderator na spletnem mestu minimiziral
Imam nabor podatkov, ki ima več ID-jev v stolpcu A in ima povezane podatke v stolpcu B. Uporabil sem zgornjo formulo in jo nekoliko spremenil, tako da celice v stolpcu B prestavim v vrstico na podlagi edinstvenega ID-ja vezana nanj v stolpcu A. Formula, ki se uporablja za identifikacijo edinstvenih ID-jev, je: =INDEX($A$2:$A$13409, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$13409), 0)). Formula, ki se uporablja za transponiranje, je: =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/A"). Oboje podano v članku, le malo spremenjeno.

Težava je v tem, da ima moj nabor podatkov v stolpcu B dvojnike, ki se včasih pojavljajo drug za drugim, in moram, da so vse vrednosti v stolpcu predstavljene v vrsticah.

Priložena slika je tisto, kar bi rad prikazal v tabeli (to je majhen vzorec, pravi nabor podatkov ima več kot 13,000 vnosov). Zdaj se dogaja, da ko se naleti na ponovljeno vrednost, je ne bo štela.
tj. vrstica 9 za ID 11980 zdaj prikazuje samo 0 -31.79 -0.19 -0.74 N/AN/A .... ko je namesto tega potrebno prikazati 0 0 -31.79 -0.19 -0.74 0 0 N/AN/A . ...

Ali obstaja način, kako to težavo zaobiti in jo rešiti?

Hvala vnaprej!
Ta komentar je moderator na spletnem mestu minimiziral
Ste kdaj dobili odgovor/rešitev na ta izziv? jaz imam enakega.
Ta komentar je moderator na spletnem mestu minimiziral
Imam nabor podatkov, ki ima 3 stolpce, predstavljene spodaj:



Stolpec A Stolpec B Stolpec C



Država1 Leto1 Vrednost1

Država1 Leto2 Vrednost2

Država1 Leto3 Vrednost3,



Država2 Leto1 Vrednost1

Država2 Leto3 Vrednost3,

...........



Te 3 stolpce moram združiti v tabeli, kot je ta:

Leto1 Leto2 Leto3 ................................. LetoX



Država1 Vrednost1 Vrednost2 Vrednost3

Država2 Vrednost1 #Manjkajoča vrednost3

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

CountryX Valuex .................





Težava, s katero se soočam, je, da za nekatere podatke v stolpcu A nimam vrednosti za vsako leto, samo za nekatere. (Na primer država 2 ima manjkajoče vrednosti za leto 2)





Ali obstaja način, kako to težavo zaobiti in jo rešiti?



Hvala vnaprej!
Ta komentar je moderator na spletnem mestu minimiziral
ali lahko prosim delite kodo, če je treba kopirati 2 stolpca namesto 1. Spodaj je primer.
Tu še ni objavljenih komentarjev
Obremenitev Več
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL