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

 Hogyan lehet egy oszlop celláit átültetni egy másik oszlop egyedi értékei alapján?

Tegyük fel, hogy van egy adattartománya, amely két oszlopot tartalmaz. Most az egyik oszlop celláit át szeretné helyezni egy másik oszlop egyedi értékei alapján vízszintes sorokba, hogy a következő eredményt kapja. Van valami jó ötlete a probléma megoldására az Excel programban?

doc egyedi értékek átültetése 1

Transzponálja a cellákat egy oszlopba egyedi értékek és képletek alapján

Transzponálja a cellákat egy oszlopba, egyedi értékek alapján, VBA kóddal

A cellákat egyetlen oszlopban helyezze át egyedi értékek alapján a Kutools for Excel programmal


A következő tömbképletekkel kivonhatja az egyedi értékeket és átültetheti azok megfelelő adatait vízszintes sorokba, kérjük, tegye a következőket:

1. Írja be ezt a tömbképletet: = INDEX ($ A $ 2: $ A $ 16, MATCH (0, COUNTIF ($ D $ 1: $ D1, $ A $ 2: $ A $ 16), 0)) egy üres cellába, például D2, és nyomja meg a gombot Shift + Ctrl + Enter gombokat együtt a helyes eredmény eléréséhez, lásd a képernyőképet

doc egyedi értékek átültetése 2

Megjegyzések: A fenti képletben A2: A16 az az oszlop, amelyből fel akarja sorolni az egyedi értékeket, és D1 az e képlet fölötti cella.

2. Ezután húzza le a kitöltő fogantyút a cellákra az összes egyedi érték kibontásához, lásd a képernyőképet:

doc egyedi értékek átültetése 3

3. Ezután adja meg ezt a képletet az E2 cellába: =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), és ne felejtsen el megnyomni Shift + Ctrl + Enter gombokat az eredmény eléréséhez, lásd a képernyőképet:

doc egyedi értékek átültetése 4

Megjegyzések: A fenti képletben: B2: B16 az átültetni kívánt oszlopadatok, A2: A16 az az oszlop, amelyen át szeretné ültetni az értékeket, és D2 tartalmazza az 1. lépésben kivont egyedi értéket.

4. Ezután húzza a kitöltő fogantyút jobbra azon celláktól, amelyekbe fel szeretné sorolni az átültetett adatokat, amíg a 0 meg nem jelenik, lásd a képernyőképet:

doc egyedi értékek átültetése 5

5. Ezután folytassa a kitöltő fogantyú lefelé húzását a cellák tartományába az átültetett adatok megszerzéséhez, az alábbi képernyőkép szerint:

doc egyedi értékek átültetése 6


Lehet, hogy a képletek összetettek, hogy megértsék, itt futtathatja a következő VBA kódot a kívánt eredmény eléréséhez.

1. Tartsa lenyomva a ALT + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modulok Ablak.

VBA kód: Transzponálja a cellákat egy oszlopba egy másik oszlop egyedi értékei alapján:

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. Ezután nyomja meg a gombot F5 kulcs a kód futtatásához, és megjelenik egy prompt doboz, amely emlékezteti Önt a használni kívánt adattartomány kiválasztására, lásd a képernyőképet:

doc egyedi értékek átültetése 7

4. Kattintson a gombra OK gombra, egy újabb prompt doboz jelenik meg, hogy emlékeztesse Önt, hogy válasszon egy cellát az eredmény megadásához, lásd a képernyőképet:

doc egyedi értékek átültetése 8

6. Kattints OK gombra, és a B oszlop adatait átültettük az A oszlop egyedi értékei alapján, lásd a képernyőképet:

doc egyedi értékek átültetése 9


Ha van Kutools az Excel számára, kombinálva a Haladó kombinált sorok és a Hasított sejtek segédprogramok segítségével, gyorsan elvégezheti ezt a feladatot képletek és kód nélkül.

Kutools az Excel számára : több mint 300 praktikus Excel-bővítménnyel, ingyenesen, korlátozás nélkül, 30 nap alatt kipróbálható.

Telepítése után Kutools az Excel számára, kérjük, tegye a következőket:

1. Válassza ki a használni kívánt adattartományt. (Ha meg akarja őrizni az eredeti adatokat, akkor először másolja és illessze be az adatokat egy másik helyre.)

2. Ezután kattintson Kutools > Egyesítés és felosztás > Haladó kombinált sorok, lásd a képernyőképet:

3. Az Kombinálja a sorokat az oszlop alapján párbeszédpanelen tegye a következőket:

(1.) Kattintson arra az oszlopnévre, amely alapján adatokat szeretne átültetni, majd válassza a lehetőséget Elsődleges kulcs;

(2.) Kattintson egy másik oszlopra, amelyet át szeretne ültetni, majd kattintson a gombra Kombájn majd válasszon egy elválasztót az egyesített adatok, például szóköz, vessző, pontosvessző elválasztásához.

doc egyedi értékek átültetése 11

4. Ezután kattintson Ok gombra, a B oszlop adatait egy cellába egyesítettük az A oszlop alapján, lásd a képernyőképet:

doc egyedi értékek átültetése 12

5. Ezután válassza ki az egyesített cellákat, majd kattintson Kutools > Egyesítés és felosztás > Hasított sejtek, lásd a képernyőképet:

6. Az Hasított sejtek párbeszédpanelen válassza ki Oszlopokra osztás alatt a típus opciót, majd válassza ki az elválasztót, amely elválasztja a kombinált adatokat, lásd a képernyőképet:

doc egyedi értékek átültetése 14 14

7. Ezután kattintson Ok gombra, és válasszon egy cellát az osztott eredmény elhelyezéséhez a felbukkanó párbeszédpanelen, lásd a képernyőképet:

doc egyedi értékek átültetése 15

8. Kattints OK, és megkapja az eredményt, amire szüksége van. Lásd a képernyőképet:

doc egyedi értékek átültetése 16

Töltse le és ingyenes próbaverziót Kutools for Excel Now!


Kutools az Excel számára: több mint 300 praktikus Excel-bővítménnyel, ingyenesen, korlátozás nélkül, 30 nap alatt kipróbálható. Töltse le és ingyenes próbaverziót most!

A legjobb irodai termelékenységi eszközök

A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet

  • újrafelhasználás: Gyorsan helyezze be összetett képletek, diagramok és bármi, amit korábban használt; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése az adatok elvesztése nélkül; Osztott cellák tartalma; Kombinálja a duplikált sorokat / oszlopokat... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Több mint 300 hatékony funkció. Támogatja az Office / Excel 2007-2021 és 365 verziókat. Minden nyelvet támogat. Könnyű üzembe helyezés vállalatában vagy szervezetében. Teljes funkciók 30 napos ingyenes próbaverzió. 60 napos pénzvisszafizetési garancia.
kte lap 201905

Az Office fül a füles felületet hozza az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
officetab alja
A megjegyzések rendezése szerint
Hozzászólások (56)
Még nincs értékelés. Legyen Ön az első, aki értékel!
A weboldal moderátora ezt a megjegyzést minimalizálta
Hogyan mennék az ellenkező irányba? Több oszlopból egyetlen oszlopba? Előre is köszönöm! Tim
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez fantasztikus volt. Volt egy excelem, körülbelül 2000 egyedi értékkel az A sorban, és nem tudtam volna megoldani ezt a gyakorlatot az Ön segítsége nélkül. Sok sok köszönet.
A weboldal moderátora ezt a megjegyzést minimalizálta
Maga az első lépés sikertelen =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) Érték nem elérhető hibát ad
A weboldal moderátora ezt a megjegyzést minimalizálta
Én csak az ellenkezőjét akarom csinálni. Mintha már megvan a végeredmény, és szeretném elérni az első lépést.
A weboldal moderátora ezt a megjegyzést minimalizálta
Ugyanezt keresem
A weboldal moderátora ezt a megjegyzést minimalizálta
Találtál valami megoldást az ellenkező forgatókönyvre? Kösz!
A weboldal moderátora ezt a megjegyzést minimalizálta
Én ennek az ellenkezőjét is szeretném csinálni. Van valami megoldás uraim?
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló srácok,
A cikk példája alapján ellenkező eredmény eléréséhez alkalmazza a következő VBA-kódot: (Megjegyzés: Amikor kiválasztja az átültetni kívánt adattartományt, kérjük, zárja ki a fejlécsort)

Sub TransposeUnique_2()
Dim xLRow, xLCount As Long
Dim xrg mint tartomány
Dim xOutRg As Range
Dim xObjRRg 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("válasszon adattartományt:", "Kutools for Excel", xTxt, , , , , 8)
Set xRg = Application.Intersect(xRg, xRg.Worksheet.Used Range)
Ha az xRg semmi, akkor lépjen ki a Subból
Ha (xRg.Rows.count < 2) vagy _
(xRg.Areas.count > 1) Ezután
MsgBox "Érvénytelen kijelölés", , "Kutools for Excel"
Exit Sub
Ha véget
Set xOutRg = Application.InputBox("kérjük, válassza ki a kimeneti tartományt (adjon meg egy cellát):", "Kutools for Excel", xTxt, , , , , 8)
Ha az xOutRg semmi, akkor lépjen ki a Subból
Application.ScreenUpdating = Hamis
xLCount = xRg.Columns.count
Ha xLRow = 1 - xRg.Rows.count
Állítsa be az xObjRRg = Tartomány(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Művelet:=xlNincs, SkipBlanks:=Hamis, Transpone:=Igaz
Application.CutCopyMode = Hamis
Tartomány(Cells(xOutRg.Row, xOutRg.Oszlop), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Érték = xRg.Cells(xLRow, 1).Érték
Állítsa be az xOutRg = xOutRg.Offset(Soreltolás:=xObjRRg.count)
Következő
Application.ScreenUpdating = Igaz
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Hogyan kell végrehajtani a transzponálást, ha a B oszlopnak nincsenek egyedi értékei, de szükségük van ezekre az értékekre
KTE 100
KTE 100
Feltéve, hogy két különböző tranzakcióról van szó
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Didin!

Leírnád pontosabban vagy részletesebben a problémádat?
Beszúrhat egy példa képernyőképet a problémára.
Köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,
Kérem, segítsen nekem az alábbi követelményben.
Termék ----- rendelés
KTE ------ 100KTE ------ 200KTO ------ 300KTO ------ 300
várható kimenet
Termék ----- rendelés ----- rendelés ------ rendelés
KTE ------ 100 ------ 200
KTO ------ 300 ------ 300







A weboldal moderátora ezt a megjegyzést minimalizálta
Nekem is hasonló kell. 100-at akarok kétszer megjeleníteni, ha ott van az adatokban
A weboldal moderátora ezt a megjegyzést minimalizálta
Tudnátok erre valami képletet ajánlani
A weboldal moderátora ezt a megjegyzést minimalizálta
Kaptál valaha választ/megoldást erre a kihívásra? nekem ugyanilyen van.
A weboldal moderátora ezt a megjegyzést minimalizálta
Van erre fordított mód? Vagyis az adatok változó hosszúságú sorokban, és így két oszlopba rendezve? Lásd mellékelve.
A weboldal moderátora ezt a megjegyzést minimalizálta
duplikált értékeket is szeretnék átültetni (minden érték - egyedi + ismétlődő), és nem csak egyedi értékeket. Meg tudod adni a képletet is.
A weboldal moderátora ezt a megjegyzést minimalizálta
Ugyanez kell nekem
A weboldal moderátora ezt a megjegyzést minimalizálta
Kaptál valaha választ/megoldást erre a kihívásra? nekem ugyanilyen van.
A weboldal moderátora ezt a megjegyzést minimalizálta
Az alábbi képlettel:

=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)

Hogyan transzponálhatom át az adatokat hozzávetőleges egyezések használatával? Tegyük fel, hogy szeretném kivonni a B oszlopból az összes olyan értéket, amely megfelel az A oszlop első 9 karakterének/számjegyének? A B oszlop 11 karakterből áll, míg az A csak 9. köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Ennek pontosan az ellenkezőjét kell tennem. Sok oszlopom van egy sorazonosítóhoz társítva, és két oszlopba szeretném beilleszteni őket
nekem például van
sorazonosító, érték, érték1, érték2, érték3, érték4, érték..225
100, Dolphin, 255, 9--, Sarah, jameson, ....
179, Router, árvíz, jason, 89, orr



Azt akarom, hogy így nézzen ki
100, Delfin
100, 255
100, 9--
100, Sarah
100, jaemeson
179, Router
179, árvíz
179, Jason
179, 89
179, orr
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Dave,
A probléma megoldásához használja az alábbi VBA-kódot: (Megjegyzés: Amikor kiválasztja az átültetni kívánt adattartományt, kérjük, zárja ki a fejlécsort.)

Sub TransposeUnique_2()
Dim xLRow, xLCount As Long
Dim xrg mint tartomány
Dim xOutRg As Range
Dim xObjRRg 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("válasszon adattartományt:", "Kutools for Excel", xTxt, , , , , 8)
Set xRg = Application.Intersect(xRg, xRg.Worksheet.Used Range)
Ha az xRg semmi, akkor lépjen ki a Subból
Ha (xRg.Rows.count < 2) vagy _
(xRg.Areas.count > 1) Ezután
MsgBox "Érvénytelen kijelölés", , "Kutools for Excel"
Exit Sub
Ha véget
Set xOutRg = Application.InputBox("kérjük, válassza ki a kimeneti tartományt (adjon meg egy cellát):", "Kutools for Excel", xTxt, , , , , 8)
Ha az xOutRg semmi, akkor lépjen ki a Subból
Application.ScreenUpdating = Hamis
xLCount = xRg.Columns.count
Ha xLRow = 1 - xRg.Rows.count
Állítsa be az xObjRRg = Tartomány(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)
xObjRRg.Copy
xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Művelet:=xlNincs, SkipBlanks:=Hamis, Transpone:=Igaz
Application.CutCopyMode = Hamis
Tartomány(Cells(xOutRg.Row, xOutRg.Oszlop), Cells(xOutRg.Row + xObjRRg.count - 1, xOutRg.Column)).Érték = xRg.Cells(xLRow, 1).Érték
Állítsa be az xOutRg = xOutRg.Offset(Soreltolás:=xObjRRg.count)
Következő
Application.ScreenUpdating = Igaz
End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Köszönöm, tökéletesen működik, megspóroltál 2 napot! :)
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Skyyang!
kérjük, ossza meg 3 oszlop kódját. Alább látható a példa:
Olyan adatokat szeretnék kérni, mint: yogesh@gmail.com közösség 1 csak közösség 2 megtekintés ...... goyal@gmail.com közösség 1 csak közösség 2 megtekintés csak ........

A weboldal moderátora ezt a megjegyzést minimalizálta
szia ygoyal,

A probléma megoldásához használja az alábbi kódot:

Sub TransposeUnique_2()

Dim xLRow, xLCount As Long

Dim xrg mint tartomány

Dim xOutRg As Range

Dim xObjRRg As Range

Dim xTxt As String

Dim xCount As Long

Dim xVRg As Range

Dim xC, xI, xI1, xI2 egész számként

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("válasszon adattartományt:", "Kutools for Excel", xTxt, , , , , 8)

Set xRg = Application.Intersect(xRg, xRg.Worksheet.Used Range)

Ha az xRg semmi, akkor lépjen ki a Subból

Ha (xRg.Rows.Count < 2) vagy _

(xRg.Areas.Count > 1) Ezután

MsgBox "Érvénytelen kijelölés", , "Kutools for Excel"

Exit Sub

Ha véget

Set xOutRg = Application.InputBox("kérjük, válassza ki a kimeneti tartományt (adjon meg egy cellát):", "Kutools for Excel", xTxt, , , , , 8)

Ha az xOutRg semmi, akkor lépjen ki a Subból

Application.ScreenUpdating = Hamis

xLCount = xRg.Columns.Count

Ha xLRow = 1 - xRg.Rows.Count

Állítsa be az xObjRRg = Tartomány(xRg.Cells(xLRow, 2), xRg.Cells(xLRow, xLCount)).SpecialCells(xlCellTypeConstants)

On Error Resume Next

xC = (xObjRRg.Count 2. mód)

Ha xC <> 0 Akkor

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

Más

xC = Int(xObjRRg.Count / 2)

Ha véget

xI1 = 1

xI2 = 2

Ha xI = 1 - xC

Tartomány(xObjRRg.Item(xI1), xObjRRg.Item(xI2)).Másolás

xOutRg.Offset(, 1).PasteSpecial Paste:=xlPasteAll, Művelet:=xlNincs, SkipBlanks:=Hamis, Transpone:=Hamis

Application.CutCopyMode = Hamis

xOutRg.Value = xRg.Cells(xLRow, 1).Érték

Beállítva xOutRg = xOutRg.Offset(Soreltolás:=1)

xI1 = xI1 + (2)

xI2 = xI2 + (2)

Következő

Következő

Application.ScreenUpdating = Igaz

End Sub



Próbáld ki, remélem tud segíteni!
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló tesó! A kód ellenkezőleg működik. Kérjük, tekintse meg a mellékelt képernyőképet a követelményről. A rendelkezésre álló adatok soronkéntiak, és az adatokat oszlopokba kívánják transzponálni.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Ygoyal
Elnézést a késői válaszért, kérjük, használja az alábbi kódot, próbálja ki!

Subtransposeunique()

'frissítés Extendoffice

Dim xLRow As Long

Dim i olyan hosszú

Dim xCrit As String

Dim xCol Új kollekcióként

Dim xrg mint tartomány

Dim xOutRg As Range

Dim xTxt As String

Dim xCount As Long

Dim xVRg As Range

Dim xFRg, xSRg, xCRg As Range

On Error Resume Next

xTxt = ActiveWindow.RangeSelection.Address

Set xRg = Application.InputBox("kérjük, válasszon adattartományt (csak 3 oszlop):", "Kutools for Excel", xTxt, , , , , 8)

Set xRg = Application.Intersect(xRg, xRg.Worksheet.Used Range)

Ha az xRg semmi, akkor lépjen ki a Subból

If (xRg.Columns.Count <> 3) vagy _

(xRg.Areas.Count > 1) Ezután

MsgBox "a használt tartomány csak egy terület két oszloppal", , "Kutools for Excel"

Exit Sub

Ha véget

Set xOutRg = Application.InputBox("kérjük, válassza ki a kimeneti tartományt (adjon meg egy cellát):", "Kutools for Excel", xTxt, , , , , 8)

Ha az xOutRg semmi, akkor lépjen ki a Subból

Állítsa be az xOutRg = xOutRg.Range(1)

xLRow = xRg.Rows.Count

Ha i = 2 - xLRow

xCol.Add xRg.Cells(i, 1).Érték, xRg.Cells(i,1).Érték

Következő

Application.ScreenUpdating = Hamis

Application.ScreenUpdating = Hamis

Ha i = 1 - xCol.Count

xCrit = xCol.Item(i)

xOutRg.Offset(i, 0) = xCrit

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

Állítsa be az xVRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVissible)

Ha xVRg.Count > xCount Akkor xCount = xVRg.Count

Állítsa be az xSRg = xRg.Range("B2:B" & xLRow).SpecialCells(xlCellTypeVissible)

Beállítva xCRg = xOutRg.Offset(i, 1)

Minden xFRg In xSRg

xFRg.Copy

xCRg.PasteSpecial

xRg.Range("B1").Másolás

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

xFRg.Eltolás(0, 1).Másolás

Beállítva xCRg = xCRg.Eltolás(0, 1)

xCRg.PasteSpecial

xRg.Range("c1").Másolás

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

Beállítva xCRg = xCRg.Eltolás(0, 1)

Következő

Application.CutCopyMode = Hamis

Következő

xRg.Elem(1).Másolás

xOutRg.PasteSpecial

xRg.AutoFilter

Application.ScreenUpdating = Igaz

End Sub
A weboldal moderátora ezt a megjegyzést minimalizálta
Hé, tesó, megpróbáltam használni ezt a kódot, de az Excel lefagy, amikor futtatom ezt a kódot, és nem látom a fenti kód kimenetét. kérem, javasolja, mit tegyen ebben az esetben.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia,
A kód jól működik a munkafüzetemben, melyik Excel verziót használja?
A weboldal moderátora ezt a megjegyzést minimalizálta
MS Excel 2016
A weboldal moderátora ezt a megjegyzést minimalizálta
A kód jól működik az Excel 2016-ban is, kérjük, először próbálja meg kis tartományú adatokkal.
A weboldal moderátora ezt a megjegyzést minimalizálta
160 rekordon teszteltem, de abban még mindig ott volt a másolat.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Skyyang, tetszik, van rá esély, hogy négy oszlopon működjön? ismét csak az első kettőt használjuk összehasonlítóként, vagy ami még jobb, hogy kijelöljük az oszlopok számát? Megnéztem a forgatókönyvedet, de fogalmam sem volt, hogyan érhetem el...
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Skyyang, tetszik, van rá esély, hogy négy oszlopon működjön? ismét csak az első kettőt használjuk összehasonlítóként, vagy ami még jobb, hogy kijelöljük az oszlopok számát? Megnéztem a forgatókönyvedet, de fogalmam sem volt, hogyan érhetem el...
A weboldal moderátora ezt a megjegyzést minimalizálta
Testvér, kérlek segíts ebben.
A weboldal moderátora ezt a megjegyzést minimalizálta
Helló tesó, továbbra is várom a segítségedet
A weboldal moderátora ezt a megjegyzést minimalizálta
A weboldal moderátora ezt a megjegyzést minimalizálta
Ugyanúgy, mint Dave, nekem pont az ellenkezőjét kell tennem. 2. táblázat az 1. táblázatba átültetendő. 2. bemeneti táblázat, 1. kimeneti táblázat.
A weboldal moderátora ezt a megjegyzést minimalizálta
=INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) működött, hogy egy oszlop egyedi értékeit egy újba transzponáljam oszlop DE...van olyan mód, hogy rendezési függvényben reklámozzuk úgy, hogy a létrehozott új oszlopot növekvő sorrendben transzponáljuk?


Köszönjük!
A weboldal moderátora ezt a megjegyzést minimalizálta
Ugyanezt kell kiadni, de az előre definiált oszlopok kijelöléséhez ($A,$B), és a kimeneti oszlop pozíciója a $D$1 helyen kell lennie.
Ha valakinek van ötlete az nagy segítség lenne!!!!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia, hozzáadhatunk-e minden sort, és a kimenetet egy oszlopban adhatjuk meg a fenti funkcióval.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szóval egy cégnél dolgozom. Vannak olyan oszlopaink, ahol olyan információk találhatók, mint a vezetéknév, keresztnév, rang, szakasz, telefonszám, cím. Van-e mód arra, hogy egy hasonló képlet segítségével a teljes információsort nevek alapján egy oszlopba transzponáljam?
A weboldal moderátora ezt a megjegyzést minimalizálta
Az =INDEX($A$2:$A$16, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) működött az A oszlop egyedi értékeinek átültetésében egy újba oszlop DE... van mód arra, hogy a B oszlopban lévő összes értéket az alábbiak szerint transzponáljuk:

Termék rendelés dátuma Termék rendelés rendelés rendelés rendelés rendelés rendelés rendelés
KTE 100 3. KTE 3 2019 100 100 100 200 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
BOT 150 3
BOT 100 3
KTO 100 3
KTE 200 3
BOT 200 3
COD 200 3
KTE 100 3
KTO 150 3
BOT 150 3
KTE 150 3
COD 150 3
BOT 100 3
BOT 200 3
COD 100 3
KTO 200 3
COD 150 3
KTE 100 3
A weboldal moderátora ezt a megjegyzést minimalizálta
A makró nem működött. Csak átmásolta az A1 cella tartalmát.
A weboldal moderátora ezt a megjegyzést minimalizálta
Van egy adatkészletem az A (egyedi azonosító) – E oszlopokban. Minden sor az ID# alapján tartalmaz adatokat, minden ID#-hoz több sor tartozik, de ID#-onként egy sort szeretnék, az összes többi adattal az oszlopokban ( legalább 5 oszlopból, maximum 25 oszlopból állna attól függően, hogy hány egyedi azonosítóval rendelkezik). Találtam egy kódot, de csak két oszlopra működik. Össze kellett kapcsolnom a négy oszlopot (az azonosító nélkül), majd a makró futtatása után el kell határolnom (sok munka). 15,000 XNUMX adatsor esetén ez extra időigényes. Van olyan végtelen oszlopmakró, amely működne? Előre is köszönöm mindenkinek a segítséget!
ID KÓD ST KÓD# DÁTUM
A weboldal moderátora ezt a megjegyzést minimalizálta
Van egy adatkészletem, amelynek több azonosítója van az A oszlopban, és összekapcsolt adatokat a B oszlopban. A fenti képletet használtam, és egy kicsit módosítottam, hogy a B oszlop celláit az egyedi azonosító alapján egy sorba transzponáljam. hozzá van kötve az A oszlopban. Az egyedi azonosítók azonosítására használt képlet a következő: =INDEX($A$2:$A$13409, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$13409), 0)). A transzponáláshoz használt képlet a következő: =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"). Mindkettő szerepel a cikkben, csak kis mértékben módosítva.

A probléma az, hogy a B oszlopban lévő adatkészletemben duplikációk vannak, amelyek néha egymás után jelennek meg, és az oszlopban lévő összes értéket meg kell jeleníteni a sorokban.

A mellékelt képen szeretném, ha a táblázat megjelenne (ez egy kis mintaméret, a valódi adatkészlet több mint 13,000 XNUMX bejegyzést tartalmaz). Most az történik, hogy amikor ismétlődő értékkel találkozunk, akkor azt nem számolja.
azaz a 9. sor az 11980-as azonosítóhoz most csak 0 -31.79 -0.19 -0.74 N/AN/A .... amikor helyette 0 0 -31.79 -0.19 -0.74 0 0 N/AN/A kell. ...

Van mód a probléma megkerülésére és megoldására?

Előre is köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Kaptál valaha választ/megoldást erre a kihívásra? nekem ugyanilyen van.
A weboldal moderátora ezt a megjegyzést minimalizálta
Van egy adatkészletem, amely az alábbiakban 3 oszlopot tartalmaz:



A oszlop B oszlop C oszlop



Ország1 Év1 Érték1

Ország1 Év2 Érték2

Ország1 Év3 Érték3,



Ország2 Év1 Érték1

Ország2 Év3 Érték3,

...........



Ezt a 3 oszlopot össze kell vonnom egy ilyen táblázatban:

év 1 év 2 év 3 ................................... ÉvX



Ország1 Érték1 Érték2 Érték3

Ország2 érték1 #Hiányzó érték3

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

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





Az a probléma, amellyel szembesülök, hogy az A oszlop egyes adatainál nem minden évre vonatkozóan vannak értékeim, csak bizonyos esetekben. (Például a 2. országból hiányoznak a 2. év értékei.)





Van mód a probléma megkerülésére és megoldására?



Előre is köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
megosztaná a kódot, ha 2 helyett 1 oszlopot kell másolni. lent a példa.
Még senki sem írt megjegyzést
Több ingatlan
Hagyja meg észrevételeit
Feladás vendégként
×
Értékeld ezt a bejegyzést:
0   Karakterek
Javasolt helyek

Kövess minket

Copyright © 2009 - www.extendoffice.com. | Minden jog fenntartva. Powered by ExtendOffice. | Oldaltérkép
A Microsoft és az Office logó a Microsoft Corporation védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és / vagy más országokban.
Sectigo SSL védi