The Excel CONCAT function joins text from multiple values into one string — and unlike its predecessor CONCATENATE, it happily swallows whole ranges, so =CONCAT(A2:A50) just works. It has no delimiter argument, though: when you need a comma or space between every piece, reach for TEXTJOIN instead.
Syntax
| Argument | Description | |
|---|---|---|
text1 | Required | The first item to join — a cell, text in quotes, a number, or an entire range. |
text2, ... | Optional | Up to 253 more items, joined left to right in the order listed. |
Available in: Excel 2019+, Excel for Microsoft 365, and Excel for the web. Excel 2016 and earlier show #NAME? — use CONCATENATE or the & operator there. The combined result can’t exceed 32,767 characters.
Join cells with text in between
The classic job: stitch first and last names into one column. Put the formula in C2 and copy it down — the " " in the middle supplies the space:
| A | B | C | |
|---|---|---|---|
| 1 | First | Last | Full name |
| 2 | Maya | Chen | Maya Chen |
| 3 | Luis | Romero | Luis Romero |
| 4 | Priya | Nair | Priya Nair |
Mix in as much literal text as you like. A friendly email greeting from the same table:
CONCAT only adds what you give it — forget the " " and you get MayaChen.
Try it: interactive CONCAT demo
Type a first and last name (cells A2 and B2), pick an output style, and watch CONCAT build the string.
Joining ranges, numbers, and dates
CONCAT’s party trick is accepting ranges. With one letter per cell in A2:A6, this collapses them into a single word:
Range items are joined with nothing between them — great for reassembling codes, terrible for word lists. When every piece needs a separator, use TEXTJOIN:
Numbers and dates lose their formatting when joined — a date becomes its serial number. Wrap them in TEXT to control the display:
Going the other way? TEXTSPLIT breaks a combined string back into pieces, and TEXTBEFORE / TEXTAFTER grab just one side of a delimiter.
Errors & common pitfalls
#NAME? — older Excel. CONCAT arrived in Excel 2019. In Excel 2016 and earlier the name isn’t recognized — swap in CONCATENATE or chain the pieces with &.
#VALUE! — result too long. A cell tops out at 32,767 characters. Join a big enough range and CONCAT hits the ceiling — usually a sign the data belongs in rows, not one mega-cell.
Pitfall: no delimiter, ever. =CONCAT(A2:A6) runs values together with no separator and no way to add one per item. If you’re tempted to type ", " between every argument, TEXTJOIN does it once and skips blanks too.
Pitfall: dates turn into serial numbers. =CONCAT("Due ", B2) shows Due 46203 because formatting lives in the cell, not the value. Wrap it: TEXT(B2, "mm/dd/yyyy").
Pitfall: a formula shows instead of the result. If the cell displays =CONCAT(...) as text, the cell was formatted as Text before you typed. Set the format to General and re-enter the formula.
Practice workbook
Frequently asked questions
What's the difference between CONCAT and CONCATENATE?
=CONCAT(A2:A50)) while CONCATENATE makes you click every cell individually. CONCATENATE is kept only for backward compatibility — Microsoft recommends CONCAT for new work.Should I use CONCAT or the & operator?
=A2 & " " & B2 is quicker to type and works in every Excel version. CONCAT wins when you have many pieces or a whole range to join. The results are identical.How do I put a space or comma between every value?
", " between every item by hand. Use =TEXTJOIN(", ", TRUE, A2:A20) instead: one delimiter, applied everywhere, blanks skipped.Why does my date come out as a number like 46203?
=CONCAT("Due ", TEXT(B2, "mmm d, yyyy")). The same trick controls currency and percentages.Can CONCAT ignore blank cells in a range?
Why do I get #NAME? when I type CONCAT?
Master functions like this in one day
This page covers one function. Our Excel Formulas and Functions class covers the 30 that matter most — live, hands-on, taught by professionals in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.
See the Formulas & Functions Class