Ugrás a tartalomra

Hogyan lehet átalakítani a mátrix stílusú táblázatot három oszlopra az Excelben?

Tegyük fel, hogy van egy mátrix stílusú táblázata, amely oszlopfejléceket és sorfejléceket tartalmaz, és most ezt a stílustáblát három oszloptáblává kívánja konvertálni, és a következő táblázat szerint a táblázat táblának is nevezte, van-e jó módja ennek megoldására probléma az Excelben?

Konvertálja a mátrix stílusú táblázatot listára a PivotTable segítségével

Konvertálja a mátrix stílusú táblázatot VBA kóddal ellátott listára

Konvertálja a mátrixstílusú táblázatot listává a Kutools for Excel segítségével

doc konvertálja a mátrixot az 1. listára


Az Excel programban nincs közvetlen funkció arra, hogy a mátrix stílusú táblázatot három oszloptáblává alakítsuk át, de ha ismeri a PivotTable-t, akkor ez jót tehet Önnek. Kérjük, tegye a következőket:

1. Aktiválja a használni kívánt munkalapot, majd tartsa lenyomva Alt + D, majd nyomja meg a gombot P a billentyűzetben, a kiugrottban PivotTable és PivotChart varázsló párbeszédablakban válassza ki Több konszolidációs tartomány alatt a Hol vannak az elemezni kívánt adatok szakaszban, majd válassza a lehetőséget Pivot tábla alatt a Milyen jelentést szeretne létrehozni szakasz, lásd a képernyőképet:

doc konvertálja a mátrixot az 2. listára

2. Ezután kattintson Következő gombra, a 2 / 3a lépés varázsló, válassza ki a Létrehozom az oldalmezőket opció, lásd a képernyőképet:

doc konvertálja a mátrixot az 3. listára

3. Kattintson a gombra Következő gombra, a 2b / 3 lépés varázsló, kattintson doc konvertálja a mátrixot az 5. listára gombbal válassza ki a konvertálni kívánt adattartományt, majd kattintson a gombra hozzáad gomb az adattartomány hozzáadásához a Minden tartomány lista mező, lásd a képernyőképet:

doc konvertálja a mátrixot az 4. listára

4. és kattintson Következő gomb, be Az 3 3 lépése varázsló, válassza ki a kívánt helyet az elfordulási táblának.

doc konvertálja a mátrixot az 6. listára

5. Ezután kattintson befejez gomb, egyszerre egy pivot tábla készült, lásd a képernyőképet:

doc konvertálja a mátrixot az 7. listára

6. Az elfordulási táblázatban kattintson duplán a Végösszeg metsző cellájára, ebben az esetben duplán kattintok az F22 cellára, és ez egy három oszlopos táblázatot generál a következő képernyőkép szerint:

doc konvertálja a mátrixot az 8. listára

7. Végül pedig átalakíthatja a tábla formátumát a normál tartományba a táblázat kiválasztásával, majd a választással Táblázat > Átalakítás tartományra a helyi menüből lásd a képernyőképet:

doc konvertálja a mátrixot az 9. listára


Ha nem tetszik az első módszer, a következő VBA-kód is segíthet.

1. nyomja meg Alt + F11 megjeleníteni a Microsoft Visual Basic for Applications ablak.

2. Az ablakban kattintson a gombra betétlap > Modulok új modulablak megjelenítéséhez másolja és illessze be a következő VBA kódot a modulablakba.

VBA-kód: A mátrixstílus-táblázat konvertálása listává

Sub ConvertTable()
'Update 20150512
Dim Rng As Range
Dim cRng As Range
Dim rRng As Range
Dim xOutRng As Range
xTitleId = "KutoolsforExcel"
Set cRng = Application.InputBox("Select your Column labels", xTitleId, Type:=8)
Set rRng = Application.InputBox("Select Your Row Labels", xTitleId, Type:=8)
Set Rng = Application.InputBox("Select your data", xTitleId, Type:=8)
Set outRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set xWs = Rng.Worksheet
k = 1
xColumns = rRng.Column
xRow = cRng.Row
For i = Rng.Rows(1).Row To Rng.Rows(1).Row + Rng.Rows.Count - 1
    For j = Rng.Columns(1).Column To Rng.Columns(1).Column + Rng.Columns.Count - 1
        outRng.Cells(k, 1) = xWs.Cells(i, xColumns)
        outRng.Cells(k, 2) = xWs.Cells(xRow, j)
        outRng.Cells(k, 3) = xWs.Cells(i, j)
        k = k + 1
    Next j
Next i
End Sub

3. Ezután nyomja meg a gombot F5 kulcs a kód futtatásához, és megjelenik egy prompt doboz, amely lehetővé teszi az adatok oszlopcímkéinek kiválasztását, lásd a képernyőképet:

doc konvertálja a mátrixot az 10. listára

4. Kattintson a gombra OK gomb, a következő prompt mezőben válassza ki a sorcímkéket, lásd a képernyőképet:

doc konvertálja a mátrixot az 11. listára

5. Kattintson a gombra OK, majd válassza ki az adattartományt az oszlop- és sorfejlécek kivételével a prompt mezőben, lásd a képernyőképet:

doc konvertálja a mátrixot az 12. listára

6. Kattintson a gombra OK, ebben a párbeszédpanelen válasszon egy cellát, ahol meg akarja találni az eredményt. Lásd a képernyőképet:

doc konvertálja a mátrixot az 13. listára

7. Végül kattintson OK, és egyszerre három oszlopos táblázatot kap.


Mindkét fenti módszer kissé zavaró, itt egy egyszerű módszert mutatok be - Kutools az Excel számára, Annak Tegye át a táblázat méreteit funkcióval gyorsan konvertálhat egy cellamátrixot és egy listatáblát.

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. Kattints Kutools > Választék > Tegye át a táblázat méreteit, lásd a képernyőképet:

2. Az Tegye át a táblázat méreteit párbeszédablak:

(1.) Válasszon Keresztasztal a felsoroláshoz opció alatt Átültetés típusa.

(2.) Ezután kattintson doc konvertálja a mátrixot az 5. listára gomb alatt Forrás tartomány a konvertálni kívánt adattartomány kiválasztásához.

(3.) Ezután kattintson doc konvertálja a mátrixot az 5. listára gomb alatt Eredménytartomány cella kiválasztásához, ahová az eredményt fel akarja tenni.

doc konvertálja a mátrixot az 15. listára

3. Kattintson a gombra OK gombra, és a következő eredményt kapja, amely tartalmazza az eredeti cella formázást:

doc konvertálja a mátrixot az 16. listára

Ezzel a segédprogrammal Ön is konvertálja a lapos táblázatot 2 dimenziós kereszttáblává.

Ha többet szeretne megtudni erről a táblázatméretek átültetése szolgáltatásról.

Töltse le és ingyenes próbaverziója a Kutools for Excel programhoz most!


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 hatékonyságnövelő eszközök

🤖 Kutools AI Aide: Forradalmasítsa az adatelemzést a következők alapján: Intelligens végrehajtás   |  Kód létrehozása  |  Hozzon létre egyéni képleteket  |  Adatok elemzése és diagramok létrehozása  |  A Kutools funkciók meghívása...
Népszerű szolgáltatások: Ismétlődések keresése, kiemelése vagy azonosítása   |  Üres sorok törlése   |  Oszlopok vagy cellák kombinálása adatvesztés nélkül   |   Kerek Formula nélkül ...
Szuper keresés: Több kritérium VLookup    Többértékű VLookup  |   VLookup több munkalapon   |   Fuzzy Lookup ....
Speciális legördülő lista: Gyors legördülő lista létrehozása   |  Függő legördülő lista   |  Többszörösen válassza ki a legördülő listát ....
Oszlopkezelő: Adjon meg egy adott számú oszlopot  |  Oszlopok mozgatása  |  Kapcsolja be a Rejtett oszlopok láthatósági állapotát  |  Tartományok és oszlopok összehasonlítása ...
Kiemelt funkciók: Rács fókusz   |  Design nézet   |   Nagy Formula bár    Munkafüzet és lapkezelő   |  Erőforrás-könyvtár (Auto szöveg)   |  Dátumválasztó   |  Kombinálja a munkalapokat   |  Cellák titkosítása/dekódolása    E-mailek küldése listánként   |  Szuper szűrő   |   Speciális szűrő (félkövér/dőlt/áthúzott szűrés...) ...
A 15 legjobb eszközkészlet12 szöveg Eszközök (Szöveg hozzáadása, Karakterek eltávolítása,...)   |   50 + Táblázatos Típusai (Gantt-diagram,...)   |   40+ Praktikus képletek (Számolja ki az életkort a születésnap alapján,...)   |   19 beszúrás Eszközök (Helyezze be a QR-kódot, Kép beszúrása az útvonalból,...)   |   12 Átalakítás Eszközök (Számok szavakig, Valuta átváltás,...)   |   7 Egyesítés és felosztás Eszközök (Haladó kombinált sorok, Hasított sejtek,...)   |   ... és több

Töltsd fel Excel-készségeidet a Kutools for Excel segítségével, és tapasztald meg a még soha nem látott hatékonyságot. A Kutools for Excel több mint 300 speciális funkciót kínál a termelékenység fokozásához és az időmegtakarításhoz.  Kattintson ide, hogy megszerezze a leginkább szükséges funkciót...

Leírás


Az Office lap füles felületet hoz 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!
Comments (10)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Thanks for the tips. It's greatly saved my time and manual efforts.
This comment was minimized by the moderator on the site
Anybody know how to do this in a mac?
This comment was minimized by the moderator on the site
Sub ConvertTable_UseThis()

Dim Rng As Range
Dim cRng As Range
Dim rRng As Range
Dim xOutRng As Range
Dim xRng As Range, cRow As Integer, cCol As Integer


xTitleId = "Convert Table"
Set xRng = Application.Selection
Set xRng = Application.InputBox("Please select range:", "Number Range", Selection.Address, , , , , 8)
cRow = xRng.Rows.Count
cCol = xRng.Columns.Count


Set cRng = Range(xRng.Cells(1, 2), xRng.Cells(1, cCol))
Set rRng = Range(xRng.Cells(2, 1), xRng.Cells(cRow, 1))
Set Rng = Range(xRng.Cells(2, 2), xRng.Cells(cRow, cCol))
Set outRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set xWs = Rng.Worksheet
k = 1
xColumns = rRng.Column
xRow = cRng.Row
For i = Rng.Rows(1).Row To Rng.Rows(1).Row + Rng.Rows.Count - 1
For j = Rng.Columns(1).Column To Rng.Columns(1).Column + Rng.Columns.Count - 1
outRng.Cells(k, 1) = xWs.Cells(i, xColumns)
outRng.Cells(k, 2) = xWs.Cells(xRow, j)
outRng.Cells(k, 3) = xWs.Cells(i, j)
k = k + 1
Next j
Next i
End Sub
This comment was minimized by the moderator on the site
For the VBA Code, one seems to really need this:xColumns = cRng.Column
xRow = rRng.Row
This comment was minimized by the moderator on the site
do you have a code with a tweak where the leftmost column of a selection is column labels and the topmost row of a selection is row labels?

Thanks in advance,
This comment was minimized by the moderator on the site
Sub ConvertTable_UseThis()

Dim Rng As Range
Dim cRng As Range
Dim rRng As Range
Dim xOutRng As Range
Dim xRng As Range, cRow As Integer, cCol As Integer


xTitleId = "Convert Table"
Set xRng = Application.Selection
Set xRng = Application.InputBox("Please select range:", "Number Range", Selection.Address, , , , , 8)
cRow = xRng.Rows.Count
cCol = xRng.Columns.Count


Set cRng = Range(xRng.Cells(1, 2), xRng.Cells(1, cCol))
Set rRng = Range(xRng.Cells(2, 1), xRng.Cells(cRow, 1))
Set Rng = Range(xRng.Cells(2, 2), xRng.Cells(cRow, cCol))
Set outRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set xWs = Rng.Worksheet
k = 1
xColumns = rRng.Column
xRow = cRng.Row
For i = Rng.Rows(1).Row To Rng.Rows(1).Row + Rng.Rows.Count - 1
For j = Rng.Columns(1).Column To Rng.Columns(1).Column + Rng.Columns.Count - 1
outRng.Cells(k, 1) = xWs.Cells(i, xColumns)
outRng.Cells(k, 2) = xWs.Cells(xRow, j)
outRng.Cells(k, 3) = xWs.Cells(i, j)
k = k + 1
Next j
Next i
End Sub
This comment was minimized by the moderator on the site
Thanks a Ton, really appreciate the way you have explained. very useful
This comment was minimized by the moderator on the site
Thanks alot for this useful tool
This comment was minimized by the moderator on the site
Thanks, this was exactly what I was looking for. Awesome:)
This comment was minimized by the moderator on the site
what if i have 4 or more column?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations