CONCATENATE Function in Google Sheets
Joins multiple text values into one string. The classic way to combine fields, but TEXTJOIN is usually a better choice for ranges. Still widely used for fixed-field combinations.
Syntax
CONCATENATE(string1, [string2, ...])Returns: All arguments joined into a single string with no separator.
Excel equivalent: CONCATENATE (identical) — Excel also has CONCAT (newer, range-friendly)
Parameters
| Name | Required | Description |
|---|---|---|
| string1, string2, ... | Required | Text values, cell references, or numbers to join. CONCATENATE accepts up to 30 arguments. |
Examples
Full name from parts
=CONCATENATE(A2, " ", B2)Joins first and last name with a space. Equivalent to A2 & " " & B2.
Build a URL from pieces
=CONCATENATE("https://example.com/users/", A2)Combines a base URL with a user ID from A2.
Range concatenation
=CONCATENATE(A2:A10)Joins every cell in A2:A10 with no separator. TEXTJOIN(", ", TRUE, A2:A10) is usually what you actually want.
When to use an alternative
- & operator — Joining 2-3 fixed values — & is shorter and clearer.
- TEXTJOIN — You want a separator between values.
- JOIN — You're joining a range with a delimiter but don't need ignore-empty handling.
Common errors and how to fix them
Number formatting lost
Cause: Numbers convert to default text representation, losing currency/percent formatting.
Fix: Wrap numbers with TEXT(): CONCATENATE(A2, " total: ", TEXT(B2, "$0.00")).
Related functions
Frequently Asked Questions
What's the difference between CONCATENATE and the & operator?
They do the same thing for two values. & is shorter for inline joining (A2 & B2). CONCATENATE is needed for joining a whole range in one call (CONCATENATE(A2:A10)). For range joins with a separator, prefer TEXTJOIN.
How do I add a line break inside CONCATENATE?
Use CHAR(10): CONCATENATE(A2, CHAR(10), B2). Enable text wrapping (Format → Wrapping → Wrap) to see the linebreak rendered in the cell.