Salt la conținutul principal

Cum se convertește tabelul de stil matricial în trei coloane în Excel?

Autor: Xiaoyang Ultima modificare: 2020-05-26

Presupunând că aveți un tabel în stil matricial care conține titluri de coloane și titluri de rânduri, iar acum doriți să convertiți acest tabel de stil în trei tabele de coloane, acesta se numește și tabel listă după cum se arată în următoarea captură de ecran, aveți vreo modalitate bună de a rezolva acest lucru problemă în Excel?

Convertiți tabelul de stil matricial în listă cu PivotTable

Convertiți tabelul de stil matricial în listă cu cod VBA

Convertiți tabelul de stil matricial în listă cu Kutools pentru Excel

doc convertește matricea în lista 1


În Excel, nu există o caracteristică directă pentru noi de a converti tabelul de stil matricial în tabel cu trei coloane, dar, dacă sunteți familiarizat cu tabelul pivot, vă poate face o favoare. Vă rugăm să efectuați pașii următori:

1. Activați foaia de lucru pe care doriți să o utilizați, apoi țineți apăsat Alt + D, apoi apăsați P în tastatură, în pop-out PivotTable și PivotChart Wizard , selectați Intervalele multiple de consolidare în temeiul Unde sunt datele pe care doriți să le analizați secțiune, apoi alegeți Masă rotativă în temeiul Ce fel de raport doriți să creați secțiune, vezi captura de ecran:

doc convertește matricea în lista 2

2. Apoi apasa Pagina Următoare → , în butonul Pasul 2a din 3 vrăjitor, selectați Voi crea câmpurile de pagină opțiune, vezi captura de ecran:

doc convertește matricea în lista 3

3. Continuați să faceți clic Pagina Următoare → , în butonul Pasul 2b din 3 vrăjitor, faceți clic pe doc convertește matricea în lista 5 pentru a selecta intervalul de date pe care doriți să îl convertiți, apoi faceți clic pe Adăuga pentru a adăuga intervalul de date la Toate gamele casetă listă, vezi captura de ecran:

doc convertește matricea în lista 4

4. și faceți clic Pagina Următoare → buton, în Pasul 3 al 3 asistent, selectați o locație pentru tabelul pivot după cum doriți.

doc convertește matricea în lista 6

5. Apoi apasa finalizarea buton, un tabel pivot a fost creat simultan, vezi captura de ecran:

doc convertește matricea în lista 7

6. În tabelul pivot, faceți dublu clic pe celula care se intersectează din Grand Total, în acest caz, voi face dublu clic pe celula F22 și va genera un tabel cu trei coloane, după cum urmează:

doc convertește matricea în lista 8

7. Și, în cele din urmă, puteți converti formatul tabelului în intervalul normal selectând tabelul și apoi alegeți Tabel > Convertiți în Range din meniul contextual, vezi captura de ecran:

doc convertește matricea în lista 9


Dacă nu vă place prima metodă, următorul cod VBA vă poate ajuta, de asemenea.

1. presa Alt + F11 pentru a afișa Microsoft Visual Basic pentru aplicații fereastră.

2. În fereastră, faceți clic pe Insera > Module pentru a afișa o nouă fereastră de modul, apoi copiați și lipiți următorul cod VBA în fereastra modulului.

Cod VBA: convertiți tabelul de stil matricial în listă

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. Apoi apăsați F5 pentru a rula acest cod și apare o casetă de solicitare pentru a vă permite să selectați etichetele coloanelor datelor, vedeți captura de ecran:

doc convertește matricea în lista 10

4. Apoi faceți clic pe OK buton, în următoarea casetă de prompt, selectați etichetele rândurilor, vedeți captura de ecran:

doc convertește matricea în lista 11

5. Continuați să faceți clic OK, apoi selectați intervalul de date, cu excepția titlurilor de coloană și rând din caseta de prompt, consultați captura de ecran:

doc convertește matricea în lista 12

6. Apoi faceți clic pe OK, în această casetă de dialog, vă rugăm să selectați o celulă în care doriți să localizați rezultatul. Vedeți captura de ecran:

doc convertește matricea în lista 13

7. În cele din urmă, faceți clic pe OK, și veți obține un tabel cu trei coloane simultan.


Ambele metode de mai sus sunt oarecum supărătoare, aici vă voi prezenta un mod ușor - Kutools pentru Excel, Cu său Transpuneți dimensiunile tabelului caracteristică, puteți converti rapid între o matrice de celule și un tabel listă.

Kutools pentru Excel : cu mai mult de 300 de programe de completare Excel la îndemână, gratuit pentru a încerca fără limitări în 30 de zile

După instalare Kutools pentru Excel, vă rugăm să efectuați următorii pași:

1. Clic Kutools > Gamă > Transpuneți dimensiunile tabelului, vezi captura de ecran:

2. În Transpuneți dimensiunile tabelului căsuță de dialog:

(1.) Alegeți Masă încrucișată pentru listare opțiune sub Tipul de transpunere.

(2.) Și apoi faceți clic pe doc convertește matricea în lista 5 butonul sub Intervalul sursei pentru a selecta intervalul de date pe care doriți să îl convertiți.

(3.) Apoi faceți clic pe doc convertește matricea în lista 5 butonul sub Gama de rezultate pentru a selecta o celulă în care doriți să puneți rezultatul.

doc convertește matricea în lista 15

3. Apoi faceți clic pe OK buton și veți obține următorul rezultat, inclusiv formatarea originală a celulei:

doc convertește matricea în lista 16

Cu acest utilitar, și tu convertiți tabelul listei plate în tabelul transversal bidimensional.

Pentru a afla mai multe despre această caracteristică Transpose Dimensiuni tabel.

Descărcați și proba gratuită Kutools pentru Excel acum!


Kutools pentru Excel: cu mai mult de 300 de programe de completare Excel la îndemână, încercați fără limitări în 30 de zile. Descărcați și proba gratuită acum!

Cele mai bune instrumente de productivitate de birou

🤖 Kutools AI Aide: Revoluționați analiza datelor pe baza: Execuție inteligentă   |  Generați codul  |  Creați formule personalizate  |  Analizați datele și generați diagrame  |  Invocați funcțiile Kutools...
Caracteristici populare: Găsiți, evidențiați sau identificați duplicatele   |  Ștergeți rândurile goale   |  Combinați coloane sau celule fără a pierde date   |   Rundă fără Formula ...
Super căutare: VLookup cu mai multe criterii    VLookup cu valori multiple  |   VLookup pe mai multe foi   |   Căutare fuzzy ....
Listă derulantă avansată: Creați rapid o listă derulantă   |  Listă drop-down dependentă   |  Listă derulantă cu selectare multiplă ....
Manager de coloane: Adăugați un număr specific de coloane  |  Mutați coloanele  |  Comutați starea vizibilității coloanelor ascunse  |  Comparați intervale și coloane ...
Caracteristici prezentate: Focus pe grilă   |  Vedere de proiectare   |   Big Formula Bar    Manager registru de lucru și foi   |  Biblioteca de resurse (Text automat)   |  Data Picker   |  Combinați foi de lucru   |  Criptare/Decriptare celule    Trimiteți e-mailuri după listă   |  Super Filtru   |   Filtru special (filtrează bold/italic/barat...) ...
Top 15 seturi de instrumente12 Text Instrumente (Adăuga text, Eliminați caractere,...)   |   50+ Diagramă Tipuri de (Gantt Chart,...)   |   40+ Practic Formule (Calculați vârsta pe baza zilei de naștere,...)   |   19 inserare Instrumente (Introduceți codul QR, Inserați imaginea din cale,...)   |   12 Convertire Instrumente (Numere la cuvinte, conversie valutara,...)   |   7 Merge & Split Instrumente (Rânduri combinate avansate, Celule divizate,...)   |   ... și altele

Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp.  Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...

Descriere


Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
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