Cellwise Try it free

Excel guide · 3 min read

CONCAT vs TEXTJOIN vs &: which should you use?

Quick answerUse & for joining two or three cells: =A2&" "&C2. Use TEXTJOIN when you need the same separator between many cells or want blanks skipped: =TEXTJOIN(", ",TRUE,A2:C2). CONCAT joins ranges with no separator, and CONCATENATE is the older version kept for compatibility. CONCAT and TEXTJOIN need Excel 2019 or later (or Microsoft 365).

Sample data

Every result on this page was calculated from this sheet by the same spreadsheet engine the Cellwise app uses.

ABCDEF
1FirstMiddleLastCityStateBalance
2MariaLopezAustinTX1250.5
3JamesR.ChenDenverCO89
4AishaKhanPortlandOR0

Download this sheet as an Excel practice file (.xlsx)

The & operator: quick and works everywhere

The ampersand joins whatever is on either side of it. It works in every version of Excel, Google Sheets and LibreOffice, and it is the easiest to read for a short join. You type separators yourself in quotes.

Pick & for two to four pieces. Beyond that, the chain of &" "& gets hard to read and easy to break.

=A2&" "&C2

Result: Maria Lopez

Maria Lopez.

CONCATENATE and CONCAT: the same idea as a function

CONCATENATE(A3," ",B3," ",C3) does exactly what & does, as a function. It works in all versions but only takes single cells: CONCATENATE(A3:C3) does not join the range in a normal formula.

CONCAT replaced it in Excel 2019. It accepts ranges, so =CONCAT(D2:E2) joins a whole row. But it has no separator and no way to skip blanks, so it is mostly useful for joining codes or parts that need nothing in between.

=CONCAT(D2:E2)

Result: AustinTX

AustinTX: the range is joined with nothing in between.

TEXTJOIN: separators and blank-skipping built in

TEXTJOIN(delimiter, ignore_empty, text1, ...) puts the delimiter between every item, and with TRUE as the second argument it skips empty cells. That second part is what makes it the right tool for names with an optional middle name, or addresses with an optional second line.

Maria has no middle name. =A2&" "&B2&" "&C2 gives "Maria Lopez" with two spaces. TEXTJOIN gives a clean single space.

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

Result: Maria Lopez

Maria Lopez, with one space, because the empty middle name is skipped.

Join a whole column into one cell

This is where TEXTJOIN has no real rival. Joining a list into one comma-separated cell with & would mean clicking every cell. TEXTJOIN does it with one range, which is handy for email lists or a summary line.

In Excel 365 you can join only the rows that match a condition by feeding it FILTER: =TEXTJOIN(", ",TRUE,FILTER(A2:A4,F2:F4>0)) lists the customers who owe money.

=TEXTJOIN(", ",TRUE,C2:C4)

Result: Lopez, Chen, Khan

Lopez, Chen, Khan.

Numbers and dates lose their format

All four methods join the underlying value, not what the cell shows. A balance of 1,250.50 formatted as currency joins as 1250.5, and a date joins as its serial number. Wrap the value in TEXT with the format you want.

=A2&" owes "&TEXT(F2,"$#,##0.00")

Result: Maria owes $1,250.50

Maria owes $1,250.50.

Common mistakes

Using CONCAT and expecting spaces

CONCAT never adds a separator. If you want one between every item, use TEXTJOIN; for one or two, add " " pieces with &.

Setting ignore_empty to FALSE by accident

With FALSE, TEXTJOIN keeps blanks and you get doubled separators like "Maria Lopez" or "Lopez, , Khan". Use TRUE unless you need the empty slots.

Sharing a file with someone on Excel 2016 or older

CONCAT and TEXTJOIN show #NAME? in Excel 2016 and earlier (perpetual license). Use & or CONCATENATE if the file must open there.

Hitting the length limit

A cell holds at most 32,767 characters. CONCAT and TEXTJOIN return #VALUE! when the result is longer; split the job across cells.

FAQ

Is CONCATENATE being removed from Excel?

No. Microsoft keeps it for compatibility and old formulas still work. It is just not getting new features, so CONCAT and TEXTJOIN are recommended for new work.

How do I add a line break between joined values?

Use CHAR(10) as the separator, for example =TEXTJOIN(CHAR(10),TRUE,A2:C2), then turn on Home > Wrap Text for the cell.

Can TEXTJOIN skip cells that contain a formula returning ""?

Yes. With ignore_empty set to TRUE it skips both truly empty cells and empty text from formulas.

What is the fastest way to combine columns without a formula?

Flash Fill. Type the first combined result next to your data, press Enter, then press Ctrl+E. Excel fills the rest, but the results will not update if the source changes.

Functions used

Related guides

Updated