How to transpose data from column into one single cell in Excel?
When you need to transpose a list of data into one single cell in a worksheet, normally, you can apply the Concatenate function to merge the list of cells into one cell, but, it will be complex if there are huge data need to be combined. This article, I will talk about some quick tricks for you to solve this task in Excel.
Except the Concatenate function to merge a list of cell values, you can apply the following VBA code to get the result as quickly as you can.
1. Hold down the ALT + F11 keys, and it opens the Microsoft Visual Basic for Applications window.
2. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Transpose data from column into one single cell
Function transposeRange(Rg As Range) 'updateby Extendoffice Dim xCell As Range Dim xStr As String For Each xCell In Rg If Not IsEmpty(xCell.Value) Then xStr = xStr & xCell.Value & "," End If Next transposeRange = Left(xStr, Len(xStr) - 1) End Function
3. Then save and close this code, go back the worksheet, and enter this formula: =transposerange(A1:A10) into a blank cell to put the result, and press Enter key, you will get all the cell values in a column have been located in a single cell, see screenshot:
Note: In the above code, A1:A10 is the list range you want to transpose into one single cell, and also, you can separate the merged content with other delimiters, such as comma, dash, space, etc. by just changing the comma in the script xStr = xStr & xCell.Value & ",".
If you have Kutools for Excel, with its powerful tool-Combine, you can combine data in a column, row or a range to one cell.
|Kutools for Excel : with more than 300 handy Excel add-ins, free to try with no limitation in 30 days.|
After installing Kutools for Excel, please do as follows:( Free Download Kutools for Excel Now! )
1. Select the data column that you want to combine into one cell.
2. Click Kutools > Merge & Split > Combine Rows, Columns or Cells without Losing Data, see screenshot:
3. In the popped out dialog box, select Combine into single cell under the To combine selected cells according to following options, and then specify a separator to separate the merged content, see screenshot:
4. Then click Ok or Apply button, and you will get the following result as you need:
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.· 14 days agoThis has been ridiculously helpful to me a number of times. Thank you so much!
- To post as a guest, your comment is unpublished.· 3 years agoHi,
Thanks a lot! I'm using your following function and it works very well. I would like to include an "if" function in the transposerange. What should I add to the function in VBA? Basically, it would work like a countif. So we would read the formula =transposerangeif(range,criteria).
Thanks in advance!
Function transposeRange(Rg As Range)
'updateby Extendoffice 20151207
Dim xCell As Range
Dim xStr As String
For Each xCell In Rg
If Not IsEmpty(xCell.Value) Then
xStr = xStr & xCell.Value & ","
transposeRange = Left(xStr, Len(xStr) - 1)
- To post as a guest, your comment is unpublished.· 3 years agoHello,Sophie,
Could you give an example for your need, you can insert a screenshot here.
- To post as a guest, your comment is unpublished.· 3 years agoThanks, this was very helpful.