Vai al contenuto principale

Come convertire la tabella in stile matrice in tre colonne in Excel?

Supponendo che tu abbia una tabella in stile matrice che contiene intestazioni di colonna e intestazioni di riga, e ora desideri convertire questa tabella di stile in una tabella a tre colonne, chiamata anche tabella a elenco come mostrato nella seguente schermata, hai dei buoni modi per risolverlo problema in Excel?

Converti la tabella in stile matrice in un elenco con la tabella pivot

Converti la tabella in stile matrice in un elenco con codice VBA

Converti la tabella di stile matrice in elenco con Kutools per Excel

doc converti matrice in elenco 1


In Excel, non esiste una funzione diretta per noi per convertire la tabella in stile matrice in una tabella a tre colonne, ma, se hai familiarità con la tabella pivot, potrebbe farti un favore. Si prega di fare con i seguenti passaggi:

1. Attiva il foglio di lavoro che desideri utilizzare, quindi tieni premuto Alt + De quindi premere P nella tastiera, nel saltato fuori Creazione guidata tabella pivot e grafico pivot finestra di dialogo, selezionare Intervalli di consolidamento multipli sotto il Dove sono i dati che vuoi analizzare sezione, quindi scegli Tabella pivot sotto il Che tipo di rapporto vuoi creare sezione, vedi screenshot:

doc converti matrice in elenco 2

2. Quindi fare clic Successivo pulsante, nel Passaggio 2a di 3 selezionare il file Creerò i campi della pagina opzione, vedi screenshot:

doc converti matrice in elenco 3

3. Continua a fare clic Successivo pulsante, nel Passaggio 2b di 3 procedura guidata, fare clic doc converti matrice in elenco 5 per selezionare l'intervallo di dati che si desidera convertire, quindi fare clic su Aggiungi pulsante per aggiungere l'intervallo di dati al file Tutte le gamme casella di riepilogo, vedi screenshot:

doc converti matrice in elenco 4

4. E fare clic su Successivo pulsante, in Passo 3 di 3 procedura guidata, seleziona una posizione per la tabella pivot come desideri.

doc converti matrice in elenco 6

5. Quindi fare clic Fine pulsante, una tabella pivot è stata creata contemporaneamente, vedi screenshot:

doc converti matrice in elenco 7

6. Nella tabella pivot, fai doppio clic sulla cella intersecante del totale generale, in questo caso, farò doppio clic sulla cella F22 e genererà una tabella a tre colonne come mostrato nella seguente schermata:

doc converti matrice in elenco 8

7. Infine, puoi convertire il formato della tabella nell'intervallo normale selezionando la tabella e quindi scegliere Table > Converti in intervallo dal menu contestuale, vedi screenshot:

doc converti matrice in elenco 9


Se non ti piace il primo metodo, anche il seguente codice VBA può aiutarti.

1. stampa Alt + F11 per visualizzare il Microsoft Visual Basic, Applications Edition finestra.

2. Nella finestra, fare clic su inserire > Moduli per mostrare una nuova finestra del modulo, quindi copia e incolla il seguente codice VBA nella finestra del modulo.

Codice VBA: converti la tabella di stile della matrice in un elenco

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. Quindi premere F5 chiave per eseguire questo codice e viene visualizzata una finestra di messaggio per consentire di selezionare le etichette delle colonne dei dati, vedi screenshot:

doc converti matrice in elenco 10

4. E poi clicca OK pulsante, nella finestra di richiesta successiva, seleziona le etichette delle righe, vedi screenshot:

doc converti matrice in elenco 11

5. Continua a fare clic OK, quindi seleziona l'intervallo di dati escludendo le intestazioni di colonna e riga nella casella del messaggio, vedi screenshot:

doc converti matrice in elenco 12

6. E poi clicca OK, in questa finestra di dialogo, seleziona una cella in cui desideri individuare il risultato. Vedi screenshot:

doc converti matrice in elenco 13

7. Finalmente, clicca OKe otterrai una tabella a tre colonne contemporaneamente.


Entrambi i metodi di cui sopra sono un po 'fastidiosi, qui, ti presenterò un modo semplice - Kutools for Excel, Con la sua Trasponi le dimensioni della tabella funzione, puoi convertire rapidamente tra una matrice di celle e una tabella a elenco.

Kutools for Excel : con oltre 300 utili componenti aggiuntivi di Excel, da provare gratuitamente senza limitazioni in 30 giorni

Dopo l'installazione Kutools for Excel, si prega di fare come segue:

1. Clic Kutools > Escursione > Trasponi le dimensioni della tabella, vedi screenshot:

2. Nel Trasponi le dimensioni della tabella la finestra di dialogo:

(1.) Scegli Tabella incrociata per elencare opzione sotto Tipo di trasposizione.

(2.) E quindi fare clic su doc converti matrice in elenco 5 pulsante sotto Intervallo di origine per selezionare l'intervallo di dati che si desidera convertire.

(3.) Quindi fare clic su doc converti matrice in elenco 5 pulsante sotto Gamma di risultati per selezionare una cella in cui vuoi inserire il risultato.

doc converti matrice in elenco 15

3. E poi clicca OK pulsante e otterrai il seguente risultato che include la formattazione della cella originale:

doc converti matrice in elenco 16

Con questa utility, anche tu convertire una tabella a elenco piatto in una tabella incrociata bidimensionale.

Per saperne di più su questa funzione Transpose Table Dimensions.

Scarica e prova gratuitamente Kutools per Excel ora!


Kutools for Excel: con più di 300 utili componenti aggiuntivi di Excel, liberi di provare senza limitazioni in 30 giorni. Scarica e prova gratuita ora!

I migliori strumenti per la produttività in ufficio

🤖 Assistente AI di Kutools: Rivoluziona l'analisi dei dati basandosi su: Esecuzione intelligente   |  Genera codice  |  Crea formule personalizzate  |  Analizzare i dati e generare grafici  |  Richiama le funzioni di Kutools...
Funzioni popolari: Trova, evidenzia o identifica i duplicati   |  Elimina righe vuote   |  Combina colonne o celle senza perdere dati   |   Round senza formula ...
Super ricerca: VLookup a criteri multipli    VLookup a valori multipli  |   VLookup su più fogli   |   Ricerca fuzzy ....
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa   |  Elenco a discesa dipendente   |  Elenco a discesa a selezione multipla ....
Gestore di colonna: Aggiungi un numero specifico di colonne  |  Sposta colonne  |  Attiva/disattiva lo stato di visibilità delle colonne nascoste  |  Confronta intervalli e colonne ...
Funzionalità in primo piano: Messa a fuoco della griglia   |  Vista di progettazione   |   Grande barra delle formule    Gestore di cartelle di lavoro e fogli   |  Resource Library (Testo automatico)   |  Date picker   |  Combina fogli di lavoro   |  Crittografa/decrittografa le celle    Invia e-mail per elenco   |  Super filtro   |   Filtro speciale (filtro grassetto/corsivo/barrato...) ...
I 15 migliori set di strumenti12 Testo Strumenti (aggiungi testo, Rimuovi personaggi, ...)   |   50+ Grafico Tipi (Diagramma di Gantt, ...)   |   40+ Pratico Formule (Calcola l'età in base al compleanno, ...)   |   19 Inserimento Strumenti (Inserisci il codice QR, Inserisci immagine dal percorso, ...)   |   12 Conversione Strumenti (Numeri in parole, Conversione di valuta, ...)   |   7 Unisci e dividi Strumenti (Combina righe avanzate, Celle divise, ...)   |   ... e altro ancora

Potenzia le tue competenze di Excel con Kutools per Excel e sperimenta l'efficienza come mai prima d'ora. Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo.  Fai clic qui per ottenere la funzionalità di cui hai più bisogno...

Descrizione


Office Tab porta l'interfaccia a schede in Office e semplifica notevolmente il tuo lavoro

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra, piuttosto che in nuove finestre.
  • Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!
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