How to convert crosstab table (2-dimensional table) to list in Excel?
Do you know how to convert a cross table (two dimensional table) to a list table (one dimensional table) in Microsoft Excel? For some reasons, you may need to convert a table (with row headings and column headings) to a flat list in Excel. The following tricks can help you convert a cross table to flat list easily and quickly:
- Convert cross table to list in Excel with VBA
- Convert cross table to list in Excel with Kutools for Excel
Supposing you have a cross table and need to convert it to a list as follows.
|Cross table (with row headings and columns headings)||A list table (one dimensional table)|
The following VBA macro can help you quickly convert all cross tables in active worksheet to flat lists.
Step 1: Hold down the Alt + F11 keys in Excel, and it opens the Microsoft Visual Basic for Applications window.
Step 2: Click Insert > Module, and paste the following macro in the Module Window.
The VBA on transpose crosstab table to list:
Const TEST_COLUMN As String = "A"
Dim i As Long, j As Long
Dim iLastRow As Long
Dim iLastCol As Long
Application.ScreenUpdating = False
iLastRow = .Cells(.Rows.Count, TEST_COLUMN).End(xlUp).Row
For i = iLastRow To 2 Step -1
iLastCol = .Cells(i, .Columns.Count).End(xlToLeft).Column
For j = iLastCol To 3 Step -1
.Rows(i + 1).Insert
.Cells(i + 1, 2).Value = .Cells(i, j).Value
.Cells(i, j).Value = ""
Application.ScreenUpdating = True
Step 3: Click the F5 key to run this macro.
Then you will see the converted list showing as following screenshot:
1. This VBA macro loses some data of original table, such as headers, or others. In this case, the headers (Name, Grade, and Class) are lost.
2. You can change As String = "A", to meet your need. For example, if the cross table is stated in Column E, you should instead "E" of "A".
3. And if there are other data in the worksheet, sometimes the data in the list will be wrong after converting a cross table.
If you have Kutools for Excel installed, you can use its Transpose Table Dimensions tool to convert cross tables to flat list quickly.
Step 1: Select the table which you will convert it to a list.
Step 2: Click the Kutools >Modify > Transpose Table Dimension. See the following screen shot:
Step 3: In Transpose Table Dimensions dialog box, check the Cross table to list option, and select the Results range with clicking the button.
Step 4: Click OK button.
Then you will see the original table is converted into a flat list as following screenshot:
Transpose Table Dimensions also can convert list to crosstab table. For more information, please go to Transpose Table Dimensions.
You are guest
or post as a guest, but your post won't be published automatically.
To post as a guest, your comment is unpublished.· 3 years agoThanks for the code, I translated very large tables into lists without any issues, worked a charm.
To post as a guest, your comment is unpublished.· 4 years agoBrilliant! Kutools does the trick. Awesome guys thank you.
To post as a guest, your comment is unpublished.· 4 years agoTHANK YOU!! Your macro worked perfectly. I'll use your link if I choose to purchase KuTools.