Přejít k hlavnímu obsahu

Jak převést tabulku stylu matice na tři sloupce v aplikaci Excel?

Předpokládejme, že máte tabulku ve stylu matice, která obsahuje záhlaví sloupců a záhlaví řádků, a nyní byste chtěli tuto tabulku stylů převést na tabulku tří sloupců, nazvala ji také tabulka seznamu, jak ukazuje následující snímek obrazovky, máte nějaké dobré způsoby, jak to vyřešit problém v aplikaci Excel?

Převést tabulku stylů matice na seznam pomocí kontingenční tabulky

Převést tabulku stylů matice na seznam pomocí kódu VBA

Převeďte tabulku stylů matice na seznam pomocí Kutools pro Excel

doc převést matici do seznamu 1


V aplikaci Excel neexistuje přímá funkce pro převod tabulky stylů matice na tabulku tří sloupců, ale pokud jste obeznámeni s kontingenční tabulkou, může vám to udělat laskavost. Proveďte prosím následující kroky:

1. Aktivujte list, který chcete použít, a poté podržte Alt + D, a poté stiskněte tlačítko P na klávesnici, ve vyskakovacím okně Průvodce kontingenční tabulkou a kontingenčním grafem , vyberte Několik rozsahů konsolidace pod Kde jsou data, která chcete analyzovat sekci a poté vyberte Kontingenční tabulka pod Jaký druh přehledu chcete vytvořit sekce, viz screenshot:

doc převést matici do seznamu 2

2. Pak klikněte na tlačítko další tlačítko v Krok 2a ze 3 průvodce, vyberte Vytvořím pole stránky možnost, viz screenshot:

doc převést matici do seznamu 3

3. Pokračujte kliknutím další tlačítko v Krok 2b ze 3 průvodce, klepněte na tlačítko doc převést matici do seznamu 5 Klepnutím na tlačítko vyberte rozsah dat, který chcete převést, a poté klepněte na přidat tlačítko pro přidání rozsahu dat do Všechny rozsahy seznam, viz screenshot:

doc převést matici do seznamu 4

4, A klikněte na tlačítko další tlačítko, dovnitř Krok 3 z 3 průvodce, vyberte umístění kontingenční tabulky, jak chcete.

doc převést matici do seznamu 6

5. Pak klikněte na tlačítko úprava tlačítko, byla vytvořena kontingenční tabulka najednou, viz screenshot:

doc převést matici do seznamu 7

6. V kontingenční tabulce poklepejte na protínající se buňku celkového součtu, v tomto případě dvakrát kliknu na buňku F22 a vygeneruje tabulku tří sloupců, jak ukazuje následující snímek obrazovky:

doc převést matici do seznamu 8

7. Nakonec můžete formát tabulky převést na normální rozsah výběrem tabulky a následným výběrem Tabulka > Převést na rozsah z kontextové nabídky viz screenshot:

doc převést matici do seznamu 9


Pokud se vám nelíbí první metoda, může vám pomoci i následující kód VBA.

1. lis Alt + F11 pro zobrazení Microsoft Visual Basic pro aplikace okno.

2. V okně klikněte na Vložit > Modul zobrazte nové okno modulu, poté zkopírujte a vložte následující kód VBA do okna modulu.

Kód VBA: Převede tabulku stylů matice na seznam

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. Pak stiskněte tlačítko F5 klíč ke spuštění tohoto kódu a zobrazí se výzva k výběru štítků sloupců dat, viz screenshot:

doc převést matici do seznamu 10

4. A pak klikněte na tlačítko OK Tlačítko, v další výzvě vyberte štítky řádků, viz screenshot:

doc převést matici do seznamu 11

5. Pokračujte kliknutím OK, potom v rozevíracím seznamu vyberte rozsah dat kromě záhlaví sloupců a řádků, viz screenshot:

doc převést matici do seznamu 12

6. A pak klikněte na tlačítko OK, v tomto dialogovém okně vyberte buňku, ve které chcete vyhledat výsledek. Viz screenshot:

doc převést matici do seznamu 13

7. Konečně klikněte na tlačítko OK, a dostanete tabulku se třemi sloupci najednou.


Obě výše uvedené metody jsou poněkud problematické, zde vám představím snadný způsob - Kutools pro Excel, S jeho Transponujte rozměry tabulky Díky této funkci můžete rychle převést mezi maticí buněk a tabulkou seznamu.

Kutools pro Excel : s více než 300 praktickými doplňky Excel, můžete si je vyzkoušet bez omezení do 30 dnů

Po instalaci Kutools pro Excel, proveďte následující kroky:

1, klikněte Kutools > Rozsah > Transponujte rozměry tabulky, viz screenshot:

2. V Transponujte rozměry tabulky dialogové okno:

(1.) Vyberte Křížový stůl do seznamu možnost pod Provedení typu.

(2.) A pak klikněte doc převést matici do seznamu 5 pod tlačítkem Zdrojový rozsah vyberte rozsah dat, který chcete převést.

(3.) Poté klikněte doc převést matici do seznamu 5 pod tlačítkem Rozsah výsledků vyberte buňku, kam chcete umístit výsledek.

doc převést matici do seznamu 15

3. A pak klikněte na tlačítko OK tlačítko a získáte následující výsledek, který zahrnuje původní formátování buňky:

doc převést matici do seznamu 16

S tímto nástrojem také převést tabulku plochého seznamu na 2rozměrný křížový stůl.

Další informace o této funkci Transpose Table Dimensions.

Stáhněte si zdarma zkušební verzi Kutools pro Excel!


Kutools pro Excel: s více než 300 praktickými doplňky aplikace Excel, můžete vyzkoušet bez omezení do 30 dnů. Stáhněte si a vyzkoušejte zdarma hned teď!

Nejlepší nástroje pro produktivitu v kanceláři

Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

karta kte 201905


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
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