TEXTJOIN in Google Sheets
Use TEXTJOIN to combine many cells into one string with a separator you choose — a comma-separated list, a full sentence, or a joined address.
=TEXTJOIN(", ", TRUE, A2:A10)
Joins A2:A10 into one string separated by ", ". TRUE tells it to skip empty cells.
How it works
TEXTJOIN takes a delimiter (the text placed between values), a skip-empty flag (TRUE to ignore blanks, FALSE to keep them), and one or more ranges or values to join. Unlike CONCATENATE it accepts a whole range at once and puts the separator only between items, not at the ends. Use it to build CSV lists, sentences, or keys from several columns.
Variations
Keep blank cells in the output
=TEXTJOIN(", ", FALSE, A2:A10)
FALSE keeps empty cells, so you get consecutive delimiters where cells are blank.
Join with a line break
=TEXTJOIN(CHAR(10), TRUE, A2:A10)
CHAR(10) is a newline; enable text wrapping on the cell to see the lines.
Join only values that meet a condition
=TEXTJOIN(", ", TRUE, FILTER(A2:A, B2:B="Yes"))
FILTER selects which values to join before TEXTJOIN runs.
Join across a row
=TEXTJOIN(" ", TRUE, A2:D2)
Works on rows too — handy for building a full name or address.
Examples
| Scenario | Formula |
|---|---|
| Comma-separated tag list | =TEXTJOIN(", ", TRUE, A2:A20) |
| Full name from parts | =TEXTJOIN(" ", TRUE, B2, C2) |
| Email list for a mailer | =TEXTJOIN("; ", TRUE, D2:D) |
FAQ
What's the difference between TEXTJOIN and CONCATENATE?
TEXTJOIN adds a chosen delimiter between values and can skip blanks and take whole ranges; CONCATENATE just glues values together with no separator handling.
How do I skip empty cells?
Pass TRUE as the second argument: TEXTJOIN(", ", TRUE, A2:A). FALSE keeps the blanks and their delimiters.
How do I join with a new line?
Use CHAR(10) as the delimiter and turn on text wrapping for the cell so the line breaks are visible.