& vs CONCATENATE in Excel: Which Joins Text Better
By ExcelReady TeamUpdated 7 min read
The short answer
The ampersand (&) and CONCATENATE do the same job: they join text from cells and quotes into one string, with an identical result. Use & for everyday formulas because it is shorter, easier to read and works in every version of Excel. CONCATENATE is an older function kept for compatibility, so you only need it to read existing files.
Key takeaways
- =A2&" "&B2 and =CONCATENATE(A2," ",B2) return exactly the same text.
- The & operator has no argument limit; CONCATENATE accepts up to 255 items.
- Neither joins a whole range in one step. Use TEXTJOIN or CONCAT for that.
- Both turn numbers and dates into plain text, so wrap them in TEXT to keep their format.
On this page+
The short answer to ampersand vs CONCATENATE: they give exactly the same result, so pick the one that is easier to read. For most people that is the ampersand (&), because it is shorter and works in every version of Excel. CONCATENATE is an older function that still works, and you will meet it in files other people built. This comparison is for anyone who joins names, codes or labels and wants one clear habit.
Ampersand vs CONCATENATE at a glance#
The & operator and CONCATENATE produce identical text; the differences are in how you write them.
| Feature | & (ampersand) | CONCATENATE |
|---|---|---|
| What it is | An operator, like + or - | A function |
| Example | =A2&" "&B2 | =CONCATENATE(A2," ",B2) |
| Result | Text | The same text |
| Limit on items | No argument limit | Up to 255 items |
| Joins a range like A2:A9 in one step | No | No |
| Skips blank cells | No | No |
| Excel versions | All versions | All versions (kept for compatibility) |
| Newer replacement | Not needed | CONCAT (Excel 2019 and later, Microsoft 365) |
Both have one more thing in common: the result is always text, even when you join numbers.
How each one joins text#
Both build one string from pieces, left to right. With &, you put the operator between each piece. With CONCATENATE, you list the pieces as arguments, separated by commas.
=A2&" "&B2
=CONCATENATE(A2," ",B2)If A2 holds Priya and B2 holds Shah, both formulas return Priya Shah. The " " is a space typed between double quotes. Any text you type into the formula must be in double quotes; cell references are not.
The & operator is one of Excel's calculation operators, so you can mix it with other formulas: =A2&" sold "&C2&" units" returns Priya sold 12 units when C2 holds 12. CONCATENATE does the same with more commas and brackets. For a full tour of joining methods, see how to combine text in Excel.
The same task solved both ways#
Here is a small staff list:
| A | B | C | D | |
|---|---|---|---|---|
| 1 | First | Last | Dept | Start date |
| 2 | Priya | Shah | Sales | 15/03/2024 |
| 3 | Tom | Okafor | HR | 02/09/2024 |
| 4 | Lena | Novak | IT | 20/01/2025 |
Task 1: full name with a space#
=A2&" "&B2
=CONCATENATE(A2," ",B2)Both return Priya Shah. The guide on joining text with a space covers more separators.
Task 2: "Last, First (Dept)"#
=B3&", "&A3&" ("&C3&")"
=CONCATENATE(B3,", ",A3," (",C3,")")Both return Okafor, Tom (HR). Notice how the brackets inside quotes are easy to confuse with the function's own brackets in the CONCATENATE version. That is the main reason people find & easier to check.
Task 3: a label that includes a date#
="Started "&TEXT(D4,"d mmm yyyy")
=CONCATENATE("Started ",TEXT(D4,"d mmm yyyy"))Both return Started 20 Jan 2025. Without TEXT, both would return Started 45677, because Excel stores dates as serial numbers and joining uses the stored value.
When to use the ampersand#
Use & as your default for joining a few pieces. It is the better choice when:
- You join two to five pieces, such as first and last name, or a code and a number.
- You want formulas others can read quickly. Each
&marks a join, so mistakes stand out. - You build text inside other formulas, such as
=IF(C2>100,"Big order: "&C2,""). - You need criteria from a cell. In COUNTIF or SUMIFS,
">="&G2joins an operator to a cell value. CONCATENATE works here too, but nobody writes it that way. - You draw in-cell bars or labels with REPT, as in in-cell bar charts with REPT, where
&adds the number after the bar.
When to use CONCATENATE#
Use CONCATENATE mainly when you maintain a file that already uses it, or when a test asks for it by name. It is reasonable when:
- The workbook already uses it everywhere and you want one consistent style.
- You prefer reading a function with a list of pieces over a chain of operators.
- A job test or course names the function. Some screening tests still ask you to "use CONCATENATE".
- You build a long join step by step. Some people find a comma-separated list easier to extend one piece at a time, especially in a widened formula bar where every argument is visible.
For new work in Excel 2019 or Microsoft 365, CONCAT is the modern replacement: it works the same way and also accepts ranges. Our guide to CONCATENATE vs CONCAT vs TEXTJOIN compares all three.
How & works with maths and line breaks#
The & operator follows Excel's order of operations: maths is done first, then joining. That means this formula works without extra brackets:
="Total: "&C2+C3If C2 is 12 and C3 is 8, the result is Total: 20. Excel adds the numbers first, then joins the label. Comparisons such as = and > come after joining, so =A2&B2="PriyaShah" joins first and then checks the result, returning TRUE. When in doubt, add brackets; they never hurt and they make the formula easier to read.
To put two pieces on separate lines in one cell, join them with CHAR(10), the line-break character:
=A2&CHAR(10)&C2This shows Priya on one line and Sales below it. The break only appears when the cell has Wrap Text turned on (Home > Wrap Text). CONCATENATE accepts CHAR(10) in the same way: =CONCATENATE(A2,CHAR(10),C2). This is handy for address labels and short notes inside a report.
Joining whole ranges: use TEXTJOIN instead#
Neither & nor CONCATENATE joins a whole range in one step. If you have ten names in A2:A11, you would have to write each cell. TEXTJOIN solves this:
=TEXTJOIN(", ",TRUE,A2:A4)This returns Priya, Tom, Lena. The first argument is the separator, and TRUE tells it to skip empty cells, so you never get double commas. TEXTJOIN needs Excel 2019 or later, or Microsoft 365. The TEXTJOIN function guide explains each argument, and TEXTJOIN with blank cells shows the skip-blanks option in detail.
Common mistakes when joining text#
These slips cause most wrong results, whichever method you use:
- Forgetting the space.
=A2&B2returns PriyaShah. Add" "between the pieces. - Missing quotes around typed text.
=A2&, &B2is not a valid formula. Typed text, including commas and spaces, goes inside double quotes. - Joining a date or percentage without TEXT. A date becomes a serial number like 45366, and 25% becomes 0.25. Use
TEXT(D2,"d mmm yyyy")orTEXT(E2,"0%"). - Expecting a number back.
="12"&"5"returns the text 125, not a number. If you need to calculate with it, wrap it in VALUE. - Passing a range to CONCATENATE.
=CONCATENATE(A2:A4)does not join the cells into one string. In Microsoft 365 it spills the cells into separate results instead. Use TEXTJOIN or CONCAT. - Stray spaces in the source cells. If a name has a trailing space, the joined result will have a double space. Clean it with TRIM first:
=TRIM(A2)&" "&TRIM(B2).
Our recommendation#
Use the ampersand for everyday joins. It is shorter, it reads left to right like a sentence, and it works in every version of Excel, including Excel for the web and Mac. Learn to recognise CONCATENATE so you can read and edit older files, but you don't need to write it. When you join more than a handful of cells, or need to skip blanks, switch to TEXTJOIN.
In short: & for a few pieces, TEXTJOIN for ranges, CONCATENATE only for old files.
Practise it#
Try the exercise on this page: join a first and last name with & and a space. Then practise joining text in a live spreadsheet: you type the formula, and it checks your answer instantly.
Try it yourself
This is a live spreadsheet. Type the formula in the green cell and press Enter.
In C2, join the first name in A2 and the last name in B2 with a space between them, using the & operator.
| A | B | C | D | |
|---|---|---|---|---|
| 1 | Full name | |||
| 2 | Shah | |||
| 3 | Okafor | |||
| 4 | Novak | |||
| 5 | Mensah | |||
| 6 | ||||
| 7 | ||||
| 8 |
Tip: Use & twice: the first name, then a space in double quotes, then the last name.
Practise this in a lesson
Frequently asked questions
Is & the same as CONCATENATE in Excel?
Yes. Both join text and give the same result. =A2&B2 and =CONCATENATE(A2,B2) return identical text, so the choice is about readability, not output.
Is CONCATENATE being removed from Excel?
No. Microsoft keeps CONCATENATE for compatibility, but recommends CONCAT for new work. Old files that use CONCATENATE keep working in current versions.
How do I add a space between two cells?
Put a space in quotes between them: =A2&" "&B2. With CONCATENATE, it is =CONCATENATE(A2," ",B2).
Why does my date turn into a number when I join it?
Joining text uses the stored value, and a date is stored as a serial number. Wrap the date in TEXT, for example ="Due "&TEXT(B2,"d mmm yyyy").
Can & or CONCATENATE join a whole column?
Not in one simple step; you would have to list each cell. TEXTJOIN joins a whole range with a separator and can skip blank cells, so use it for long lists.