*In this tutorial, you will learn various ways to concatenate text strings, cells, ranges, columns and rows in Excel using the CONCATENATE function and "&" operator*.

In your Excel workbooks, the data is not always structured according to your needs. Often you may want to split the content of one cell into individual cells, or do the opposite - combine data from two or more columns into a single column. Common examples that require concatenation in Excel are joining names and address parts, combining text with a formula-driven value, displaying dates and times in the desired format, to name a few.

In this tutorial, we are going to explore various techniques of Excel string concatenation so that you can choose the method best suited for your worksheets.

In essence, there are two ways to combine data in Excel spreadsheets:

- Merge cells
- Concatenate cells' values

When you **merge** cells, you "physically" merge two or more cells into a single cell. As a result, you have one larger cell that is displayed across multiple rows and/or columns in your worksheet.

When you **concatenate** cells in Excel, you combine only the **contents** of those cells. In other words, concatenation in Excel is the process of joining two or more values together. This method is often used to combine a few pieces of text that reside in different cells (technically, these are called *text strings* or simply *strings*) or insert a formula-calculated value in the middle of some text.

The following screenshot demonstrates the difference between these two methods:

Merging cells in Excel is the subject of our next article, and in this tutorial we will tackle two essential ways to concatenate strings in Excel - by using the CONCATENATE function and the Excel **&** operator.

The CONCATENATE function in Excel is designed to join different pieces of text together or combine values from several cells into one cell.

The syntax of Excel CONCATENATE is as follows:

CONCATENATE(text1, [text2], …)

Where **text** is a text string, cell reference or formula-driven value.

Below you will find a few examples of using the CONCATENATE function in Excel.

The simplest CONCATENATE formula to combine the values of cells A1 and B1 is as follows:

`=CONCATENATE(A1, B1)`

Please note that the values will be knit together without any delimiter, as in row 2 in the screenshot below.

To separate the values with a space, enter " " in the second argument, as in row 3 in the screenshot below.

`=CONCATENATE(A1, " ", B1)`

To separate the concatenated values with other delimiters such as a comma, space or slash, please see Excel CONCATENATE formulas with special characters.

There is no reason for the Excel CONCATENATE function to be limited to only joining cells' values. You can also use it to concatenate various text strings to make the result more meaningful. For example:

`=CONCATENATE(A1, " ", B1, " completed")`

The above formula informs the user that a certain project is completed, as in row 2 in the screenshot below. Please notice that we add a space before the word " completed" to separate the concatenated text strings.

Naturally, you can add a text string in the beginning or in the middle of your Concatenate formula as well:

`=CONCATENATE("See ", A1, " ", B1)`

A space (" ") is added in between the combined values, so that the result displays as "Project 1" rather than "Project1".

To make the result returned by some formula more understandable for your users, you can concatenate it with a text string that explains what the value actually is.

For example, you can use the following formula to return the current date:

`=CONCATENATE("Today is ",TEXT(TODAY(), "dd-mmm-yy"))`

To ensure that your CONCATENATE formulas always deliver the correct results, remember the following simple rules:

- Excel CONCATENATE function requires at least one "text" argument to work.
- In a single CONCATENATE formula, you can concatenate up to 255 strings, a total of 8,192 characters.
- The result of the CONCATENATE function is always a text string, even when all of the source values are numbers.
- Excel CONCATENATE does not recognize arrays. Each cell reference must be listed separately. For example, you should write
`=CONCATENATE(A1, A2, A3)`

instead of`=CONCATENATE(A1:A3)`

. - If at least one of the CONCATENATE function's arguments is invalid, the formula returns a #VALUE! error.

In Microsoft Excel, **&** operator is another way to concatenate cells. This method come in very handy in many scenarios because typing the ampersand sign (&) is much quicker than typing the word "concatenate" :)

Similarly to the CONCATENATE function, you can use "&" in Excel to combine different text strings, cell values and results returned by other functions.

To see the concatenation operator in action, let's re-write the CONCATENATE formulas discussed above:

Concatenate the values in A1 and B1:

`=A1&B1`

Concatenate the values in A1 and B1 separated with a space:

`=A1&" "&B1`

Concatenate the values in A1, B1 and a text string:

`=A1 & B1 & " completed"`

Concatenate a string and the result of the TEXT / TODAY function:

`="Today is " & TEXT(TODAY(), "dd-mmm-yy")`

As demonstrated in the screenshot below, the CONCATENATE function and "&" operator return identical results:

Many users wonder which is a more efficient way to concatenate strings in Excel - CONCATENATE function or "&" operator.

The only essential difference between CONCATENATE and "&" operator is the 255 strings limit of the Excel CONCATENATE function and no such limitations when using the ampersand. Other than that, there is no difference between these two concatenation methods, nor is there any speed difference between the CONCATENATE and "&" formulas.

And since 255 is a really big number and in real-life tasks someone will hardly ever need to combine that many strings, the difference boils down to the comfort and ease of use. Some users find CONCATENATE formulas easier to read, I personally prefer using the "&" method. So, simply stick to the concatenation technique that you feel more comfortable with.

In your worksheets, you may often need to join values in a way that includes commas, spaces, various punctuation marks or other characters such as a hyphen or slash. To do this, simply include the character you want in your concatenation formula. Remember to enclose that character in quotation marks, as demonstrated in the following examples.

Concatenating two cells with a space:

`=CONCATENATE(A1, " ", B1)`

or `=A1 & " " & B1`

Concatenating two cells with a comma:

`=CONCATENATE(A1, ", ", B1)`

or `=A1 & ", " & B1`

Concatenating two cells with a hyphen:

`=CONCATENATE(A1, "-", B1)`

or `=A1 & "-" & B1`

The following screenshot demonstrates how the results may look like:

Most often, you would separate the concatenated text strings with punctuation marks and spaces, as shown in the previous example. In some cases, however, may need to separate the values with a line break, or carriage return. A common example is merging mailing addresses from data in separate columns.

A problem is that you cannot simply type a line break in the formula like a usual character, and therefore a special CHAR function is needed to supply the corresponding ASCII code to the concatenation formula:

- On Windows, use CHAR(10) where 10 is the ASCII code for
*Line feed*. - On the Mac system, use CHAR(13) where 13 is the ASCII code for
*Carriage return*.

In this example, we have the address pieces in columns A through F, and we are putting them together in column G by using the concatenation operator "&". The merged values are separated with a comma (", "), space (" ") and a line break CHAR(10):

`=A2 & " " & B2 & CHAR(10) & C2 & CHAR(10) & D2 & ", " & E2 & " " & F2`

In the same manner, you can separate concatenated strings with other characters such as:

- Double quotes (") - CHAR(34)
- Forward slash (/) - CHAR(47)
- Asterisk (*) - CHAR (42)
- The full list of
**ASCII codes**is available

Though, an easier way to include printable characters in the concatenation formula is to simply type them in double quotes as we did in the previous example.

Either way, all four of the below formulas yield identical results:

`=A1 & CHAR(47) & B1`

`=A1 & "/" & B1`

`=CONCATENATE(A1, CHAR(47), B1)`

`=CONCATENATE(A1, "/", B1)`

In order to concatenate two or more columns in Excel, you just enter a usual concatenation formula in the first cell, and then copy it down to other cells by dragging the fill handle (the small square that appears in the lower right hand corner of the selected cell).

For example, to concatenate two columns (column A and B) separating the values with a space, you enter the following formula in cell C2, and then copy it down to other cells. When you are dragging the fill handle to copy the formula, the mouse pointer changes to a cross, as shown in the screenshot below:

Please note that Microsoft Excel determines how far to copy cells after the fill handle double click based on the cells referred to by your formula. If there happen to be empty cells in your table, say cell A6 and B6 were blank in this example, the formula would be copied up to row 5 only. In this case, you would need to drag the fill handle down manually to concatenate the entire columns.

An alternative way to concatenate columns in Excel is to use the corresponding option of the Merge Cells add-in.

Combining values from multiple cells might take some effort because the Excel CONCATENATE function does not accept arrays and requires a single cell reference in each argument.

To concatenate several cells, say A1 to A4, you need either of the following formulas:

`=CONCATENATE(A1, A2, A3, A4)`

or

`=A1 & A2 & A3 & A4`

When joining a fairly small range, it's no big deal to enter all the references in the formula bar. A large range would be tedious to add, typing each cell reference manually. Below you will find 3 methods of quick range concatenation in Excel.

To quickly select several cells, you can press the CTRL key and click on each cell you want to include in the CONCATENATE formula. Here are the detailed steps:

- Select a cell where you want to enter the formula.
- Type =CONCATENATE( in that cell or in the formula bar.
- Press and hold Ctrl and click on each cell you want to concatenate.
- Release the Ctrl button, type the closing parenthesis in the formula bar and press Enter.

When you need to concatenate a huge range consisting of tens or hundreds of cells, the previous method is not fast enough because it requires clicking on each cell. In this case, a better way is to use the TRANSPOSE function to return an array, and then replace it with individual cell references in one fell swoop.

- In the cell where you want to output the concatenated range, enter the TRANSPOSE formula, for example:
`=TRANSPOSE(A1:A10)`

- In the formula bar, press F9 to replace the formula with calculated values. As the result, you will have an array of numbers to be concatenated.
- Delete the curly braces surrounding the array values.
- Type =CONCATENATE( before the first value, then type the closing parenthesis after the last value, and press Enter.

A quick and formula-free way to concatenate any range in Excel is to use the Merge Cells add-in for Excel with the "*Merge all areas in selection*" option turned off, as demonstrated in Combine the values of several cells into one cell.

When you concatenate a text string with a number or date, you may want to format the result differently depending on your dataset. To do this, embed the TEXT function in your Excel concatenate formula.

The TEXT(value, format_text) function has two arguments:

- In the first argument (
**value**), you supply a number or date to be converted to text, or a reference to the cell containing a numeric value. - In the second argument (
**format_text**), you enter the desired format using the codes that the TEXT function can understand.

We have already discussed one such formula in the beginning of this tutorial that concatenates text and date.

I will remind you that when combining a **text string and date**, you have to use the TEXT function to display the date in the desired format. For example:

`=CONCATENATE("Today is ", TEXT(TODAY(), "mm/dd/yy"))`

or

`="Today is " & TEXT(TODAY(), "mm/dd/yy")`

A few more formula examples that concatenate a **text value and number** follow below:

`=A2 & " " & TEXT(B2, "$#,#0.00")`

- display the number with 2 decimal places and the $ sign.

`=A2 & " " & TEXT(B2, "0.#")`

- does not display extra zeros and the $ sign.

`=A2 & " " & TEXT(B2, "# ?/???")`

- display the number as a fraction.

If you are looking for the opposite of CONCATENATE in Excel, i.e. you want to split one cell into several cells, a few options are available to you:

- Text to Columns feature
- Flash Fill option in Excel 2013 and 2016
- Formulas (MID, RIGHT, LEFT functions)

You can find the detailed steps illustrated with formula examples and screenshots in the How to split cells in Excel tutorial.

With the Merge Cells add-in for Excel, you can efficiently do both:

**Merge**several cells into one without losing data.**Concatenate**the values of several cells into a single cell and separate them with any delimiter of your choosing.

The Merge Cells tool works with all Excel versions from 2003 to 2016 and can combine all data types including text strings, numbers, dates and special symbols. Its two key advantages are simplicity and speed - any concatenation is done in a couple of clicks. And now, let me show it to you in action.

To combine the contents of several cells, you select the range to concatenate and configure the following settings:

**Cells into one**under "*What to merge*";- Select the delimiter you want under "
*Separate values with*", it's a comma and a space in this example; - Choose where you want to place the result, and most importantly
**Uncheck**the "*Merge all areas in the selection*" option. It is this option that determines whether the cells are merged or the cells' values are concatenated.

To concatenate two or more columns, you configure the Merge Cells' settings in a similar way, but choose **Columns** under "*What to merge*":

To combine data in each individual row, column-by-column, you choose to merge **Rows**, select the delimiter you want (line break in this example), configure other settings the way you want and hit the *Merge* button. The result may look similar to this:

To check how the Merge Cells add-in will cope with your data sets, you are welcome to download a fully functional trial version. And if you are happy with the result, you may want to buy helpful tool as a separate product or as part of our Ultimate Suite for Excel, which includes 60+ other time-saving tools for most common Excel tasks. Either way, we will happily offer you the 15% off coupon code that we've created especially for our blog readers: AB14-BlogSpo.

If someone wants to examine the formulas discussed in this tutorial more closely, the Sample workbook with concatenation formulas is available for download. Thank you for reading!

Excel formulas
CSV
Excel functions
Print
Vlookup in Excel
Merge data in Excel
SumIf
Excel CountIf
Excel Compare
Excel If statement
Excel Charts
Pivot Table
Updates
Excel conditional formatting
Excel formatting
Excel time
Excel duplicates
Excel date
Excel tips
Excel macro
Outlook
Google Sheets
Outlook duplicates
Outlook templates

## 325 Responses to "CONCATENATE in Excel: combine text strings, cells and columns"

Is it possible to convert a concatenated formula to an actual formula?

For example, I have 4 columns with the following:

='TM Receipts',!,P,16

I concatenate those 4 columns to get "='TM Receipts'!P16"

This is still a text string of course and I want to convert it a formula to give me the actual value of cell P16 on the TM Receipts worksheet.

Is there a way to do this?

In other words, you want to then retrieve the contents of this P16... You want the command "INDIRECT". The argument it takes is a cell address you want to get, so in your example "INDIRECT("'TM Receipts'!P16"), useful for when you have to use a formula to construct an address. I use formulas like "INDIRECT("A"&(B1*8)+1)" all the time (where A is filled with identical groups of information taking 8 rows each, B is sequential numbers starting from 0, and I'm looking for the first row of each group. On line 0 this become A1, I get A1. On line 1 it's A9, etc). Be warned, formulas with INDIRECT don't update like other formulas do, so if you insert a row above P so that your data moves down one, INDIRECT doesn't care, it'll still get whatever is now in P16.

I am not having any luck with this but I might be applying it incorrectly. I am trying to return the results in row 25 and a variable column. So in, say, D1 I would enter 'B' and then I'd get the value of B25. Unfortunately, =INDIRECT(D1 & "25") is returning 0 though. I hope that makes sense as I've been working on this for way too long and my brain is fried.

Suppose I have a file with columns A1:C3.

Column A (A1:A3)= Apple, Banana, Carrot (each word in a separate row)

Column B (B1:B3)= Red, Yellow, Orange (each word in a separate row)

Column C (C1:C3)= Y, N, Y (each word in a separate row)

I'd like to concatenate the words in column A into cell D1 contingent upon the value in the C column is "Y". For example I'd like the formula in D1 to return "Apple, Carrot" because Both A1 (Apple) and A3 (Carrot) have C1 and C3 with a "Y" string. Is there a way to concatenate with an IF statement argument in a separate column from what is being combined? Thanks in advance for your help!

All the best,

Whitney

While you could do something like

=CONCATENATE(IF(A$3="Y";A1;"");" ";IF(B$3="Y";B1;"");" ";IF(C$3="Y";C1;"")),

this would only work for a fixed range and for every column you would have to change the IF. What I would suggest is making an equivalent amount of columns to those you wish to concatenate, and populate them with =IF(A$3="Y";A1;""), and then combine those with concatenate.

I would use an extra column, a working scratchpad column, hide it if you don't want it seen. E column where E1 is "IF(C1="Y", A1, "")". In other words, if C is Y, then copy A, otherwise make the cell blank. Then where you want the concatenated string, just "E1&E2&E3" (though I would think A4 is a more logical destination, this is essentially SUMIF but with text). The commas are harder, to not have one on the last. I would do "IF(C1="Y", A1&", ", "")" so all entries end in a comma, then in E4 put the concatenation, then where you WANT the concatenation you put "LEFT(E4, LEN(E4)-2)". That way E4 is your target string but ending with an extra comma and space, so this would remove them.

Hi,

Is there a way where I can concatenate three different cells by keeping one cell value as constant output

A Output

10 20 A;10;20

15 21 A;15;21

17 22 A;17:22

Please suggest best formula to create above output. Thanks in Advance!!

Very helpfull thanks

Any way to retain individual cell formatting (i.e., bold for the first element) in the concatenated cell?

If I have two cells, each with a formula to display length of service (years, months and days), is there a way for me to calculate the total of the years, months and days for each cell into one?

Thanks!

I want sum of marks on sheet1 based on students count in Sheet marks and student count is located in sheet2

I use formula count if to count students in a2 cell in sheet2

In case i have 27 students

A2=27

Marks starts from row number 10

I want sum of E coloum in sheet1

E10 to value of A2+9=27

My all sheets have different number of students

And all sheets have count of students in A2 cell in perticular sheet.

Help me

I want to add concatenate formula but to remove some text from the existing values..

How can i do that

Hello!

For me to be able to help you better, please describe your task in more detail. It’ll help me understand it better and find a solution for you. Thank you.

How can I concatenate a data from regional data to a new sheet

Hello Jossy!

For me to be able to help you better, please describe your task in more detail. It’ll help me understand it better and find a solution for you. Thank you.

How can I concatenate values from two cells in to one cell, but skip few letters from one of the cell. For example.

Cell A1 has - Mr Joe

Cell B1 has - Smith

Cell C1 should print "Joe Smith" skipping "Mr" from Cell A1 values.

Hello Matt!

The number of characters to skip is unknown. It can be from 0 to 4. Therefore, it is impossible to write a formula. You can use VBA or our ready-made solution.

I'd recommend you to have a look at our Ablebits Tools - Split Names.

This tool is available as a part of our Ultimate Suite for Excel that you can install in a trial mode and use for 30 days for free: https://www.ablebits.com/files/get.php?addin=xl-suite&f=free-trial

Hi Is there any way to concat General non-text fields and output the result as a numeric? eg:

Order Version Output as a number

1234 1 12341

1234 2 12342

Thanks

Hello Gary!

If I understand your task correctly, please try the following formula:

=VALUE(A1&B1)

I hope this will help, otherwise please do not hesitate to contact me anytime.

Before reading this article I concatenated cells by using the method of = and the cells I wanted, separated by spaces for the most part. This is my formula:

= ( "Requisition" & " " & A39 &" : " & B39 & "- "& C39 & " - " & D39 & " " & E39)

One of my cells was in currency (it was Cell E39). How can I make the information (the currency) hold its format when transferred to the next cell?

F39 holds all the information input from A39 to E39. But when the information in E39 is transferred to F39, instead of seeing $210,000.00 I see 210000.

I want to know how to store alternate values in one cell. I am doing some soccer related collation using microsoft excel. For instance cell A1 is barcelona and cell B1 is juventus. I want cell C1 to represent barcelona OR juventus, I don't want cell C1 to represent barcelona AND juventus

Hello!

I recommend that you study the article on our blog about IF function with several conditions.

Is there a way to concatenate an array (obtained as a result of a formula in a cell)?

Hello!

The CONCATENATE function and the & operator cannot combine a range of cells. Therefore, it is impossible to write a formula. You can use VBA or our ready-made solution.

I'd recommend you to have a look at our Ablebits Data - Merge Cells.

This tool is available as a part of our Ultimate Suite for Excel that you can install in a trial mode and use for 30 days for free: https://www.ablebits.com/files/get.php?addin=xl-suite&f=free-trial

Hello..

In excel all the data is in Cell A1 coloumn and rows 1,2,3 so on. So i want to combine the name in Cell B1 coloumn.. So i am combine two rows using this formula =A1&A2 but i am facing problm that all the name are not belong in 2 rows they are separate in 3 rows or 4 rows.

Example -

Buff Milano

Dk. Cog

Buff Milano

Red

Buff Milano

Grade B

Black

Buff Milano

Grade B

Black

In this way i have a huge coloumn can any one solve my problem.. Is there any formula

Note :

I wan to find out this in Coloumn B -

Buff Milano Dk. Cog

Buff Milano Red

Buff Milano Grade B Black

I am trying to get the cell to read:

Assessed: 18%

Current Formula

="Assessed: "&('C&BE'!E29/'C&BE'!E24)

I want the text 'Assessed: ' and then I want to have the number 18% which comes from a different tab where 2 items are divided. This is what I get 'Assessed: 0.181818181818182' All I want to do is get this number to be a percentage but I can't seem to convert it to percentage. Using the 'Number Format' or 'Display Percentage' items don't convert it. Format Cell doesn't work. It's almost like the '&' function seems to negate these properties. [I have Mac 2011 version 14.7.7 (170905)

I want to concatenate on my userform says: (Balance: and 10,000)Note 10,000 is a value on a textbox which can be different by selecting another information.

Hello!

I hope you have studied the recommendations in the above tutorial. If I got you right, the formula below will help you with your task:

=CONCATENATE("Balance: ",A1)

I hope this will help

I would like to create a password generator, using a list of words. Then be able to grab 4 random words.

I can create a number with RANDBETWEEN, but how do I convert that to a cell to CONCATENATE?

I think I solved my own question, this may not be the most elegant, but it worked.

I have a list of words, numbers, and symbols in column I. 1 to 8000

I want 4 random words combined together from the list of 8000

Created four cells with =RANDBETWEEN(1,8000) let us assume the 4 cells created are L1, M1,N1, and O1

in cell P1 I have =CONCATENATE("I",L1)

in cell Q1 I have =CONCATENATE("I",M1)

in cell R1 I have =CONCATENATE("I",N1)

and in cell S1 I have =CONCATENATE("I",O1)

Then in T1 I have

=CONCATENATE((INDIRECT(P1)),"-",(INDIRECT(P1)),"-",(INDIRECT(Q1),"-",(INDIRECT(S1)))

This returns word-made-up-password (of course the words in those cell in column I are different.

Is there a better way?

Correction:

=CONCATENATE((INDIRECT(P1)),"-",(INDIRECT(Q1)),"-",(INDIRECT(R1),"-",(INDIRECT(S1)))

Hello Tom!

If RANDBETWEEN selects numbers, for example, from 1 to 10, then each number can correspond to a word using the CHOOSE function. If you describe in more detail your task, initial data and the desired result, I can give more detailed advice.

How to insert a character in the middle of string/number?

eg: 12345 -> 123-45

Hello!

If I understand your task correctly, the following formula should work for you:

=CONCATENATE(LEFT(B12,ROUND(LEN(B12)/2,0)),"-", RIGHT(B12,LEN(B12)-ROUND(LEN(B12)/2,0)))

Hope this is what you need.