
Join two or more text strings into one. A fundamental tool for merging names, building codes, and combining labels — and the starting point for learning CONCAT and TEXTJOIN.
The Excel CONCATENATE function joins two or more text strings into one. It is one of the oldest text functions in Excel, and most users learn it as their first tool for combining text from separate cells. You can use it to join names, build product codes, add a label to a number, or write a sentence that pulls values from your spreadsheet automatically.
CONCATENATE is technically a legacy function — Microsoft replaced it with CONCAT in Excel 2016, which works the same way but also accepts whole cell ranges as input. However, CONCATENATE still works in all versions of Excel, so you will still see it used in older spreadsheets and by users who work across older systems. If you learn CONCATENATE, switching to CONCAT or the & operator later is easy because the logic is identical.
Combines up to 255 separate items — cells, numbers, and typed text — into a single string. No separator is added automatically.
Returns a text string. Numbers are converted to text automatically but lose any formatting like currency symbols or date shapes.
=CONCATENATE(text1, [text2], ...)
CONCATENATE takes one or more text arguments. The first, text1, is required. All others are optional. You can include cells, numbers, and typed text in quotes in any order. A very common mistake is forgetting to add spaces — if you write =CONCATENATE(A1, B1) with "John" in A1 and "Doe" in B1, the result will be "JohnDoe" with no space. You must include the space as a separate argument: =CONCATENATE(A1, " ", B1).
CONCATENATE is the original way to join text in Excel. Newer functions do the same job with less typing, and in some cases can do things CONCATENATE cannot — like joining a whole range at once or automatically adding a separator.
| Function | Accepts Ranges? | Auto Separator? | Use When |
|---|---|---|---|
CONCATENATE |
No — cells only | No | Working in older Excel versions or learning the basics |
CONCAT |
Yes | No | Joining a range of cells without needing a separator |
TEXTJOIN |
Yes | Yes — set once | Joining a list where every item needs the same separator |
& operator |
No — cells only | No | Quick joins of two or three cells where a short formula is preferred |
For new spreadsheets, it is better to use CONCAT instead of CONCATENATE since they behave identically for cell-by-cell joins, but CONCAT can also handle ranges. The & operator is an even shorter alternative — =A1&" "&B1 does exactly the same thing as =CONCATENATE(A1," ",B1) in fewer characters.
The most common uses for CONCATENATE are joining a first and last name into a full name, building a product or document code from parts stored in different columns, and writing report summary sentences like "The total for Q1 is $5,000." These tasks come up all the time when you are preparing data for reports or importing records into another system.
One important thing to know is that CONCATENATE treats numbers and dates as plain text when joining them. If cell A1 contains a date formatted as "01/01/2025," joining it with CONCATENATE will often give you the raw serial number instead of the formatted date. To keep the date format, wrap the date value in a TEXT function first: =CONCATENATE("Report for: ", TEXT(A1,"dd/mm/yyyy")).
=A1&" "&B1 instead of using CONCATENATE.This is the most classic use. You have a name split across two cells and need it combined in a third. The space is added as a text string between the two cell references — without it, the names would touch with no gap.
=CONCATENATE(A1, " ", B1) // "John Doe"
=CONCATENATE(B1, ", ", A1) // "Doe, John" (flipped format)
In cell F1, use CONCATENATE to join A1 ("John") and B1 ("Doe") with a space between them.
When you need to add a label before a number — like a product code prefix or a reference tag — CONCATENATE combines the typed text and the cell value automatically. The number gets converted to text as part of the join.
=CONCATENATE("SKU-", B2) // "SKU-99"
=CONCATENATE("INV-", A1, "-", B1) // "INV-2026-001"
In cell F2, combine the text "SKU-" with the number in B2 (99) to create a product code.
CONCATENATE is great for building dynamic dashboard messages. Instead of updating text manually whenever a value changes, you build the sentence once and let the formula update it automatically when the underlying data changes.
=CONCATENATE("Current yield is ", B3)
// If B3 = "98%", result is "Current yield is 98%"
In cell F3, write a sentence using text and the value in B3 (98%). Formula: =CONCATENATE("Current yield is ",B3).
A common task in reporting is generating a consistent file name or tab title that includes the current date. By storing the date as text in a cell and joining it with a prefix, each report gets a unique, automatically generated name.
=CONCATENATE("Report_", C1)
// If C1 = "2026-04-07", result is "Report_2026-04-07"
=CONCATENATE("Q1_", TEXT(A1,"yyyy"), "_Results")
// Builds a name with a formatted year from a date value
In cell F4, combine "Report_" with the date text in C1 to build a file name label.
Keep in mind that CONCATENATE cannot handle ranges. If you write =CONCATENATE(A1:A5), Excel might accept it but will only return the value of A1. To join a range of cells, use CONCAT or TEXTJOIN instead.
& operator is a shorter way to write the same join for simple cases.A simple rule: use CONCATENATE or & when joining a few specific cells, and switch to TEXTJOIN or CONCAT when working with longer ranges or lists.
CONCATENATE joins two or more text items into a single string.=CONCATENATE(text1, [text2], ...) — list each item separately.Tell your friends about this post