To combine values CONCATENATE is the best way, but…
With this function, it’s not possible to refer to an entire range.
You need to select all the cells of a range one by one.
...and if you try to refer to an entire range, it will return the text from the first cell.
In this situation, you do need a method where you can refer to an entire range of cells to combine it in a single cell.
So today in this post...
..I'd like share with you 5 different ways to combine text from a range...
...into a single cell.
Top 5 Ways to Combine Values from a Range of Cells
Below are those ways which you can use to combine values from a range of cells.
...so let's get started.
1. Using a Formula [CONCATENATE + TRANSPOSE] to Combine Values
The best way to combine text from different cells into one cell is using transpose function with concatenate function.
Look at the below range of cells...
...where you have a text but its every word is in a different cell and you want to get is all in one cell.
Below are the steps you need to follow to combine values from this range of cells into one cell.
- In the B8, insert formula (=CONCATENATE(TRANSPOSE(A1:A5)&" ")) and do not press enter.
- Now, just select the entire inside portion of concatenate function and press F9. It will convert it into an array.
- After that, remove the curly brackets from the start and the end of the array.
- In the end, hit enter.
That’s all.
...how this formula works
In this formula, you have used TRANSPOSE and a space in the CONCATENATE.
When you convert that reference into hard values it returns an array.
In this array, you have text from each cell and a space between them...
...and when you hit enter, it combines all of them.
2. Combine Text using Fill Justify Option
Fill justify is one of the unused but most powerful tools in Excel.
And, whenever you need to combine text from different cells you can use it. The best thing is, you need a single click to merge text.
Have look at below data and follow the steps.
- First of all, make sure to increase the width of the column where you have text.
- After that, select all the cells.
- In the end, go to Home Tab ➜ Editing ➜ Fill ➜ Justify.
This will merge text from all the cells into the first cell of the selection.
3. TEXTJOIN Function for CONCATENATE Values
If you are using Excel 2016 (Office 365), there is a function called “TextJoin”.
It can make it easy for you to combine text from different cells into a single cell.
Syntax:
TEXTJOIN(delimiter, ignore_empty, text1, [text2], …)
- delimiter a text string to use as a delimiter.
- ignore_empty true to ignore blank cell, false to not.
- text1 text to combine.
- [text2] text to combine optional.
How to use it
To combine below list of values you can use the formula:
=TEXTJOIN(" ",TRUE,A1:A5)
Here you have used space as a delimiter, TRUE to ignore blank cells and entire range in a single argument.
In the end, hit enter and you’ll get all the text in a single cell.
4. Combine Text with Power Query
Power Query is a fantastic tool and I love it. Make sure to check out this (Excel Power Query Tutorial)
You can also use it to combine text from a list in a single cell. Below are the steps.
- Select the range of cells and click on "From table" in data tab.
- If will edit your data into Power Query editor.
- Now from here, select the column and go to “Transform Tab”.
- From “Transform” tab, go to Table and click on “Transpose”
- Next, you need to merge all the columns.
- For this, select all the columns (select first column, press and hold shift key, click on the last column) and press right click and then select “Merge”.
- After that, from Merge window, select space as a separator and name the column.
- In the end, click OK and click on “Close and Load”.
Now, you have a new worksheet your workbook with all the text in a single cell.
The best thing about using Power Query is you don’t need to do this setup again and again.
When you update old list with a new value you need to refresh your query...
...and it will add that new value in the cell.
5. VBA Code to Combine Values
If you want to use a macro code to combine text from different cell then I have something for you.
With this code, you can combine text in no time.
All you need to do, select the range of cells where you have text and run this code.
Sub combineText()
Dim rng As Range
Dim i As String
For Each rng In Selection
i = i & rng & " "
Next rng
Range("B1").Value = Trim(i)
End Sub
Make sure to specify your desired location in the code where you want to combine the text.
In the End,
There may be the different situations for you where you need to concatenate a range of cell into a single cell.
And that’s why we have these different methods.
All methods are easy and quick, you need to select the right method as per your need.
I must say that give a try to all the methods once and tell me:
Which one is your favorite and worked for you?
Please share your views with me in the comment section. I'd love to hear from you, and please, don’t forget to share this post with your friends, I am sure they will appreciate it.
You must Read these Next
- Convert a Formula to Value in Excel: Sometimes we need to convert all the formula in static values...
- Add Leading Zeros in Excel: Normally in a cell it's not possible to add a leading zeros but you...
- Count Cells with Text: For counting cells where you have text you can use these 6 different methods...
- Count Words in Excel: When it comes to Excel there is no such option to count words. You can...
- Count Unique Values in Excel: There are total six methods which you can use to count unique...
- Highlight Blank Cells in Excel: It's better to highlight blank cells and the best way to do this is by...
- R1C1 Reference Style: There few Excel users who know that there are two different reference style in Excel...
- Wildcard Characters in Excel: These wildcard characters are all about searching/looking up for a text...
- Hide Formula in Excel: Sometimes you simply don’t want to show a formula to others. In Excel, there..
- Remove First Character: To remove first or n characters from a string you can use these 5 methods and the...
About the Author
Puneet is using Excel since his college days. He helped thousands of people to understand the power of the spreadsheets and learn Microsoft Excel. You can find him online, tweeting about Excel, on a running track, or sometimes hiking up a mountain.
Great help!
115750-760 ,765how to convert in column with serial wise
Hi,
You’re a genius. Very very help for me. Thanks a lot.
Regards,
Al-Amin
Hello,
Is it possible via formula, w/o vba nor Power Tools, to combine 2 arrays (generated by formula) into a non-array value separated by comas. Textjoin will work with only 1 array but returns the first element when there is a division of array inside the Textjoin formula. I also tried to have another cell to do the division w/o luck. If u need to know why I’m doing this, I’ll be glad to add more details.
TQ, KR!
Thank you so much for this, the formula worked perfectly – saved me ages. Thanks 🙂
😉
Thank you for this VBA code. It works great! However, I want to add one more aspect to the code and I can’t quite figure it out.
I would like for the code to locate a cell, based on a certain text, then select everything in the list below that cell. Is that something easily doable?
Good morning.
Thanks for the interesting article. Unfortunately, as far as I can see, none of the methods actually does what I want.
I am writing an accounting spreadsheet, and I want a column that shows an error message if there is anything unexpected in the columns where I enter data, or in the calculation columns. At present, it is a huge long tangle of nested if statements and messages joined by “&” operators. I want to simplify this by setting up some columns, each of which detects a particular error, and generates an appropriate message if it finds it. This will make it much easier to add more error checking in future – just insert more columns in this part of the sheet.
In this scenario, the error message column (the one that is always visible) needs to be a concatenation of all the individual error columns.
The first two methods don’t work, since they use the values of the cells at the time you type the formula, while I want one that continually updates as the data – and messages – change.
The third method doesn’t work because I am using the standalone Excel 2016, which doesn’t have TEXTJOIN. This is particularly frustrating, because TEXTJOIN is exactly the function I need!
One day, I intend to add some VBA code to my spreadsheet to cover things like year end (when I have to chop off a year’s worth of data and replace it with a few lines of carried-forward values), but I have never programmed in VB (of any flavour), so this is going to be a major project. (Maybe I’ll use Python code instead.) The problem I foresee here is that code generally executes when the user clicks a button; formulae execute when you change a cell on which they depend. If I set up a VBA program to execute every time I enter data, and it computes this for every line of the spreadsheet, it introduces a huge processing overhead! And if I (or anyone else using the sheet) can remember to click a “check for errors” button, we can remember to check for errors anyway.
So this leaves Power Query. I’d never even heard of this tool before I read your article! If (as I suspect) I need to click something to refresh my query in order to check for errors, then it suffers from the same problem as VBA. But it’s worth further investigation. Thank you for bringing it to my attention.
Maybe I need to migrate to Excel 2019. Now that I have (I think) sorted out all the bugs that were introduced when I migrated from Excel 2007 to Excel 2016, that’s a possibility. (The bugs mostly concerned the changed behaviour of SUMIF when the data range and criterion range were different lengths)
In the meantime, I shall probably set up the columns I need, and concatenate them with & or CONCATENATE. I’ll just have to remember to add more arguments to the formula whenever I add more error checking columns.
Philip.
Philip
This may be a bit out of date now. However, if the above VBA is adjusted, it can be used to return the concatenated strings as a normal formula, enter (something like) the following into a VBA module (Alt-F11, Insert-Module):
“Public Function RANGECAT(rng1 As Range, Optional rng2 As Range) As String
Dim r1 As Integer, c1 As Integer, r2 As Integer, c2 As Integer
Dim cel As String
cel = “”
For c1 = 1 To rng1.Columns.Count
For r1 = 1 To rng1.Rows.Count
cel = cel + rng1.Cells(r1, c1)
Next r1
Next c1
If rng2 Is Nothing Then
Else
For c2 = 1 To rng2.Columns.Count
For r2 = 1 To rng2.Rows.Count
cel = cel + rng2.Cells(r2, c2)
Next r2
Next c2
End If
RANGECAT = cel
End Function”
The “combineText = cel” returns the value found. Further ranges can be added as needed (using “Optional rng3 as range, …” and repeating the rng2 for loops).
Hope it helps
Hi Puneet,
I have 1 Query in VBA Example : Ship Mode : Instant Air
And Customer Name’s : Jeremy Lonsdale
Cindy Schnelling
Susan Vittorini
Toby Braunhardt
Ralph Arnett
Harold Engle
Helen Abelman
Guy Armstrong
Jennifer Braxton
Giulietta Baptist
And I need the result is Instant Air
Roy Skaria, Jeremy Lonsdale, Cindy Schnelling, Susan Vittorini, Toby Braunhardt, Ralph Arnett, Harold Engle, Helen Abelman, Guy Armstrong, Jennifer Braxton, Giulietta Baptist, Erica Bern, Christopher Schild, Joy Smith, Evan Minnotte, Jenna Caffey,
Like this Instant Air Would be one line remaining all are in one line with commas how it is possible can you let me know.
Hello Sir,
first of all would like to say thankful to you because few days ago I have been working on your blogs all are most important and helpful for us again thank you so much sir
Regards
Sandeep Singh
Hi Puneet, when I try to combine cells using formula Concatenate with separater “; “ it returns “\” instead of “,” after I hit F9. Does it have something to do with Excel settings? I tried it at my collegue’s PC and it works as it should and we both use Excel 2010
You mean “;” instead of a ” “?
There were very useful tips. Thanks a lot. TEXTJOIN was something new I learned today. It was really handy.
I’m glad you liked it.
I tried 3 of these with partial success.
* When I do the CONCATENATE(TRANSPOSE) one and hit F9 to create the array, it puts a semicolon between each character instead of a comma. Then I have to change all of them to commas for it to work correctly.
* JUSTIFY just did nothing at all.
* And when I tried TEXTJOIN it seemed to confuse my computer. It doesn’t seem to know what TEXTJOIN means.
Any suggestions? (I’m using Excel 2010)
With justify, you need to make the cells (where you text) enough wide so that the entire text can be merged into one cell.
Ahhh, the text has to be arranged in a column for it to work! That appears to be the fastest option, but can it be done with Justify on text across a row?
One possible answer to the first problem – of a semi-colon instead of a comma – is explained in this article (easier than writing it out here ;-} ) .. https://www.excel-exercise.com/comma-or-semicolon-in-excel-formula/
As you’re using Excel 2010, TEXTJOIN will not exist – you need Excel 2016 (365 version specifically, the standalone Excel 2016 doesn’t have it either [which annoys me!]). I’m not sure when JUSTIFY was added as an Excel formula. I think you need to upgrade your Excel.
All of the them are simple and fast…Thanks
Dear Puneet,
Thanks so much for this. These are very useful time and labor saving methods !
Keep up the good work Sir !
Thanks for your words, Rajiv
AHHH Justify! So helpful!!! Thank you!!!!
You’re Welcome, Kelly.
Simply superb
Thanks for your words, Krishna.
Good Tutorial. First two methods are good. Still, the 2nd option is the best. I am using Excel 2007.
Yes, I can say that Fill Justify is the fastest way to combine text.
In cell A1 there is 5.20
Cell B1 there is 5.26
and In Cell C1 there is 5.30
when I combine these three cells using formula Concatenate with separater “-” It will shows result “5.2-5.26-5.3” instead of 5.20-5.26-5.30. Can you please guide how do I do?
TEXTJOINT – Awesome
Yes, that’s right.
this site is always helpful. Every time I learn new thing one I come here.
Thanks you so much
Thanks for your Words. 🙂
Power Query method worked great, thanks.
Power Query is the real Power.
great!!! thank you sooo much..
You’re Welcome.
Justify method is awesome…
I’m so glad you liked it. 🙂
I am working with Spanish version. When I follow your instructions, after F9 I get:
=CONCATENAR({“Today “”is “”a “”beautiful “”day “})
After removing curly brackets, In order to obtain the correct result, we must change “” by “&”. This was the only way it worked for me.
Please correct me case I was wrong.
Thanks. Very interesting article.
Carlos.
You are right, / is not a concatenation operator.
Hello Puneet,
I like to use the macro. It works like a charm. Thank you.
That’s great.
This is great!
I would (never) would have thought of these solutions (mainly the Concatenate one).
Thanks.
I’m so glad to hear this.
Very nice guidance on concatenate function. I liked and found useful for me with the transpose function. Thanks a lot!
You’re welcome.
Thanks for sharing
I’m so glad you liked it. 🙂
Very very useful information sir
I’m so glad you liked it.
fantastic knowledge
I’m so glad you liked it. 🙂