Przejdź do głównej zawartości

Jak przekonwertować tabelę stylu macierzy na trzy kolumny w programie Excel?

Przypuśćmy, że masz tabelę w stylu macierzy, która zawiera nagłówki kolumn i nagłówki wierszy, a teraz chciałbyś przekonwertować tę tabelę stylów na tabelę trzech kolumn, nazywaną również tabelą list, jak pokazano na poniższym zrzucie ekranu, czy masz jakieś dobre sposoby rozwiązania tego problemu problem w programie Excel?

Konwertuj tabelę stylów macierzy na listę za pomocą tabeli przestawnej

Konwertuj tabelę stylów macierzy na listę z kodem VBA

Konwertuj tabelę stylów macierzy na listę za pomocą Kutools for Excel

doc konwertuj macierz na listę 1


W programie Excel nie ma bezpośredniej funkcji konwersji tabeli stylu macierzy na tabelę z trzema kolumnami, ale jeśli znasz tabelę przestawną, może to wyświadczyć ci przysługę. Wykonaj następujące czynności:

1. Aktywuj arkusz roboczy, którego chcesz użyć, a następnie przytrzymaj Alt + D, a następnie naciśnij P w klawiaturze, w wyskakującym Kreator tabel przestawnych i wykresów przestawnych dialog, wybierz Wiele zakresów konsolidacji pod Gdzie są dane, które chcesz przeanalizować sekcji, a następnie wybierz Stół obrotowy pod Jaki rodzaj raportu chcesz utworzyć sekcja, patrz zrzut ekranu:

doc konwertuj macierz na listę 2

2. Następnie kliknij Następna przycisk w Krok 2a z 3 kreatora, wybierz plik Utworzę pola strony opcja, patrz zrzut ekranu:

doc konwertuj macierz na listę 3

3. Kliknij dalej Następna przycisk w Krok 2b z 3 Kreator, kliknij doc konwertuj macierz na listę 5 , aby wybrać zakres danych, który chcesz przekonwertować, a następnie kliknij Dodaj przycisk, aby dodać zakres danych do pliku Wszystkie zakresy pole listy, zobacz zrzut ekranu:

doc konwertuj macierz na listę 4

4, i kliknij Następna przycisk, w Krok 3 3 kreatora, wybierz lokalizację tabeli przestawnej, jak chcesz.

doc konwertuj macierz na listę 6

5. Następnie kliknij koniec przycisk, tabela przestawna została utworzona od razu, patrz zrzut ekranu:

doc konwertuj macierz na listę 7

6. W tabeli przestawnej kliknij dwukrotnie przecinającą się komórkę sumy całkowitej, w tym przypadku dwukrotnie kliknę komórkę F22 i wygeneruje tabelę z trzema kolumnami, jak pokazano na poniższym zrzucie ekranu:

doc konwertuj macierz na listę 8

7. Na koniec możesz przekonwertować format tabeli na normalny zakres, zaznaczając tabelę, a następnie wybierając Stół > Konwertuj na zakres z menu kontekstowego, zobacz zrzut ekranu:

doc konwertuj macierz na listę 9


Jeśli nie podoba ci się pierwsza metoda, poniższy kod VBA również może ci pomóc.

1. naciśnij Alt + F11 wyświetlić Microsoft Visual Basic for Applications okno.

2. W oknie kliknij wstawka > Moduł aby wyświetlić nowe okno modułu, a następnie skopiuj i wklej następujący kod VBA do okna modułu.

Kod VBA: Konwertuj tabelę stylów macierzy na 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. Następnie naciśnij F5 klawisz, aby uruchomić ten kod, i pojawi się okno zachęty umożliwiające wybranie etykiet kolumn danych, patrz zrzut ekranu:

doc konwertuj macierz na listę 10

4. A następnie kliknij OK przycisk, w następnym oknie zachęty wybierz etykiety wierszy, zobacz zrzut ekranu:

doc konwertuj macierz na listę 11

5. Kliknij dalej OK, a następnie wybierz zakres danych z wyłączeniem nagłówków kolumn i wierszy w polu zachęty, zobacz zrzut ekranu:

doc konwertuj macierz na listę 12

6. A następnie kliknij OK, w tym oknie dialogowym wybierz komórkę, w której chcesz zlokalizować wynik. Zobacz zrzut ekranu:

doc konwertuj macierz na listę 13

7. Nareszcie kliknij OK, a otrzymasz od razu tabelę z trzema kolumnami.


Obie powyższe metody są nieco kłopotliwe, tutaj przedstawię Wam łatwy sposób - Kutools dla programu Excel, Z siedzibą w Transpozycja wymiarów tabeli możesz szybko konwertować między macierzą komórek i tabelą listy.

Kutools dla programu Excel : z ponad 300 poręcznymi dodatkami Excela, które można wypróbować bez ograniczeń w ciągu 30 dni

Po zainstalowaniu Kutools dla programu Excel, wykonaj następujące czynności:

1. Kliknij Kutools > łodzie > Transpozycja wymiarów tabelizobacz zrzut ekranu:

2, w Transpozycja wymiarów tabeli Okno dialogowe:

(1.) Wybierz Tabela krzyżowa do wyświetlenia opcja pod Typ transpozycji.

(2.) A następnie kliknij doc konwertuj macierz na listę 5 przycisk pod Zasięg źródła aby wybrać zakres danych, który chcesz przekonwertować.

(3.) Następnie kliknij doc konwertuj macierz na listę 5 przycisk pod Zakres wyników aby wybrać komórkę, w której chcesz umieścić wynik.

doc konwertuj macierz na listę 15

3. A następnie kliknij OK przycisk, a otrzymasz następujący wynik, który obejmuje oryginalne formatowanie komórki:

doc konwertuj macierz na listę 16

Dzięki temu narzędziu Ty również konwertuj płaską tabelę list na dwuwymiarową tabelę krzyżową.

Aby dowiedzieć się więcej o tej funkcji Transpose Table Dimensions.

Pobierz i bezpłatną wersję próbną Kutools dla programu Excel teraz!


Kutools dla programu Excel: z ponad 300 poręcznymi dodatkami do programu Excel, które można wypróbować bez ograniczeń w ciągu 30 dni. Pobierz i bezpłatną wersję próbną teraz!

Najlepsze narzędzia biurowe

🤖 Pomocnik AI Kutools: Zrewolucjonizuj analizę danych w oparciu o: Inteligentne wykonanie   |  Wygeneruj kod  |  Twórz niestandardowe formuły  |  Analizuj dane i generuj wykresy  |  Wywołaj funkcje Kutools...
Popularne funkcje: Znajdź, wyróżnij lub zidentyfikuj duplikaty   |  Usuń puste wiersze   |  Łącz kolumny lub komórki bez utraty danych   |   Okrągły bez wzoru ...
Super wyszukiwanie: Wiele kryteriów VLookup    Wiele wartości VLookup  |   Przeglądanie pionowe na wielu arkuszach   |   Wyszukiwanie rozmyte ....
Zaawansowana lista rozwijana: Szybko twórz listę rozwijaną   |  Zależna lista rozwijana   |  Lista rozwijana wielokrotnego wyboru ....
Menedżer kolumn: Dodaj określoną liczbę kolumn  |  Przesuń kolumny  |  Przełącz stan widoczności ukrytych kolumn  |  Porównaj zakresy i kolumny ...
Polecane funkcje: Fokus siatki   |  Widok projektu   |   Duży pasek formuły    Menedżer skoroszytów i arkuszy   |  Biblioteka zasobów (Automatyczny tekst)   |  Selektor dat   |  Połącz arkusze   |  Szyfruj/odszyfruj komórki    Wysyłaj e-maile według listy   |  Super filtr   |   Specjalny filtr (filtruj pogrubienie/kursywa/przekreślenie...) ...
15 najlepszych zestawów narzędzi12 Tekst Tools (Dodaj tekst, Usuń znaki, ...)   |   50 + Wykres rodzaje (Wykres Gantta, ...)   |   40+ Praktyczne Wzory (Oblicz wiek na podstawie urodzin, ...)   |   19 Wprowadzenie Tools (Wstaw kod QR, Wstaw obraz ze ścieżki, ...)   |   12 Konwersja Tools (Liczby na słowa, Przeliczanie walut, ...)   |   7 Połącz i podziel Tools (Zaawansowane wiersze łączenia, Podział komórki, ...)   |   ... i więcej

Zwiększ swoje umiejętności Excela dzięki Kutools for Excel i doświadcz wydajności jak nigdy dotąd. Kutools dla programu Excel oferuje ponad 300 zaawansowanych funkcji zwiększających produktywność i oszczędzających czas.  Kliknij tutaj, aby uzyskać funkcję, której najbardziej potrzebujesz...

Opis


Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszką każdego dnia!
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