Note: The other languages of the website are Google-translated. Back to English
Увійти  \/ 
x
or
x
Реєстрація  \/ 
x

or

Як перетворити таблицю стилів матриці на три стовпці в 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 для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2019 та 365. Підтримує всі мови. Простота розгортання на вашому підприємстві чи в організації. Повна функція 30-денної безкоштовної пробної версії. 60-денна гарантія повернення грошей.
вкладка kte 201905

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

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    003434@gmail.com · 5 months ago
    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
  • To post as a guest, your comment is unpublished.
    Dwayne Hickman · 1 years ago
    For the VBA Code, one seems to really need this:
    xColumns = cRng.Column
    xRow = rRng.Row
  • To post as a guest, your comment is unpublished.
    Yash · 1 years ago
    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,
    • To post as a guest, your comment is unpublished.
      003434@gmail.com · 5 months ago
      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
  • To post as a guest, your comment is unpublished.
    Mohit · 2 years ago
    Thanks a Ton, really appreciate the way you have explained. very useful

  • To post as a guest, your comment is unpublished.
    cmb · 2 years ago
    Thanks alot for this useful tool
  • To post as a guest, your comment is unpublished.
    Mike · 4 years ago
    Thanks, this was exactly what I was looking for. Awesome:)
  • To post as a guest, your comment is unpublished.
    shahrokh · 5 years ago
    what if i have 4 or more column?