The Excel TEXTJOIN function glues a whole range of values into one string, putting a delimiter of your choice between every piece — and it can skip blank cells automatically, which neither CONCAT nor the & operator can do. One formula turns a column of names into Ana, Ben, Carla. Its opposite number is TEXTSPLIT, which takes a joined string back apart.
TRUE almost always), and everything after that is what to join.
Syntax
| Argument | Description | |
|---|---|---|
delimiter | Required | The text to put between each value — ", ", " - ", even "" for nothing at all. Can also be a range of delimiters used in turn. |
ignore_empty | Required | TRUE skips empty cells; FALSE keeps them, producing doubled delimiters where blanks sit. |
text1 | Required | The first value, cell, or range to join. |
text2, … | Optional | Up to 252 more values or ranges. |
Available in: Excel 2019 and later, Excel for Microsoft 365, and Excel for the web. Excel 2016 perpetual and older show #NAME?. The result is one single text value — nothing spills.
Join a range into one cell
Attendee names sit in A2:A6 with one blank row. One formula builds the invite line and quietly steps over the gap:
| A | C | ||
|---|---|---|---|
| 1 | Attendee | One line for the invite | |
| 2 | Ana | Ana, Ben, Carla, Dev | |
| 3 | Ben | ||
| 4 | Carla | ||
| 5 | |||
| 6 | Dev |
Flip ignore_empty to FALSE and the blank shows up as a doubled delimiter — Ana, Ben, Carla, , Dev — which is almost never what you want.
The delimiter can be any text, including nothing:
Try it: interactive TEXTJOIN demo
Five cells, one of them empty. Pick a delimiter and toggle ignore_empty to see how the blank is handled.
Conditional joins and power moves
TEXTJOIN’s killer combo is with FILTER or IF — a comma-separated list of only the rows that match a condition. This is the classic “lookup that returns multiple results in one cell”:
Joining with a line break makes multi-line labels and addresses — turn on Wrap Text in the cell:
And a round trip with TEXTSPLIT rewrites delimiters in one move:
Errors & common pitfalls
#NAME? — your Excel is too old. TEXTJOIN arrived in Excel 2019. In Excel 2016 perpetual and earlier the name isn’t recognized — fall back on CONCATENATE or chains of &.
#VALUE! — the result is too long. A cell holds at most 32,767 characters. Join a big enough range and TEXTJOIN overflows that limit and errors out.
Pitfall: skipping ignore_empty. It is a required argument — =TEXTJOIN(", ", A2:A6) doesn’t mean what it looks like; Excel reads A2:A6 as text1’s predecessor and complains. Always supply TRUE or FALSE second.
Pitfall: a space is not “empty.” ignore_empty skips truly blank cells and "" results, but a cell holding a single space counts as content — it sneaks into the join and produces stray doubled delimiters. TRIM the source data first.
Pitfall: dates turn into serial numbers. TEXTJOIN reads the underlying value, so 6/11/2026 joins as 46184. Wrap dates in TEXT first: TEXT(A2, "m/d/yyyy").
Practice workbook
Frequently asked questions
What's the difference between TEXTJOIN, CONCAT, and CONCATENATE?
How do I join only the cells that meet a condition?
=TEXTJOIN(", ", TRUE, FILTER(A2:A50, B2:B50="West")). In Excel 2019 (no FILTER), use =TEXTJOIN(", ", TRUE, IF(B2:B50="West", A2:A50, "")) confirmed with Ctrl+Shift+Enter.How do I join cells with a line break between them?
CHAR(10) as the delimiter: =TEXTJOIN(CHAR(10), TRUE, A2:A5) — then turn on Wrap Text for the result cell or the breaks stay invisible.Why do my joined dates show up as numbers like 46184?
=TEXTJOIN(", ", TRUE, TEXT(A2,"m/d/yyyy"), TEXT(A3,"m/d/yyyy")).Which Excel versions have TEXTJOIN?
Is there a way to reverse TEXTJOIN?
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