🟩 Sheet Formulas
TEXTJOIN vs CONCATENATE

TEXTJOIN vs CONCATENATE in Google Sheets

Short answer: Use TEXTJOIN for almost everything β€” it takes a delimiter once, works across a whole range, and can skip empty cells. Keep CONCATENATE only for gluing a couple of specific cells with no separator.

Copy the one most people want (TEXTJOIN)

=TEXTJOIN(", ", TRUE, A2:D2)

Joins A2:D2 with a comma-space, skipping blanks. The TRUE means "ignore empty cells" so you don't get stray commas.

TEXTJOIN vs CONCATENATE β€” the differences that matter

AspectTEXTJOINCONCATENATE
DelimiterSet once as the first argument.None β€” you type separators between every cell manually.
Skip blanksYes, via the second argument (TRUE).No β€” empty cells still add their separators.
RangesAccepts a whole range like A2:D2.Best with individual cells; ranges just glue with no separator.
AvailabilityModern Sheets/Excel.Everywhere, but largely superseded by TEXTJOIN and &.

Which one should you use?

Use TEXTJOIN when…

Joining many cells or a range, needing a consistent separator, or wanting to skip blanks β€” names into a list, address lines, CSV-style strings.

Use CONCATENATE when…

Sticking two or three specific values together with no separator, or maintaining an old sheet that already uses it. For quick joins, the & operator is often simpler still.

Same task, both formulas

Join first name (A2) and last name (B2) with a space.

TEXTJOIN
=TEXTJOIN(" ", TRUE, A2, B2)
CONCATENATE
=CONCATENATE(A2, " ", B2)

For two cells both work. Across A2:Z2 with gaps, TEXTJOIN skips the blanks cleanly while CONCATENATE would need every separator typed by hand.

FAQ

Is TEXTJOIN better than CONCATENATE?

For most jobs, yes β€” one delimiter, range support and skip-blanks make it cleaner. CONCATENATE survives mainly for backwards compatibility.

What about the & operator?

For a couple of values, =A2&" "&B2 is the shortest option of all. TEXTJOIN wins once you have a range or want to skip blanks.

Can CONCATENATE skip empty cells?

No. It includes every argument, so blanks leave doubled separators. Use TEXTJOIN with TRUE for that.