How to Concatenate Cells in Excel

⏱️ 2 min read 📊 Excel

The & operator concatenates cells in every Excel version but needs a manual delimiter typed between each reference; TEXTJOIN (Excel 2019+) adds a delimiter and range support in one call and can skip blanks automatically, which is why it's replaced both & chains and the old CONCATENATE function for most joining tasks.

Quick answer: For a handful of cells with a delimiter, use =TEXTJOIN(", ", TRUE, A2, B2, C2) — the TRUE skips any blank cells so you don't get doubled commas. For a whole range without a delimiter, =CONCAT(A2:A10) is shorter than a long & chain. The old CONCATENATE function still works but takes no ranges and has no delimiter argument — there's no reason to use it in new formulas.

How does the & operator concatenate cells?

The & operator glues text together one piece at a time, works in every Excel version ever released, but requires you to type the delimiter manually between every pair of cells.

=A2&" "&B2
' "John" & " " & "Smith" → "John Smith"

=A2&", "&B2&", "&C2
' Three cells joined with ", " between each —
' notice the delimiter is typed out three separate times

This gets unwieldy fast past 3-4 cells, and if a middle cell is blank, you get a doubled delimiter like "Smith,,Sales" with no way to skip it without wrapping every piece in an IF().

How does TEXTJOIN work, and why does ignore_empty matter?

TEXTJOIN takes a delimiter once, an ignore_empty flag, and then one or more cells or ranges — the delimiter is inserted automatically between every non-empty piece, and ignore_empty controls whether blanks get skipped.

=TEXTJOIN(delimiter, ignore_empty, range1, [range2], ...)

=TEXTJOIN(", ", TRUE, A2:A5)
' A2:A5 = "red", "green", (blank), "blue"
' Result: "red, green, blue" — blank skipped, no double comma

=TEXTJOIN(", ", FALSE, A2:A5)
' Result: "red, green, , blue" — blank kept as an empty slot

=TEXTJOIN(" - ", TRUE, B2, C2, D2)
' Joins individual cells, not just a contiguous range

Set ignore_empty to FALSE only when position matters — for example rebuilding a fixed-format string where an empty field still needs to occupy its slot.

How is CONCAT different from CONCATENATE and TEXTJOIN?

CONCAT (Excel 2019+) replaced CONCATENATE by accepting ranges directly, but unlike TEXTJOIN it has no delimiter argument and doesn't skip blanks — it just glues everything together with nothing in between.

=CONCAT(A2:A5)
' "red" "green" "" "blue" → "redgreenblue"
' No delimiter, blanks are not skipped (they just add nothing)

=CONCATENATE(A2,A3,A4,A5)
' Legacy function — same result as CONCAT here, but
' cannot take a range argument (A2:A5); every cell must
' be listed individually. Still works, kept for compatibility,
' not recommended for new formulas.

CONCAT is really only useful when you want zero separator between pieces and don't need to worry about blanks — for anything with a delimiter, TEXTJOIN is the better tool.

Which function should I use?

Function Delimiter? Takes ranges? Excel version
& Manual, typed each time No — cell by cell All versions
CONCATENATE Manual, typed each time No — cell by cell All versions (legacy)
CONCAT None Yes 2019+
TEXTJOIN One argument, applied between all pieces Yes, plus ignore_empty 2019+

See TEXTSPLIT and TEXTJOIN for TEXTJOIN paired with its inverse operation, and Excel text functions for cleaning values before joining them.

What are common mistakes when concatenating cells?

Pro Tip: TEXTJOIN accepts multiple ranges in one call, not just one: =TEXTJOIN(", ", TRUE, A2:A10, C2:C10) joins both ranges' non-blank values into a single delimited list, skipping any blanks in either range — useful for combining two differently-shaped lists without a helper column.

← Back to Excel Tips