Skip to content
filecon

How to combine text in Excel: &, CONCAT, TEXTJOIN and keeping number formats

Spreadsheet tools · Published

Join first and last names, build addresses and IDs, add separators, skip blanks, and keep dates and currency formatted when you combine cells.

The short answer

To join two cells, type =A2&" "&B2. The ampersand (&) glues pieces together, and the " " in quotes adds the space between them. For several cells with the same separator, use TEXTJOIN, which can also skip empty cells. Wrap dates and amounts in TEXT so they keep their format instead of turning into plain numbers.

If you only need to do it once and don't want a formula, type one example and press Ctrl+E for Flash Fill.

Join cells with the & operator

The & operator works in every version of Excel, on every device.

  1. Click the cell where you want the result, for example D2.
  2. Type =, click the first cell, type &" "&, then click the next cell.
  3. Press Enter, then drag the fill handle down to copy the formula to the other rows.
=A2&" "&C2

In words: take A2, add a space, then add C2. Anything in double quotes is added exactly as typed, so =C2&", "&A2 gives "Lopez, Maria".

Joining first and last names. D2 holds =A2&" "&C2, copied down to D3.
RowABCD
1FirstMiddleLastFull name
2MariaLopezMaria Lopez
3JamesT.ChenJames Chen
Joining first and last names. D2 holds =A2&" "&C2, copied down to D3.

CONCATENATE and CONCAT

These functions do the same job as &, with each piece as a separate argument. Both of these return "Maria Lopez":

=CONCATENATE(A2," ",C2)
=CONCAT(A2," ",C2)

CONCATENATE works in all versions. Microsoft says CONCAT replaces it, but CONCATENATE stays available for compatibility. CONCAT's advantage is that it accepts a range, so =CONCAT(A2:C2) joins three cells, though with no spaces between them.

TEXTJOIN: one separator, and blanks skipped

Notice that James's middle initial was dropped above. If you add the middle column with =A2&" "&B2&" "&C2, Maria, who has no middle name, gets two spaces: "Maria  Lopez". TEXTJOIN solves both problems.

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

It takes three arguments:

  • delimiter: what goes between the pieces, here a space. Use ", " for a comma and space.
  • ignore_empty: TRUE skips blank cells; FALSE keeps them, which leaves doubled separators.
  • text1 (and more): the cells or ranges to join, in order.

That returns "Maria Lopez" and "James T. Chen". TEXTJOIN is in Excel 2019 and later, Microsoft 365 and Excel for the web.

Worked example: one-line addresses

Here the street, unit, city and state are joined with a comma and space, and the ZIP code is added after a plain space. Row 3 has no unit, and TEXTJOIN skips it.

=TEXTJOIN(", ",TRUE,A2:D2)&" "&E2
Building address lines. F2 holds =TEXTJOIN(", ",TRUE,A2:D2)&" "&E2, copied down to F3.
RowABCDEF
1StreetUnitCityStateZIPAddress line
212 Oak StApt 4DenverCO8020312 Oak St, Apt 4, Denver, CO 80203
388 Pine RdBostonMA0213488 Pine Rd, Boston, MA 02134
Building address lines. F2 holds =TEXTJOIN(", ",TRUE,A2:D2)&" "&E2, copied down to F3.

With FALSE instead of TRUE, row 3 would read "88 Pine Rd, , Boston, MA". The ZIP codes are stored as text so that 02134 keeps its zero; see keeping leading zeros if yours have already lost theirs. If the addresses come from a CSV file, Filecon's CSV to Excel keeps ZIP codes with leading zeros as text when it builds the workbook, in your browser and without uploading the file.

Skipping blanks in older versions

Without TEXTJOIN, add the separator only when the cell isn't empty, using IF:

=A2&IF(B2="",""," "&B2)&" "&C2

In words: if B2 is empty, add nothing; otherwise add a space and B2. This gives "Maria Lopez" and "James T. Chen" in any version. The address version is the same idea: =A2&IF(B2="","",", "&B2)&", "&C2&", "&D2&" "&E2.

Keep dates and money formatted with TEXT

When you join a date or a number, Excel uses the underlying value, not what the cell shows. A due date of 03/15/2026 comes out as 46096, which is how Excel stores that date, and $1,250.50 comes out as 1250.5. TEXT fixes this by turning the value into text in the format you choose.

="Invoice #"&A2&" – due "&TEXT(B2,"mm/dd/yyyy")

TEXT takes the value (B2) and a format code in quotes. "mm/dd/yyyy" means two-digit month, day and four-digit year; "$#,##0.00" adds a dollar sign, thousands separators and two decimals.

Building invoice descriptions. D2 holds ="Invoice #"&A2&" – due "&TEXT(B2,"mm/dd/yyyy"), copied down to D3.
RowABCD
1InvoiceDue dateAmountDescription
210403/15/2026$1,250.50Invoice #104 – due 03/15/2026
310504/01/2026$980.00Invoice #105 – due 04/01/2026
Building invoice descriptions. D2 holds ="Invoice #"&A2&" – due "&TEXT(B2,"mm/dd/yyyy"), copied down to D3.

For the amount, the same pattern gives "Amount due: $1,250.50" for row 2:

="Amount due: "&TEXT(C2,"$#,##0.00")

The dash in the example is an en dash; a normal hyphen works just as well. Other useful codes include "mmmm d, yyyy" for "March 15, 2026" and "0.0%" for percentages.

Put each piece on its own line

CHAR(10) is the line-break character. Use it as the separator, then turn on wrapping so Excel shows the breaks:

  1. Enter a formula such as =A2&CHAR(10)&C2, or =TEXTJOIN(CHAR(10),TRUE,A2:C2).
  2. Select the cells and choose Home › Wrap Text. Without it, the break is there but the text stays on one line.

No formula: Flash Fill

Flash Fill (Excel 2016 and later, including Microsoft 365) copies a pattern from an example you type.

  1. In D2, type the result you want for row 2, such as Maria Lopez.
  2. Select D3 and press Ctrl+E, or choose Data › Flash Fill.
  3. Check a few rows. If a pattern was misread, type a second example and repeat.

Flash Fill types plain values, not formulas, so the results don't change when the source cells do. Use a formula if the data will be updated.

Troubleshooting

  • #NAME?: your version doesn't have CONCAT or TEXTJOIN. Use & or CONCATENATE.
  • Words run together: add " " between the pieces, or use TEXTJOIN with a space.
  • Double spaces or stray commas: a cell is empty, or it has extra spaces. Use TEXTJOIN with TRUE, and see how to clean up messy text for hidden spaces.
  • A date shows as a five-digit number: wrap it in TEXT with a date code.
  • The formula shows as text: the cell was formatted as Text before you typed it. Format it as General and enter the formula again.
  • You want to delete the original columns: copy the results, then use Paste Special › Values first, or the formulas will break.

In short

Use & for quick joins, TEXTJOIN when you need a separator or want blanks skipped, and TEXT whenever a date or amount is involved. In older versions, & with IF does everything TEXTJOIN does. For one-off jobs, Flash Fill is quicker than any formula.