Log in
x
or
x
x
Register
x

or

How to transpose / convert columns and rows into single column?

When you use Excel worksheet, sometimes, you will meet this problem: how could you convert or transpose a range of data into a single column? (See the following screenshots:) Now, I introduce three quick tricks for you to solve this problem.

Transpose/Convert columns and rows into single column with formula

Transpose/Convert columns and rows into single column with VBA code

Transpose/Convert columns and rows into single column with Kutools for Excelgood idea3

Quickly transpose range to a column/row/ or vice versa in Excel

In some cases, you may need to transpose a range of cells into one column or a row, or vice versa, convert a column or a row into multiple rows and columns in Excel sheet. Do you have any quick way to solve it? Here the Transpose Range function in Kutools for Excel can handle all above jobs easily.Click for free full-featured trial in 30 days!
doc1
 
Kutools for Excel: with more than 300 handy Excel add-ins, free to try with no limitation in 30 days.

  Transpose/Convert columns and rows into single column with formula

Tabbed browsing & editing multiple Excel workbooks/Word documents as Firefox, Chrome, Internet Explore 10!

You may be familiar to view multiple webpages in Firefox/Chrome/IE, and switch between them by clicking corresponding tabs easily. Here, Office Tab supports similar processing, which allow you to browse multiple Excel workbooks or Word documents in one Excel window or Word window, and easily switch between them by clicking their tabs. Click for free 30-day trial of Office Tab!

ot excel

The following long formula can help you quickly transpose a range of data into a column, please do as this:

1. First, define a range name for your range of data, select the range data that you want to convert, right click and choose Define Name form the context menu. In the New Name dialog box, enter the range name you want. Then click OK. See screenshot:

2. After specify the range name, then click a blank cell, in this example, I will click cell E1, and then input this formula: =INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1).

Note: MyData is the range name of the selected data, you can change it as you need.

3. Then drag the formula down to the cell until the error information is displayed. All the data in the range has been transposed into a single column. See screenshot:


  Transpose/Convert columns and rows into single column with VBA code

With the following VBA code, you can also join the multiple columns and rows into a single column.

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.

Sub ConvertRangeToColumn()
'Updateby20131126
Dim Range1 As Range, Range2 As Range, Rng As Range
Dim rowIndex As Integer
xTitleId = "KutoolsforExcel"
Set Range1 = Application.Selection
Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)
rowIndex = 0
Application.ScreenUpdating = False
For Each Rng In Range1.Rows
    Rng.Copy
    Range2.Offset(rowIndex, 0).PasteSpecial Paste:=xlPasteAll, Transpose:=True
    rowIndex = rowIndex + Rng.Columns.Count
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub

3. Press F5 key to run the code, and a dialog is displayed for you to select a range to convert. See screenshot:

4. Then click Ok, and another dialog is displayed to select a singel cell to put out the result, see screenshot:

5. And click Ok, then the cell contents of the range are converted to a list of a column, see screenshot:

doc-convert-range-to-column11


  Transpose/Convert columns and rows into single column with Kutools for Excel

Maybe the formula is too long to remember and the VBA code has some limitation for you, in this situation, please don’t worry, here I will introduce you an easier and more multifunctional tool-Kutools for Excel, with its Transform Range utility, and you can solve this problem quickly and conveniently.

  Kutools for Excel, with more than 300 handy functions, makes your jobs more easier. 

After installing Kutools for Excel, please do as below:(Free Download Kutools for Excel Now!)

1. Select the range that you want to transpose.

2. Click Kutools > Transform Range, see screenshot:

doc convert range to column 12

3. In the Transform Range dialog box, select Range to single column option, see screenshot:

doc convert range to column 13

4. Then click OK, and specify a cell to put the result from the pop out box.

doc convert range to column 14

5. Click OK, and the multiple columns and rows data has been transposed into a one column.
doc convert range to column 15

If you want to convert a column to a range with fixed rows, you also can use the Transform Range function to quickly handle it.
doc convert range to column 16


  Transpose cross table to list table with Kutools for Excel

If you have a cross table needed to be converted to a list table as below screenshot show, except retyping the data one by one, you also can use Kutools for Excel’s Transpose Table Dimensions utility to quickly convert between cross table and list in Excel.
doc convert range to column 19

After installing Kutools for Excel, please do as below:(Free Download Kutools for Excel Now!)

1. Select the cross table you want to convert to list, click Kutools > Range > Transpose Table Dimensions.
doc convert range to column 17

2. In Transpose Table Dimension dialog, check Cross table to list option on Transpose type section, select a cell to place the new format table.
doc convert range to column 18

3. Click Ok, now the cross table has been converted to list.


Related articles:

How to change row to column in Excel?

How to transpose / convert a single column to multiple columns in Excel?

How to transpose / convert columns and rows into single row?


The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
kte tab 201905

Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
officetab bottom
Say something here...
symbols left.
You are guest ( Sign Up? )
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.
    Dana · 1 years ago
    thanks a lot; beautifull :-)
  • To post as a guest, your comment is unpublished.
    Philippe · 1 years ago
    Worked like a charm. Thanks a lot
  • To post as a guest, your comment is unpublished.
    deep · 1 years ago
    thanxs you have reduced my too much time....wonderful
  • To post as a guest, your comment is unpublished.
    NL · 1 years ago
    What if the table you start with has a range of values that is different for each row? Example: Say the table doesn't have FF, KK and LL, how do you make a single column from that table without doing them above example by hand?
    • To post as a guest, your comment is unpublished.
      Sunny · 1 years ago
      Just try above methods, if they cannot work, please tell me and upload your data as a picture to give some details
  • To post as a guest, your comment is unpublished.
    YO · 1 years ago
    THAT'S AMAZING! THANKYOU
  • To post as a guest, your comment is unpublished.
    Mahesh Kumar · 2 years ago
    Hi Friend I/m also facing a problem in excel

    My data are column-wise

    3.26mm 3.05mm 3.10mm
    0.1285 0.1200 0.1220
    1/4 1/4 6mm
    1-1/8 1-1/8 28mm
    2-5/8 2-5/8 66mm


    I want to arrange all in a single column

    3.05mm
    0.1200
    1/4
    1-1/8
    2-5/8
    3.10mm
    0.1220
    6mm
    28mm
    66mm


    Kindly share me formula or valuable suggestion. It's urgent for me. Please help me on priority bases.
  • To post as a guest, your comment is unpublished.
    sANJANA SURESH · 2 years ago
    HI,
    This formula is not working for me. giving error.
    here is my data

    1 A
    2 B
    3 C
    4 D
    5 E
    6 F
    7 G
    8 H
    9 I
    10 J
    This needs to be converted to the below

    1
    2
    A
    B
    3
    4
    C
    D
    5
    6
    E
    F
    7
    8
    G
    H
    9
    10
    I
    J


    PLEASE HELP ME ASAP. ITS REALLY URGENT. THANK YOU
  • To post as a guest, your comment is unpublished.
    RIAZ · 2 years ago
    I want to convert multiple column into single row in sequene. for example
    jan feb march april may june

    I want in this way

    jan

    feb

    march

    april

    may

    please comment
    • To post as a guest, your comment is unpublished.
      Phillip Kruchten · 2 years ago
      Copy the data into memory, then use the Paste Special, Tranpose option, this will convert your row of data into a column of data.
  • To post as a guest, your comment is unpublished.
    bsac · 2 years ago
    This did not work for me because I have 98 columns and 230 rows of uneven data. That is ROW 1 may have only 3 entries (A1, B1 & C1). While, row 2 may have 5 entries (A1, B1, C1, D1, E1) etc....etc..... you get the gist over the huge table of 98 columns and 230 rows.
  • To post as a guest, your comment is unpublished.
    bob · 2 years ago
    This did not work for me because I have 98 columns and 230 rows of uneven data. That is ROW 1 may have only 3 entries (A1, B1 & C1). While, row 2 may have 5 entries (A1, B1, C1, D1, E1) etc....etc..... you get the gist over the huge table of 98 columns and 230 rows.


    The formula did not work. Any suggestions?
  • To post as a guest, your comment is unpublished.
    budi · 2 years ago
    Hi. . . I have multiple range with same dimension in each sheet of excel file.
    Is it possible to transform column row range into single column for each sheet all at once?
  • To post as a guest, your comment is unpublished.
    Pj · 2 years ago
    Hello all,

    Is there a way to transpose multiple columns into single column based on a primary key, without using kutools?

    Example: Left table should be converted into right table:
    Id A B C D ID Category
    1 0 3 1 0 1 B
    2 1 2 1 0 1 B
    3 0 0 1 2 1 B
    4 0 1 0 0 1 C
    5 2 0 0 1 2 A
    2 B
    2 B
    2 C
    3 C
    3 D
    3 D
    4 B
    5 A
    5 A
    5 D
  • To post as a guest, your comment is unpublished.
    Ric · 2 years ago
    To get from
    A1 B1 C1
    A2 B2 C2

    to

    A1
    A2
    B1
    B2
    C1
    C2

    Use:
    =INDEX(Range,MOD(ROW(A1)+ROWS(Range)+1,ROWS(Range)+1),1+INT(ROW(A1)/(ROWS(Range)+1)))

    Ric
    • To post as a guest, your comment is unpublished.
      Gershome · 2 years ago
      This formula is not working for me. giving error.
      here is my data

      A1 B1
      A2 B2
      A3 B3
      A4 B4
      A5 B5
      A6 B6

      This needs to be converted to the below

      A1
      A2
      A3
      A4
      A5
      A6
      B1
      B2
      B3
      B4
      B5
      B6


      Please help me
  • To post as a guest, your comment is unpublished.
    MICHAEL · 2 years ago
    Using formula with same data ends up showing AA in E1. Not sure why?

    =INDEX(MyData,1+INT((ROW(A1)-1)/COLUMNS(MyData)),MOD(ROW(A1)-1+COLUMNS(MyData),COLUMNS(MyData))+1)
  • To post as a guest, your comment is unpublished.
    Fritz · 2 years ago
    Awesome makro! I just have a "minor" problem. I get stuck with an error: "Overflow (Error 6)". I have a table with many empty cells but still 51 columns and 1561 rows. Did anybody already faced such dimensions and problems? I guess it's really just a technical limit that I'm breaching here.
    Thanks for any help
    BR
    Fritz
  • To post as a guest, your comment is unpublished.
    Ryan · 3 years ago
    Hey,

    I was wondering how to change the to use two absolute values for the cells. This script is great and I want to add it into a bigger macro that requires no user input.
    Set Range1 = Application.InputBox("Source Ranges:", xTitleId, Range1.Address, Type:=8)
    Set Range2 = Application.InputBox("Convert to (single cell):", xTitleId, Type:=8)

    These two ranges need to be changed, but having some trouble.
    I tried this but am getting overflow errors.
    Set Range1 = Range("O2:BA1000")
    Set Range2 = Range("N2")

    Any ideas?
  • To post as a guest, your comment is unpublished.
    Joel · 3 years ago
    Fantastic VBA for transforming columns and rows into a single sorted column. Just saved me a ton of time. Thanks!
  • To post as a guest, your comment is unpublished.
    Gopi · 3 years ago
    Amazing.. thanks a ton..
  • To post as a guest, your comment is unpublished.
    Srikanth · 3 years ago
    I have different rows and column with large data. example as

    Mon jan Feb
    Cat N S W E N S W E
    A 4 6 7 8 1 2 3 4
    B 1 2 3 4 4 3 2 1
    C 3 2 4 4 3 2 4 6

    Now i have 2 years data which needs to copy pasted. can we do it any formula to get the February month data under January month.
  • To post as a guest, your comment is unpublished.
    rojo · 3 years ago
    Thank you so much. Awesome job!
  • To post as a guest, your comment is unpublished.
    bbe · 3 years ago
    Thank you so much!! This saved me so much time and worked perfectly for combining multiple columns into a single column.
  • To post as a guest, your comment is unpublished.
    Ann Voltz · 3 years ago
    Anyone know how to convert the following: Keeping 1st 3 columns the same but moving the rest of the columns to one column with the data lined up with the correct row. FROM THIS-
    14.05.2016 14:35:02 c8k000001 CHO2A ALB2 SI-I LDL_C GLUC3
    14.05.2016 14:35:03 c8k000002 CDC05 CHO2A ALB2 SI-I LDL_C
    14.05.2016 14:18:15 c8k000003 CDC05 ALTL CHO2A ALB2 SI-I

    TO THIS -
    14.05.2016 14:35:02 c8k000001 CHO2A
    ALB2
    SI-I
    LDL_C
    GLUC3
    14.05.2016 14:35:03 c8k000002 CDC05
    CHO2A
    ALB2
    SI-I
    LDL_C
    14.05.2016 14:18:15 c8k000003 CDC05
    ALTL
    CHO2A
    ALB2
    SI-I
    Really looking forward to some help with this one. Thanks!
    • To post as a guest, your comment is unpublished.
      Chris · 3 years ago
      I need the same solution as Ann. Your help is much appreciated
  • To post as a guest, your comment is unpublished.
    pinokio · 3 years ago
    If you do this and you also have dates in column A and customers in column (B1;D1), how do you adjus these likewise, so you will get it in column D and E next to the values? This also means that you get one customer and one date 3 times afer each other (18/07/2016) AA (18/07/2016) BB etc.
  • To post as a guest, your comment is unpublished.
    thomas · 3 years ago
    In case column A defines the group, and the other cells are exactly like this. You still want to get everything in one cell (except column A) and you want to adjust cell A so it still continues displaying to which value the columns belong after this (which means for example that group 1 has to repeated 3 times. I hope it's clear, can anyone tell me how to do that please
  • To post as a guest, your comment is unpublished.
    Happy Data Girl · 3 years ago
    Transpose/Convert columns and rows into single column with VBA code:
    THIS WAS AWESOME!!!!!! I was able to merge some columns appropriately and preserve the cell formatting!!!! I have mixed formats within cells (italics, bold, regular etc.) using mostly text relating to species biological analyses, and trying to keep that formatting in excel to use for exports can be VERY difficult when merging or rearranging data. This worked flawlessly and quickly, I kept crashing my VBA for merging cells and preserving formatting because the amount of data within a cell got to be too much. THANK YOU to whoever put this out there!!!
    Best Wishes,
    Happy Data Girl
  • To post as a guest, your comment is unpublished.
    Lavi Shawn · 3 years ago
    pradeep.kumar@rsrit.com
    rash@svktechinc.com
    Akshit kumar7hAkshit kumarHi s to akshith@smtworks.com
    K. Sandeep Babu {KSB}7hK. Sandeep Babu {KSB} to sandeep.babu@stiorg.com
    Anup Kumar7hAnup Kumar s on basis to anup@r3tek.com
    harsha Hemanth6hharsha Hemanth s to hemanth@imbuesys.com
    sriram rao6hsriram raopls recuirnts to sriram@itcomnce.com
    Radha Reddy6hRadha Reddy s at radha@infogensoftware.com
    Raja sekhar Reddy6hRaja sekhar Reddy to raj@prospectinfosys.com


    This is my data and I need to separate email IDS. Please help how to do it.
  • To post as a guest, your comment is unpublished.
    Nathan · 3 years ago
    phewwwwww!!!!!

    after hours of researching on how to do this
    GREAT WORK and thanks a lot

    Kind regards
    Nathan
  • To post as a guest, your comment is unpublished.
    Karpagaraj · 3 years ago
    Thanks it was very much helpful.....
  • To post as a guest, your comment is unpublished.
    Ramu b · 4 years ago
    This formula works better when data is in square format,

    =INDEX(Range,MOD(ROW(B5)-1+COLUMNS(Range),COLUMNS(Range))+1,1+INT((ROW(B5)-1)/COLUMNS(Range)))

    but challenge is how to use this formula when data is odd & even Rows & columns and also Dynamic range (Rows or Columns) data.

    Eg: A1:A5,B1:B4,C1:C6 range of data
    • To post as a guest, your comment is unpublished.
      joel · 4 years ago
      yeah i agree, is this possible if the no. of rows in each column is uneven?
  • To post as a guest, your comment is unpublished.
    s.mojtaba · 4 years ago
    thanks.It was very good.
  • To post as a guest, your comment is unpublished.
    Henock · 4 years ago
    Thank you very much! It saved my time and it is effective!!!!!!
  • To post as a guest, your comment is unpublished.
    DJ · 4 years ago
    Hi guys, I also needed to see down-then-across (a1, a2, a3, b1, b2, b3 etc) instead of across-then-down but that can be done easily by switching the formula to:

    =INDEX(Range,MOD(ROW(B5)-1+COLUMNS(Range),COLUMNS(Range))+1,1+INT((ROW(B5)-1)/COLUMNS(Range)))

    Note how the original formula was:

    =INDEX(Range,1+INT((ROW(A1)-1)/COLUMNS(Range)),MOD(ROW(A1)-1+COLUMNS(Range),COLUMNS(Range))+1)

    So this was simply a matter of switching parts before and after the comma. Thanks for this thread, helped a lot!
  • To post as a guest, your comment is unpublished.
    Dave · 4 years ago
    This was a HUGE help!! Thank you so much for posting!!
  • To post as a guest, your comment is unpublished.
    Jowjow · 4 years ago
    Very helpful! Thanks!
  • To post as a guest, your comment is unpublished.
    VCR · 4 years ago
    AMAZING! Thank you for posting for the world to benefit from your knowledge!
  • To post as a guest, your comment is unpublished.
    Ari · 4 years ago
    The order shown is across-then-down (A1, B1, C1, A2, B2, C2 ...) . I need down-then-across (A1, A2, A3, B1, B2, B3, ...). Is there a way to do that?
  • To post as a guest, your comment is unpublished.
    Poshiya Nikunj · 4 years ago
    Now I Feel Great........

    You Save My 30 Hours Of Work.....

    Excellent Work.
  • To post as a guest, your comment is unpublished.
    newb · 4 years ago
    thank you:) but how to less 0 value or null on the table or on the name of a range?
  • To post as a guest, your comment is unpublished.
    wil · 4 years ago
    Your indexing formula was exactly what i needed. Only note is that when copied, there is a "." at the end and Excel doesn't like that. Minor issue.
  • To post as a guest, your comment is unpublished.
    Parisa · 5 years ago
    Thank you very much.
  • To post as a guest, your comment is unpublished.
    steve trifelos · 5 years ago
    I'm using the .xls formula to convert a range of data into one column. I have input the formula as specified with my range name, but I am not clear on 'drag the formula to the cell until the error message appears'. I can't drag the formula anywhere from the formula bar. I'm sure it is user error but can you please help? Thanks
  • To post as a guest, your comment is unpublished.
    Phildobya · 6 years ago
    Full formula is =INDEX(Range,1+INT((ROW(A1)-1)/COLUMNS(Range)),MOD(ROW(A1)-1+COLUMNS(Range),COLUMNS(Range))+1)
    • To post as a guest, your comment is unpublished.
      steve trifelos · 5 years ago
      how did you 'drag the formula to the cell'? I can't drag it from the formula bar.
  • To post as a guest, your comment is unpublished.
    Chris · 6 years ago
    Is there a way to do this but when it grabs the range, it starts from A1 and does all of column A downward, and then grabs Column B and etc?
  • To post as a guest, your comment is unpublished.
    Muz · 6 years ago
    NICE! Thanks so much! Saved me tons of time!
  • To post as a guest, your comment is unpublished.
    Jow · 6 years ago
    Would have been nice to see the full equation in #2.