Перейти до основного матеріалу

Як перетворити таблицю стилів матриці на три стовпці в Excel?

Припустимо, у вас є таблиця в стилі матриці, яка містить заголовки стовпців і заголовки рядків, і тепер ви хочете перетворити цю таблицю стилів у таблицю з трьома стовпцями, вона також називається таблицею списків, як показано на наступному знімку екрана, чи є у вас якісь хороші способи вирішити це проблема в Excel?

Перетворити таблицю стилів матриць у список за допомогою зведеної таблиці

Перетворити таблицю стилів матриць у список із кодом VBA

Перетворіть таблицю стилю матриці на список за допомогою Kutools для Excel

doc перетворити матрицю в список 1


В Excel немає прямої функції для перетворення таблиці стилів матриці в таблицю з трьома стовпцями, але якщо ви знайомі зі зведеною таблицею, це може зробити вам послугу. Будь ласка, виконайте такі дії:

1. Активуйте робочий аркуш, який ви хочете використовувати, а потім утримуйте Alt + D, а потім натисніть P в клавіатурі, в спливаючому Майстер зведеної таблиці та зведеної діаграми діалог, виберіть Кілька діапазонів консолідації під Де дані, які ви хочете проаналізувати розділ, а потім виберіть PivotTable під Який звіт ви хочете створити розділ, див. знімок екрана:

doc перетворити матрицю в список 2

2. Потім натисніть МАЙБУТНІ кнопку в Крок 2а з 3 майстра, виберіть Я буду створювати поля сторінки варіант, див. скріншот:

doc перетворити матрицю в список 3

3. Продовжуйте натискати МАЙБУТНІ кнопку в Крок 2b з 3 майстер, клацніть doc перетворити матрицю в список 5 , щоб вибрати діапазон даних, який потрібно перетворити, а потім натисніть додавати , щоб додати діапазон даних до Всі діапазони вікно списку, див. знімок екрана:

doc перетворити матрицю в список 4

4, І натисніть МАЙБУТНІ кнопка, дюйм Крок 3 з 3 майстра, виберіть потрібне місце для зведеної таблиці.

doc перетворити матрицю в список 6

5. Потім натисніть обробка кнопки, одразу була створена зведна таблиця, див. знімок екрана:

doc перетворити матрицю в список 7

6. У зведеній таблиці двічі клацніть клітинку загальної суми, яка перетинається, у цьому випадку я двічі клацну клітинку F22, і вона створить таблицю з трьох стовпців, як показано на наступному знімку екрана:

doc перетворити матрицю в список 8

7. І нарешті, ви можете перетворити формат таблиці в нормальний діапазон, вибравши таблицю, а потім виберіть таблиця > Перетворити на діапазон у контекстному меню див. знімок екрана:

doc перетворити матрицю в список 9


Якщо вам не подобається перший метод, наступний код VBA також може вам допомогти.

1. Прес Alt + F11 щоб відобразити Microsoft Visual Basic для додатків вікна.

2. У вікні натисніть Insert > Модулі щоб показати нове вікно модуля, скопіюйте та вставте наступний код VBA у вікно модуля.

Код VBA: Перетворення таблиці стилів матриць у список

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. Потім натисніть F5 клавішу для запуску цього коду, і з'явиться підказка, щоб вибрати мітки стовпців даних, див. знімок екрана:

doc перетворити матрицю в список 10

4. А потім клацніть OK , у наступному вікні запиту виберіть мітки рядків, див. знімок екрана:

doc перетворити матрицю в список 11

5. Продовжуйте натискати OK, потім виберіть діапазон даних, виключаючи заголовки стовпців і рядків, у вікні запиту, див. знімок екрана:

doc перетворити матрицю в список 12

6. А потім клацніть OK, у цьому діалоговому вікні виберіть клітинку, де ви хочете знайти результат. Дивіться знімок екрана:

doc перетворити матрицю в список 13

7. Нарешті клацніть OK, і ви отримаєте таблицю з трьох стовпців одночасно.


Обидва вищезазначені методи дещо клопітні, тут я познайомлю вас із простим способом - Kutools для Excel, З його Транспонуйте розміри таблиці Ви можете швидко перетворити матрицю комірок і таблицю списків.

Kutools для Excel : з більш ніж 300 зручними надбудовами Excel, які можна спробувати без обмежень протягом 30 днів

після установки Kutools для Excel, будь ласка, виконайте такі дії:

1. Клацання Кутулс > Діапазон > Транспонуйте розміри таблиці, див. скріншот:

2, в Транспонуйте розміри таблиці діалогове вікно:

(1.) Виберіть Перехресна таблиця для переліку опція під Тип транспонування.

(2.) А потім натисніть doc перетворити матрицю в список 5 кнопка під Діапазон джерел щоб вибрати діапазон даних, який потрібно перетворити.

(3.) Потім натисніть doc перетворити матрицю в список 5 кнопка під Діапазон результатів щоб вибрати клітинку, куди потрібно помістити результат.

doc перетворити матрицю в список 15

3. А потім клацніть OK , і ви отримаєте такий результат, який включає оригінальне форматування комірки:

doc перетворити матрицю в список 16

За допомогою цієї утиліти ви також перетворити таблицю плоских списків у двовимірну перехресну таблицю.

Щоб дізнатись більше про цю функцію транспонування розмірів таблиці.

Завантажте та безкоштовну пробну версію Kutools для Excel зараз!


Kutools для Excel: з більш ніж 300 зручними надбудовами Excel, спробуйте безкоштовно без обмежень протягом 30 днів. Завантажте та безкоштовно пробну версію зараз!

Найкращі інструменти продуктивності офісу

🤖 Kutools AI Aide: Революціонізуйте аналіз даних на основі: Інтелектуальне виконання   |  Згенерувати код  |  Створення спеціальних формул  |  Аналізуйте дані та створюйте діаграми  |  Викликати функції Kutools...
Популярні функції: Знайдіть, виділіть або визначте дублікати   |  Видалити порожні рядки   |  Об’єднайте стовпці або клітинки без втрати даних   |   Раунд без Формули ...
Супер пошук: VLookup за кількома критеріями    Багатозначний VLookup  |   VLookup на кількох аркушах   |   Нечіткий пошук ....
Розширений розкривний список: Швидке створення випадаючого списку   |  Залежний спадний список   |  Виберіть розкривний список, що вибирається ....
Менеджер колонок: Додайте конкретну кількість стовпців  |  Перемістити стовпці  |  Перемкнути статус видимості прихованих стовпців  |  Порівняйте діапазони та стовпці ...
Особливості: Фокус сітки   |  Перегляд дизайну   |   Велика панель формул    Диспетчер робочих книг і аркушів   |  Бібліотека ресурсів (автотекст)   |  Вибір дати   |  Об’єднайте робочі аркуші   |  Шифрування/розшифрування клітинок    Надсилайте листи за списком   |  Супер фільтр   |   Спеціальний фільтр (фільтр жирний/курсив/закреслений...) ...
Топ-15 наборів інструментів12 текст Tools (додати текст, Видалити символи, ...)   |   50 + Графік типи (діаграма Ганта, ...)   |   40+ Практичний Формули (Розрахуйте вік на основі дня народження, ...)   |   19 вставка Tools (Вставте QR-код, Вставити зображення зі шляху, ...)   |   12 Перетворення Tools (Числа до слів, Валютна конверсія, ...)   |   7 Злиття та розділення Tools (Розширені комбіновані ряди, Розділені клітини, ...)   |   ... і більше

Покращуйте свої навички Excel за допомогою Kutools для Excel і відчуйте ефективність, як ніколи раніше. Kutools для Excel пропонує понад 300 додаткових функцій для підвищення продуктивності та економії часу.  Натисніть тут, щоб отримати функцію, яка вам найбільше потрібна...

Опис


Вкладка Office Передає інтерфейс із вкладками в Office і значно полегшує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
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