Ga naar hoofdinhoud

Hoe matrixstijltabel naar drie kolommen in Excel te converteren?

Auteur: Xiaoyang Laatst gewijzigd: 2020-05-26

Stel dat je een tabel in matrixstijl hebt die kolomkoppen en rijkoppen bevat, en nu zou je deze stijltabel willen converteren naar een tabel met drie kolommen, het wordt ook wel een lijsttabel genoemd zoals in het onderstaande screenshot, heb je dan goede manieren om dit op te lossen? probleem in Excel?

Converteer matrixstijltabel naar lijst met draaitabel

Converteer matrixstijltabel naar lijst met VBA-code

Converteer matrixstijltabel naar lijst met Kutools voor Excel

doc zet matrix om naar lijst 1


In Excel is er geen directe functie voor ons om de tabel met matrixstijlen om te zetten naar een tabel met drie kolommen, maar als u bekend bent met draaitabel, kan dit u een plezier doen. Voer de volgende stappen uit:

1. Activeer uw werkblad dat u wilt gebruiken en houd vervolgens ingedrukt Alt + Den druk vervolgens op P in het toetsenbord, in de pop-out Draaitabel en draaigrafiekwizard dialoogvenster, selecteer Meerdere consolidatiebereiken onder de Waar zijn de gegevens die u wilt analyseren sectie en kies vervolgens Draaitabel onder de Wat voor soort rapport wilt u maken sectie, zie screenshot:

doc zet matrix om naar lijst 2

2. Dan klikken Volgende knop, in de Stap 2a van 3 wizard, selecteer het Ik zal de paginavelden maken optie, zie screenshot:

doc zet matrix om naar lijst 3

3. Blijf klikken Volgende knop, in de Stap 2b van 3 wizard, klik doc zet matrix om naar lijst 5 om het gegevensbereik te selecteren dat u wilt converteren, en klik vervolgens op Toevoegen knop om het gegevensbereik toe te voegen aan het Alle reeksen keuzelijst, zie screenshot:

doc zet matrix om naar lijst 4

4. En klik op Volgende knop, in Stap 3 van 3 wizard, selecteer een locatie voor de draaitabel zoals u wilt.

doc zet matrix om naar lijst 6

5. Dan klikken Finish knop, is er in één keer een draaitabel gemaakt, zie screenshot:

doc zet matrix om naar lijst 7

6. Dubbelklik in de draaitabel op de kruisende cel van het Grand Total, in dit geval dubbelklik ik op de cel F22 en het genereert een tabel met drie kolommen zoals in de volgende schermafbeelding:

doc zet matrix om naar lijst 8

7. En tot slot kunt u het tabelformaat converteren naar het normale bereik door de tabel te selecteren en vervolgens te kiezen tafel > Converteren naar bereik zie screenshot vanuit het contextmenu:

doc zet matrix om naar lijst 9


Als je de eerste methode niet leuk vindt, kan de volgende VBA-code je ook helpen.

1. pers Alt + F11 om de Microsoft Visual Basic voor toepassingen venster.

2. Klik in het venster op Invoegen > Module om een ​​nieuw modulevenster weer te geven, kopieer en plak vervolgens de volgende VBA-code in het modulevenster.

VBA-code: converteer matrixstijltabel naar lijst

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. Druk vervolgens op F5 sleutel om deze code uit te voeren, en er verschijnt een promptvenster waarin u de kolomlabels van de gegevens kunt selecteren, zie screenshot:

doc zet matrix om naar lijst 10

4. En klik vervolgens op OK knop, selecteer in het volgende promptvenster de rijlabels, zie screenshot:

doc zet matrix om naar lijst 11

5. Blijf klikken OKen selecteer vervolgens het gegevensbereik exclusief de kolom- en rijkoppen in het promptvenster, zie screenshot:

doc zet matrix om naar lijst 12

6. En klik vervolgens op OK, selecteer in dit dialoogvenster een cel waarin u het resultaat wilt lokaliseren. Zie screenshot:

doc zet matrix om naar lijst 13

7. Klik ten slotte op OK, en je krijgt meteen een tabel met drie kolommen.


Beide bovenstaande methoden zijn enigszins lastig, hier zal ik u op een eenvoudige manier introduceren - Kutools for Excel, Met Transponeer tafelafmetingen functie, kunt u snel converteren tussen een matrix van cellen en een lijsttabel.

Kutools for Excel : met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen

Na het installeren van Kutools for Excelgaat u als volgt te werk:

1. Klikken Kutools > RANGE > Transponeer tafelafmetingen, zie screenshot:

2. In de Transponeer tafelafmetingen dialoog venster:

(1.) Kies Kruis de tafel naar de lijst optie onder Type transponeren.

(2.) En klik dan doc zet matrix om naar lijst 5 knop onder Bronbereik om het gegevensbereik te selecteren dat u wilt converteren.

(3.) Klik vervolgens doc zet matrix om naar lijst 5 knop onder Resultaten bereik om een ​​cel te selecteren waarin u het resultaat wilt plaatsen.

doc zet matrix om naar lijst 15

3. En klik vervolgens op OK knop, en je krijgt het volgende resultaat inclusief de originele celopmaak:

doc zet matrix om naar lijst 16

Met dit hulpprogramma kunt u ook converteer platte lijsttabel naar tweedimensionale kruistabel.

Om meer te weten over deze Transpose Table Dimensions-functie.

Download en gratis proef Kutools voor Excel nu!


Kutools for Excel: met meer dan 300 handige Excel-invoegtoepassingen, gratis te proberen zonder beperking in 30 dagen. Download en probeer nu gratis!

Beste Office-productiviteitstools

🤖 Kutools AI-assistent: Een revolutie teweegbrengen in de data-analyse op basis van: Intelligente uitvoering   |  Genereer code  |  Aangepaste formules maken  |  Analyseer gegevens en genereer grafieken  |  Roep Kutools-functies aan...
Populaire functies: Zoek, markeer of identificeer duplicaten   |  Verwijder lege rijen   |  Combineer kolommen of cellen zonder gegevens te verliezen   |   Ronde zonder formule ...
Super opzoeken: Meerdere criteria VLookup    VLookup met meerdere waarden  |   VOpzoeken over meerdere bladen   |   Fuzzy opzoeken ....
Geavanceerde vervolgkeuzelijst: Maak snel een vervolgkeuzelijst   |  Afhankelijke vervolgkeuzelijst   |  Multi-select vervolgkeuzelijst ....
Kolom Beheerder: Voeg een specifiek aantal kolommen toe  |  Kolommen verplaatsen  |  Schakel de zichtbaarheidsstatus van verborgen kolommen in  |  Vergelijk bereiken en kolommen ...
Uitgelichte functies: Raster focus   |  Ontwerpweergave   |   Grote formulebalk    Werkmap- en bladbeheer   |  resource Library (Auto-tekst)   |  Datumkiezer   |  Combineer werkbladen   |  Cellen coderen/decoderen    Stuur e-mails per lijst   |  Super filter   |   Speciaal filter (filter vet/cursief/doorhalen...) ...
Top 15 gereedschapsets12 Tekst Tools (toe te voegen tekst, Tekens verwijderen, ...)   |   50+ tabel Types (Gantt Chart, ...)   |   40+ Praktisch Formules (Bereken leeftijd op basis van verjaardag, ...)   |   19 Invoeging Tools (QR-code invoegen, Afbeelding invoegen vanaf pad, ...)   |   12 Camper ombouw Tools (Getallen naar woorden, Currency Conversion, ...)   |   7 Samenvoegen en splitsen Tools (Geavanceerd Combineer rijen, Gespleten cellen, ...)   |   ... en meer

Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie als nooit tevoren. Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en tijd te besparen.  Klik hier om de functie te krijgen die u het meest nodig heeft...

Omschrijving


Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert honderden muisklikken voor u elke dag!
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