How to transpose every 5 or n rows from one column to multiple columns?
Supposing, you have long data in column A, and now, you want to transpose every 5 rows from column A to multiple columns, such as transpose A1:A5 to C6:G6, A6:A10 to C7:G7, and so on as following screenshot shown. How could you deal with this task without copying and pasting repeatedly in Excel?
Transform every 5 or n rows from one column to multiple columns:
To transform every 5 or n rows from one column to multiple columns, Kutools for Excel's Transform Range utility can help you to solve this job as quickly as you can. It also can help you to transpose a range of data to a single row or column.
Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download and free trial Now!
In Excel, you can apply the following formula to transpose every n rows from one column to multiple columns, please do as follows:
1. Enter the following formula into a blank cell where you want to put the result, C1, for example, =INDEX($A:$A,ROW(A1)*5-5+COLUMN(A1)), see screenshot:
Note: In the above formula, A:A is the column reference that you want to transpose, and A1 is the first cell of the used column, the number 5 indicates the number of columns that your data will locate, you can change them to your need. And the first cell of the list must be located at the first row in the worksheet.
2. Then drag the fill handle right to five cells, and go on dragging the fill handle down to the range of cells until displays 0 , see screenshot:
If you can't apply the formula correctly, the following VBA code also can help you.
1. Hold down the ALT + F11 keys to open the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Transpose every 5 or n rows from one column to multiple columns:
Public Sub TransposeData() 'updateby Extendoffice 20151207 Dim xLRow As Long Dim xNRow As Long Dim i As Long Dim xUpdate As Boolean Dim xRg As Range Dim xOutRg As Range Dim xTxt As String On Error Resume Next xTxt = ActiveWindow.RangeSelection.Address Set xRg = Application.InputBox("Please select data range(only one column):", "Kutools for Excel", xTxt, , , , , 8) Set xRg = Application.Intersect(xRg, xRg.Worksheet.UsedRange) If xRg Is Nothing Then Exit Sub If (xRg.Columns.Count > 1) Or _ (xRg.Areas.Count > 1) Then MsgBox "the used range only contain one column", , "Kutools for Excel" Exit Sub End If Set xOutRg = Application.InputBox("please select output range(specify one cell):", "Kutools for Excel", xTxt, , , , , 8) If xOutRg Is Nothing Then Exit Sub Set xOutRg = xOutRg.Range(1) xUpdate = Application.ScreenUpdating Application.ScreenUpdating = False xLRow = xRg.Rows.Count For i = 1 To xLRow Step 5 xRg.Cells(i).Resize(5).Copy xOutRg.Offset(xNRow, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True xNRow = xNRow + 1 Next Application.ScreenUpdating = xUpdate End Sub
3. After pasting the code, please press F5 key to run it, and a prompt box will pop out to remind you select the column that you want to transpose, see screenshot:
4. Then click OK, and select one cell where you want to put the result in another popped out box, see screenshot:
5. And click OK, the data in the column has been converted to five columns that you need, see screenshot:
Note: In the above code, you can change the number 5 to other number you need.
If you have Kutools for Excel, with its Transform Range utility, you can quickly transpose one column or row to multiple columns and rows.
|Kutools for Excel : with more than 300 handy Excel add-ins, free to try with no limitation in 60 days.|
After installing Kutools for Excel, please do as follows:
1. Select the data in the column, and then click Kutools > Range > Transform Range, see screenshot:
2. In the Transform Range dialog box, select Single column to range option under the Transform type, and then check Fixed value under the Rows per record, then specify the number of columns that you want to transpose to in the Fixed value box, see screenshot:
3. And then click Ok button, in the popped out box, please select a cell to output the result, see screenshot:
4. Then click OK button, and your column data has been transposed every 5 rows as following screenshot shown:
Recommended Productivity Tools
Bring handy tabs to Excel and other Office software, just like Chrome, Firefox and new Internet Explorer.
Amazing! Increase your productivity in 5 minutes. Don't need any special skills, save two hours every day!
300 New Features for Excel, Make Excel Much Easy and Powerful:
- Merge Cell/Rows/Columns without Losing Data.
- Combine and Consolidate Multiple Sheets and Workbooks.
- Compare Ranges, Copy Multiple Ranges, Convert Text to Date, Unit and Currency Conversion.
- Count by Colors, Paging Subtotals, Advanced Sort and Super Filter,
- More Select/Insert/Delete/Text/Format/Link/Comment/Workbooks/Worksheets Tools...
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
To post as a guest, your comment is unpublished.· 10 months agoThis is fricking AWESOME!!! Thank you SO much. Your example was exactly what I needed and it worked beautifully.
To post as a guest, your comment is unpublished.· 1 years ago=INDEX($A:$A,ROW(A1)*5-5+COLUMN(A1))
It was very simple and really useful. Thank you so much
To post as a guest, your comment is unpublished.· 1 years agoIt was great! Thank you! You saved me hours of manual work!
To post as a guest, your comment is unpublished.· 1 years agoThank you so much!
It was really helpful. :)
To post as a guest, your comment is unpublished.· 2 years agoWhat formula to transpose every 5 rows to a single column?