CONCATENATE in Excel: combine text strings, cells and columns

In this article, you will learn various ways to concatenate text strings, numbers and dates in Excel using the CONCATENATE function and "&" operator. We will also discuss formulas to combine individual cells, columns and ranges.

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 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 you can choose the method best suited for your worksheets.

What is "concatenate" in Excel?

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

  • Merging cells
  • Concatenating cells' values

When you merge cells, you "physically" join 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.

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: Merge and concatenate in Excel

Merging cells in Excel is the subject of a separate article, and in this tutorial, we'll discuss the two main ways to concatenate strings in Excel - by using the CONCATENATE function and the concatenation operator (&).

Excel CONCATENATE function

The CONCATENATE function in Excel is used 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.

The CONCATENATE function is supported in all versions of Excel 365 - 2007.

For example, to concatenate the values of B6 and C6 with a comma, the formula is:

=CONCATENATE(B6, ",", C6)

More examples are shown in the image below: Excel CONCATENATE function

Note. In Excel 365 - Excel 2019, the CONCAT function is also available, which is a modern successor of CONCATENATE with exactly the same syntax. Although the CONCATENATE function is kept for backward compatibility, Microsoft does not give any promises that it will be supported in future versions of Excel.

Using CONCATENATE in Excel - things to remember

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 one 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.
  • Unlike the CONCAT function, Excel CONCATENATE does not recognize arrays. Each cell reference must be listed separately. For example, you should use CONCATENATE(A1, A2, A3) and not CONCATENATE(A1:A3).
  • If any of the arguments is invalid, the CONCATENATE function returns a #VALUE! error.

"&" operator to concatenate strings in Excel

In Microsoft Excel, the ampersand sign (&) is another way to concatenate cells. This method comes in very handy in many scenarios since typing an ampersand is much faster than typing the word "concatenate" :)

For example, to concatenate two cell values with a space in-between, the formula is:

=A2&" "&B2

How to concatenate in Excel - formula examples

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

Concatenate two or more cells without separator

To combine the values of two cells into one, you use the concatenation formula in its simplest form:

=CONCATENATE(A2, B2)

Or

=A2&B2

Please note that the values will be knit together without any delimiter like in the screenshot below.

To concatenate multiple cells, you need to supply each cell reference individually, even if you are combining contiguous cells. For example:

=CONCATENATE(A2, B2, C2)

Or

=A2&B2&C2

The formulas work for both text and numbers. In case of numbers, please keep in mind that the result is a text string. To convert it to number, just multiply CONCATENATE's output by 1 or add 0 to it. For instance:

=CONCATENATE(A2, B2)*1

Concatenating the values of two or more cells in Excel

Tip. In Excel 2019 and higher, you can use the CONCAT function to quickly concatenate multiple cells using one or more range references.

Concatenate cells with a space, comma or other delimiter

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 put the desired character 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(A2, " ", B2)

or

=A2 & " " & B2

Concatenating two cells with a comma:

=CONCATENATE(A2, ", ", B2)

or

=A2 & ", " & B2

Concatenating two cells with a hyphen:

=CONCATENATE(A2, "-", B2)

or

=A2 & "-" & B2

The following screenshot demonstrates how the results may look like: Concatenating cells with a space, comma or other delimiter

Tip. In Excel 2019 and higher, you can use the TEXTJOIN function to merge strings from multiple cells with any delimiter that you specify.

Concatenating text string and cell value

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

=CONCATENATE(A2, " ", B2, " 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. A space (" ") is also inserted between the combined values, so that the result displays as "Project 1" rather than "Project1".

With the concatenation operator, the formula can be written this way:

=A2 & " " & B2 & " completed"

In the same manner, you can add a text string in the beginning or in the middle of your concatenation formula. For example:

=CONCATENATE("See ", A2, " ", B2)

="See " & A2 & " " & B2 Concatenating a text string and cell value

Join text string and another formula

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 in the desired format and specify what kind of date that is:

=CONCATENATE("Today is ",TEXT(TODAY(), "mmmm d, yyyy"))

="Today is " & TEXT(TODAY(), "dd-mmm-yy") Concatenating a text string and a formula-driven value

Tip. If you would like to delete the source data without affecting the resulting text strings, use the "Paste special - values only" option to convert formulas to their values.

Concatenate text strings with line breaks

Most often, you would separate the resulting text strings with punctuation marks and spaces, as shown in the previous example. In some cases, however, there may be a 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. Instead, you use the CHAR function to supply the corresponding ASCII code to the concatenation formula:

  • On Windows, use CHAR(10) where 10 is the character code for Line feed.
  • On Mac, use CHAR(13) where 13 is the character 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

The CONCATENATE function would take this shape:

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

Either way, the result is a 3-line text string: Concatenating cells with line breaks

Note. When using line breaks to separate the combined values, you must have Wrap text enabled for the result to display correctly. To do this, press Ctrl + 1 to open the Format Cells dialog, switch to the Alignment tab and check the Wrap text box.

In the same manner, you can separate final 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 here.

How to concatenate columns in Excel

To join two or more columns, just enter your 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 combine two columns (column A and B) delimiting the values with a space, the formula in C2 copied down is:

=CONCATENATE(A2, " ", B2)

Or

= A2 & " " & B2 Concatenating two columns in Excel

Tip. A quick way to copy the formula down the column is to select the cell with the formula and double-click the fill handle.

For more information, please see How to merge two columns in Excel without losing data.

Combine text and numbers keeping formatting

When concatenating a text string with a number, percentage or date, you may want to keep the original formatting of a numeric value or display it in a different way. This can be done by supplying the format code inside the TEXT function, which you embed in a concatenation formula.

In the beginning of this tutorial, we have already discussed a formula that concatenates text and date.

And here are a few more formula examples that combine text and number:

Number with 2 decimal places and the $ sign:

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

Number without insignificant zeros and the $ sign:

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

Fractional number:

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

To concatenate text and percentage, the formulas are:

Percent with two decimal places:

=A12 & " " & TEXT(B12, "0.00%")

Rounded whole percent:

=A12 & " " & TEXT(B12, "0%") Concatenating numbers in various formats

How to concatenate a range of cells in Excel

Combining values from multiple cells might take some effort because the Excel CONCATENATE function does not accept arrays.

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

=CONCATENATE(A1, A2, A3, A4)

or

=A1 & A2 & A3 & A4

When combining a fairly small group of cells, it's no big deal to type all the references. A large range would be tedious to supply, typing each individual reference manually. Below you will find 3 methods of quick range concatenation in Excel.

Method 1. Press CTRL to select multiple cells

To quickly select several cells, you can press and hold the Ctrl key while clicking on each cell you want to include in the formula. Here are the detailed steps:

  1. Select a cell where you want to enter the formula.
  2. Type =CONCATENATE( in that cell or in the formula bar.
  3. Press and hold Ctrl and click on each cell you want to concatenate.
  4. Release the Ctrl button, type the closing parenthesis, and press Enter.
To concatenate a range of cells, press CTRL to select multiple cells.
Note. When using this method, you must click each individual cell. Selecting a range with the mouse would add an array to the formula, which the CONCATENATE function does not accept.

Method 2. Use TRANSPOSE function to get all cell values

When a range consists of tens or hundreds of cells, the previous method may not be fast enough as it requires clicking on each cell. In this case, you can use the TRANSPOSE function to return an array of values, and then merge them together in one fell swoop.

  1. In the cell where you want the result to appear, enter the TRANSPOSE formula, for example:

    =TRANSPOSE(A1:A10)

  2. In the formula bar, press F9 to replace the formula with calculated values. As a result, you will have an array of values to be concatenated.
  3. Delete the curly braces surrounding the array. Use the TRANSPOSE function to get the range
  4. Type =CONCATENATE( before the first value, then type the closing parenthesis after the last value, and press Enter. Concatenate the values.

Note. The result of this formula is static as it concatenates the values, not cell references. If the source data changes, you will have to repeat the process.

Method 3. Use the CONCAT function

In Excel 365 and Excel 2021, this simple formula will concatenate a range of cells in a blink:

=CONCAT(A1:A10)

Method 4. Use the Merge Cells add-in

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

Excel "&" operator vs. CONCATENATE function

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

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

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

Opposite of CONCATENATE in Excel (splitting cells)

The opposite of concatenate in Excel is splitting the contents of one cell into multiple cells. This can be done in a few different ways:

You can also find useful information in this article: How to unmerge cells in Excel.

Concatenate in Excel with Merge Cells add-in

With the Merge Cells add-in included in Ultimate Suite 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 2016 to 365 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.

Combine values of several cells into one cell

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

  • Under What to merge, select Cells into one.
  • Under Combine with, type the delimiter (a comma and a space in our case).
  • Choose where you want to place the result.
  • Most importantly, uncheck the Merge all areas in the selection box. It is this option that controls whether the cells are merged or their values are concatenated.
Combine the values of several cells into one cell.

Combine columns row-by-row

To concatenate two or more columns, you configure the Merge Cells' settings in a similar way but choose to merge columns into one and place the results in the left column.

Concatenating columns into one.

Join rows column-by-column

To combine data in each individual row, column-by-column, you choose:

  • Merge rows into one.
  • Use a line break for the delimiter.
  • Place the results in the top row.

The result may look similar to this: Concatenating multiple rows into one.

To check how the Merge Cells add-in will cope with your data sets, you are welcome to download a fully functional trial version of our Ultimate Suite for Excel below.

That's how to concatenate in Excel. I thank you for reading and hope to see you on our blog next week!

Available downloads

Concatenation formula examples (.xlsx file)
Ultimate Suite 14-day trial version (.exe file)

447 comments

  1. Hello!
    I have a sales record covering 3 years and i want to report on the highest sales made per year. Can i nest the (=Max) function into a (=Concat) one?
    So that it reads "Gross sales for 2018 were highest at $35000"

    • Hello!
      Of course you can use something like this

      =CONCAT("Gross sales for 2018 were highest at $",MAX(C1:C18))

      Function arguments can be text, numbers, cell references, other Excel functions

  2. 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.

  3. 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.

  4. 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

  5. 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'm looking for the exact same function. Have you found a solution?

      • Hello!
        The formula below will do the trick for you:

        =E24&" "&TEXT(E29,"###%")

        or

        =CONCATENATE(E24," ",TEXT(E29,"###%"))

        Hope this is what you need.

  6. 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

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

  8. 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

  9. 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.

  10. 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.

  11. 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.

  12. 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.

  13. 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.

  14. 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

  15. 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!

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

  17. Very helpfull thanks

  18. 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!!

  19. 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.

  20. 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.

    • after you have entered CONCATENATE formula, press.. F2 > F9 > Enter

Post a comment



Thank you for your comment!
When posting a question, please be very clear and concise. This will help us provide a quick and relevant solution to
your query. We cannot guarantee that we will answer every question, but we'll do our best :)