CONCAT in Excel: Syntax, Examples and Errors
Updated 2026-10-13 · Free · Works in Excel & Google Sheets
Syntax
=CONCAT(text1, [text2], ...)Quick answer
CONCAT glues values into one cell with nothing between them: =CONCAT(A2:A4) folds three cells into "DoeSmithLee". Its one advantage over the older CONCATENATE is whole ranges — but every separator (a space, a dash) must be typed in by hand, and the result is text that no longer calculates.
Syntax
=CONCAT(text1, [text2], ...)| Argument | What it means |
|---|---|
| text1 | The first value to join — a cell, a number, a literal in quotes, or a whole range like A2:A8. Required. |
| [text2], ... | Optional extra values, up to 254 in total. Mix cells, ranges and literals freely: =CONCAT(A2, B2:B5, "-done"). |
Depending on your regional settings, arguments are separated by semicolons instead of commas: =CONCAT(A2; " "; B2). This is standard in countries where the comma is the decimal separator.
One difference matters more than all the rest: CONCAT accepts whole ranges — =CONCAT(A2:A8) is a legal formula. The older CONCATENATE either errors out or silently takes only the first cell, depending on the version.
Basic examples
=CONCAT(A2, " ", B2)The everyday full-name join: first name in A2, last name in B2. CONCAT glues with nothing in between by default, so the space is a literal you type between the two cells — forget it and "Doe" rams straight into "Smith".
=CONCAT(A2:A4)The range trick CONCATENATE cannot do: three cells fold into one code with zero separators — "AE2026XL". Perfect for building product keys, SKU codes and slugs where nothing may sit between the parts.
=CONCAT(A2, "-", B2, "-", C2)Keys and codes with separators: each piece is joined by a dash you typed in quotes. Three values need two literal dashes — the more pieces, the more quote typing, and that is exactly where TEXTJOIN takes over.
="Total: " & SUM(B2:B10)The & operator does the same job inline, no function needed. For two or three values many people prefer it — CONCAT wins when the values come from a range or the list is too long to type out.
The result of CONCAT is text. "12" and "34" join into "1234" that no longer sums, and a date joins as its serial number (45296), not as what you see in the cell. Keep the source cells for calculations, or convert back with VALUE.
Common errors and how to fix them
| Symptom | Most common cause | Fix |
|---|---|---|
| #NAME? | CONCAT is misspelled — or your Excel is older than 2016 where the function does not exist, or your Excel is another language version with the localized name (CONCATENAR, CONCATENER, VERKETTEN). | Type =CONC and let autocomplete confirm what exists; on old versions use CONCATENATE or the & operator. |
| #VALUE! | The joined result exceeds 32,767 characters — the hard cell limit. Huge ranges overflow silently into this error. | Split the range across several CONCAT cells (A2:A500, A501:A1000, ...) and join those results. |
| Values ram together ("DoeSmith") | No separator arguments between the cells — CONCAT inserts nothing on its own. | Type " " or ", " literals between every pair of values, or switch to TEXTJOIN, which inserts a delimiter automatically. |
| A date joins as "45296" | Dates are serial numbers under the hood, and CONCAT sees the number, not the display. | Wrap it: =CONCAT(A2, " ", TEXT(B2, "mm/dd/yyyy")) — the format code follows your locale. |
| The number loses its formatting | Same reason: cell formats do not travel into the join — 1234.5 shows as "1234.5" even if the cell displays 1,234.50. | Wrap with TEXT(A2, "#,##0.00") for thousands separators, or keep the source cell as the display of record. |
Hidden spaces wreck joins from both sides: "Doe " plus " Smith" becomes "Doe Smith" with a double gap in the middle. Clean the source range first, and the joined output comes out tight.
CONCAT vs. CONCATENATE and the & operator
| CONCAT | CONCATENATE | & operator | |
|---|---|---|---|
| Ranges | Yes — =CONCAT(A2:A8) folds the whole range | No — errors out or takes only the first cell | No — one cell per reference |
| Separator | None built in — you type literals between values | None built in — same manual typing | You place & between values and type separators as literals |
| Available in | Excel 2016 and later, Microsoft 365 | Every version since the earliest Excels | Every version |
| Best for | Gluing ranges and codes together | Old workbooks that must stay compatible | Quick two-value joins inline |
=CONCATENATE(A2, " ", B2)The legacy spelling still works in every Excel and is the name most non-English versions use (CONCATENAR, CONCATENER, VERKETTEN) — same arguments, same result, minus the ranges. Microsoft 365 users can switch to CONCAT the moment a range shows up.
CONCAT vs. TEXTJOIN
| CONCAT | TEXTJOIN | |
|---|---|---|
| Delimiter | None — every separator typed by hand | One argument covers the whole join: =TEXTJOIN(", ", TRUE, A2:A8) |
| Blank cells | They join as empty strings — with typed separators you get doubled gaps | ignore_empty=TRUE skips them in one switch |
| Ranges | Yes, but with no separators between cells | Yes, with the delimiter placed between every pair |
| Available in | Excel 2016 and later | Excel 2019 and later, Microsoft 365 |
| Best for | Codes and IDs where nothing may sit between parts | Human-readable lists built from columns |
Rule of thumb: CONCAT when the parts must touch, TEXTJOIN when people have to read the result. Both return text, so both stop calculating — the earlier warning applies to both.
CONCAT in Google Sheets
Google Sheets has CONCAT and CONCATENATE with the same syntax as Excel, so basic formulas paste over unchanged. For real list-building, Sheets adds JOIN — it works like TEXTJOIN but skips blank cells automatically, no TRUE needed.
- Comma-decimal locales switch to semicolons: =CONCAT(A2; " "; B2) — Sheets behaves like Excel here.
- JOIN(range, delimiter) is the Sheets shortcut for blank-free lists; TEXTJOIN exists too, with identical arguments.
- SPLIT is the inverse operation: it cuts one cell into several, undoing what CONCAT glued.
Limitations and pro tips
- No ignore_empty switch: a blank middle cell plus typed separators leaves "Doe Smith" with a double space. Clean the source first or move to TEXTJOIN.
- The 254-argument ceiling is per formula — for thousands of cells, join ranges (=CONCAT(A2:A500)) instead of listing cells.
- Two cells on the fly? & is faster to type. A whole range? CONCAT. A readable list with separators? TEXTJOIN — pick by shape, not by habit.
- A numeric-looking result can be converted back with VALUE: =VALUE(SUBSTITUTE(A2, " ", "")) turns cleaned text into real numbers again.
Treat CONCAT as the last step of a pipeline, not the first: trim the stray spaces, fix the blanks, and only then glue. The quality of the join is the quality of the cells you feed it.
Related Tools
Related Functions
Frequently Asked Questions
What does CONCAT do in Excel?
It glues values into a single cell with nothing between them: =CONCAT(A2, " ", B2) joins two names with a typed-in space, and =CONCAT(A2:A4) folds a whole range into one string. It is the modern replacement for CONCATENATE.
What is the difference between CONCAT and CONCATENATE?
Only ranges: CONCAT accepts =CONCAT(A2:A8) and folds the entire range, while CONCATENATE errors out or takes just the first cell. For single cells both behave identically — same arguments, same text result.
How do I put a space or comma between joined values?
Type the separator as a literal between the values: =CONCAT(A2, ", ", B2). For a whole column, switching to TEXTJOIN is shorter — its first argument covers every gap at once: =TEXTJOIN(", ", TRUE, A2:A8).
Why does my date become a number like 45296 when I CONCAT?
Excel stores dates as serial numbers, and CONCAT joins the stored value, not the display. Wrap the date in TEXT first: =CONCAT(A2, " ", TEXT(B2, "mm/dd/yyyy")) keeps it readable.
Which Excel versions have CONCAT?
Excel 2016 and later, plus Microsoft 365. In Excel 2013 and earlier the name does not exist — #NAME? is the telltale sign — and CONCATENATE or the & operator are the workarounds there.
Why did my numbers stop calculating after CONCAT?
The join produced text — "1234" looks like a number but sums to nothing. Keep the original cells for calculations, or convert the result back with =VALUE(A2) when it is needed as a number.
Does CONCAT work in Google Sheets?
Yes — same name, same syntax, same text-out behavior, semicolons only in comma-decimal regional settings. Sheets also offers JOIN, which skips blanks automatically, and SPLIT as the inverse operation.
Ready to try it on your own file?
Open Merge Columns in Excel — It's Free