How to easily and quickly transpose range and stack data in Excel?
For instance, there are some data displayed in groups, and now I want to transpose the range and stack the data in each column as below screenshot shown. In this article, I will introduce the methods on this task in Excel.
- Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
- More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
- Merge Tools: Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
- Split Tools: Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
- Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color; Send Personalized Emails to Multiple Recipients in Bulk.
- Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment...
- More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.
You can apply a VBA code to transpose and stack data.
1. Select data except column headers, and press Alt + F11 keys to enable Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste below code to the Module.
VBA: Transpose and Stack data
Sub ConvertTableToList() 'UpdatebyExtendoffice20161121 Const TEST_COLUMN As String = "A" Dim i As Long, j As Long Dim iLastRow As Long Dim iLastCol As Long Application.ScreenUpdating = False With ActiveSheet 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 = "" Next j Next i .Rows(1).Delete End With Application.ScreenUpdating = True End Sub
3. Press F5 key, and then the data have been transposed and stacked. See screenshot:
Note: In the VBA code, A indicates to place the transpose data in column A of the active sheet and replace the original data in column A.
If you want to quickly and easily transpose range and stack data without VBA code, you can apply Kutools for Excel’s Transpose Table Dimension utility.
|Kutools for Excel, with more than 120 handy functions, makes your jobs easier.|
After installing Kutools for Excel, please do as below:(Free Download Kutools for Excel Now!)
1. Select the data you use, click Kutools > Range > Transpose Table Dimensions. See screenshot:
2. In the dialog, check Cross table to list option, and select a cell you want to place the transposed data in Results range (single cell) textbox. See screenshot:
3. Click Ok. Now the range has been transposed and stacked in columns.