CONCAT Function in Excel — Complete Guide (2026)

CONCAT function in Excel — combine strings and ranges in 365/2019+. Syntax, examples, TEXTJOIN, ampersand, errors, Power Query, Mac parity.

Microsoft ExcelBy Katherine LeeMay 26, 202618 min read
CONCAT Function in Excel — Complete Guide (2026)

CONCAT Function in Excel — Key Numbers

📅2019+Excel Version Needed365 also supports it
🔢253Max Text ArgumentsPer CONCAT call
📏32,767Result Length CapCharacters per cell
1 argMinimum ArgumentsRange or single cell
🔁YesAccepts RangesUnlike CONCATENATE
🔄DeprecatedCONCATENATE StatusStill works for back-compat
Microsoft Excel - Microsoft Excel certification study resource

CONCAT Function in Excel — Complete Guide (2026)

The CONCAT function in Excel does one job and does it cleanly. It joins text. You hand it a list of strings, cell references, or whole ranges, and it stitches them together end-to-end into a single string. Three arguments or three hundred — same syntax, same behavior. =CONCAT(A1, " ", B1) turns "John" and "Smith" into "John Smith" in about as many keystrokes as it takes to type the function name.

Here's what makes CONCAT different from the older CONCATENATE function that you've probably seen in tutorials from 2015. CONCAT accepts ranges. You can hand it =CONCAT(A1:A10) and it'll glue every value in that 10-cell range into one long string. CONCATENATE refused — you had to comma-separate every single cell. That's the whole reason Microsoft added CONCAT in Excel 2019 and rolled it into 365. The old function still works for backward compatibility, but new spreadsheets should use the newer one. Less typing, fewer errors, easier to maintain when ranges grow.

This guide walks the function from the syntax up to the edge cases. Real examples for combining names, building order numbers, joining a range, adding spaces and separators, concatenating with formatted dates and numbers. Plus the three competing approaches — CONCAT, TEXTJOIN, and the ampersand operator — and when each one wins.

You'll also see common errors (the dreaded #VALUE! with arrays, missing separator gotchas), Power Query's Merge Columns alternative, TEXTSPLIT for going the other way, and Mac Excel parity notes. Worth knowing the full toolkit because Excel handles text joining in at least four different ways, and picking the wrong one slows you down.

What CONCAT Actually Does

CONCAT is short for concatenate, which is Latin-derived jargon for "chain together." In plain English: it sticks strings together. "Hello" + " " + "World" becomes "Hello World". That's all it does. No formatting tricks, no calculations, no delimiters added automatically — you supply every character that ends up in the result, including any spaces or commas between values.

This means CONCAT is a building block, not a finished tool. You combine it with other functions to do real work. Pair it with TEXT() to format dates and numbers before they get joined. Pair it with IF() to conditionally include some pieces and skip others. Pair it with RIGHT(), LEFT(), and MID() to extract substrings before joining. Worth thinking of CONCAT less as a feature and more as glue between other features.

The CONCAT function in Excel joins text strings or ranges into a single string. Syntax: =CONCAT(text1, [text2], ...). Each argument can be a literal string, a cell reference, or a range. Example: =CONCAT(A1, " ", B1) joins A1 and B1 with a space. =CONCAT(A1:A5) joins all five cells with no separator.

Need a delimiter between every item? Use TEXTJOIN instead: =TEXTJOIN(", ", TRUE, A1:A5) adds a comma-space between each value and skips blank cells.

Available in Excel 2019, 2021, 2024, and Microsoft 365. Replaces the older CONCATENATE function — though CONCATENATE still works for backward compatibility.

CONCAT Syntax — Three Argument Patterns

CONCAT takes between 1 and 253 arguments. Each one can be a string literal, a single cell, or a range. Pick the pattern that matches your data.

The most common pattern. You list each piece, with a literal string in between for the separator. =CONCAT(A1, " ", B1) joins A1 and B1 with a space. =CONCAT(A1, ", ", B1, " - ", C1) joins three cells with mixed separators. Every separator has to be typed in explicitly — CONCAT doesn't guess.

This is the right pattern when each cell needs different formatting around it. First name, space, last name. Order number, dash, customer name. Date, colon, value. The control is total — but the typing scales linearly with the number of cells.

If you're combining first and last names from two columns into one, that's the textbook CONCAT use case. The opposite operation — splitting a full name into separate first and last name columns — uses different functions entirely, covered in separate first and last name in Excel.

Five Practical CONCAT Examples

Copy these into your sheet, adjust the references, and they work. Each example covers a different real-world join scenario.
👤Full Name From First + LastMost Used

=CONCAT(A1, " ", B1) joins A1 ("John") and B1 ("Smith") into "John Smith". Add a middle initial: =CONCAT(A1, " ", LEFT(B1,1), ". ", C1) gives "John A. Smith". The space inside the quotes is critical — leave it out and you get "JohnSmith".

📦Order Number BuilderCommon

=CONCAT("Order #", B1, " - ", C1) builds "Order #4521 - Acme Corp" from an order number in B1 and a company name in C1. Add a date: =CONCAT("Order #", B1, " ", TEXT(D1, "yyyy-mm-dd")) → "Order #4521 2026-05-21".

🔡Letters Into a WordRange Demo

=CONCAT(A1:A5) where A1-A5 hold "H", "E", "L", "L", "O" returns "HELLO". Range concatenation with no separator. This is the example most beginners try first to confirm CONCAT accepts ranges — CONCATENATE wouldn't.

🔗URL Builder With SlugWeb

=CONCAT("https://practicetestgeeks.com/", A1, "/", B1) builds a full URL from a category in A1 and a slug in B1. Result: "https://practicetestgeeks.com/excel/concat-function-excel". Add error handling with IFERROR if the slug column has blanks.

🏷️Conditional Join With IFSmart

=CONCAT(A1, IF(B1="", "", " - " & B1)) joins A1 and B1 only when B1 has a value. Skips the separator and B1 entirely when B1 is empty. Cleaner than always-on concatenation that leaves trailing dashes for missing data.

How to Use CONCAT Step by Step

  • Click an empty cell where you want the joined result to appear
  • Type =CONCAT( — Excel's formula tooltip pops up showing the syntax
  • Click your first cell or type a literal string in double quotes
  • Type a comma to separate the next argument
  • Repeat — cells, ranges, and literal strings can be mixed freely
  • Add separator strings like " " or ", " between arguments as needed
  • Close the parenthesis and press Enter
  • Copy the formula down a column to repeat the join for every row
  • If you see #VALUE!, check for non-text values that need TEXT() wrapping first
  • If the result exceeds 32,767 characters, split into multiple cells — that's the cell content limit
Excellence Playa Mujeres - Microsoft Excel certification study resource

CONCAT vs CONCATENATE — Why CONCAT Won

CONCATENATE shipped in every version of Excel from 95 onward. It did the job for two decades. Then in Excel 2019, Microsoft added CONCAT and quietly marked CONCATENATE as deprecated. Old formulas still work — they don't break — but new spreadsheets should use CONCAT.

The reason is one feature: ranges. CONCATENATE took a comma-separated list of values. =CONCATENATE(A1, B1, C1, D1, E1) joined five cells. To add five more you typed five more arguments. Joining A1:A50 meant typing 50 arguments by hand. Brutal. CONCAT cut that to =CONCAT(A1:A50) — one range reference, done.

The second reason was internal cleanup. CONCATENATE's argument handling didn't play well with newer dynamic-array functions like FILTER and UNIQUE. CONCAT was rewritten to integrate cleanly with those — it spills naturally when arguments are dynamic arrays, and it composes cleanly with the new function family.

For backward compatibility, CONCATENATE still works in every modern Excel. If you inherit a workbook written in 2018 with CONCATENATE everywhere, leave it alone — there's no benefit to refactoring working formulas. But for anything new, default to CONCAT. The syntax is identical for single-cell arguments. The range support is a free upgrade.

The Ampersand Operator — Still Going Strong

Long before CONCATENATE existed, Excel had the ampersand (&) operator. =A1 & " " & B1 does exactly the same thing as =CONCAT(A1, " ", B1). Three characters shorter, easier to read for short joins, and works in every version of Excel ever shipped. Many veteran users prefer it for two-or-three-cell joins because the prose-like syntax ("this and that and the other") matches how you'd describe the operation out loud.

Where ampersand falls down is ranges. =A1:A10 & "" doesn't join the range — it spills into a vertical array of the original values. To join a range you have to fall back to CONCAT or TEXTJOIN. So the rule of thumb most experienced users settle on: ampersand for 2-3 cells, CONCAT for ranges, TEXTJOIN for delimited ranges.

TEXTJOIN — When You Need a Delimiter on Every Item

TEXTJOIN solves the one thing CONCAT can't. CONCAT joins a range with no separator. TEXTJOIN joins a range and inserts a separator between every item automatically. =TEXTJOIN(", ", TRUE, A1:A5) joins five cells with a comma-space between each, and the TRUE argument tells Excel to skip blank cells (otherwise you get "Apple, , Cherry" with an empty gap).

TEXTJOIN Syntax

Three arguments. The first is the delimiter — any string. The second is ignore_empty — TRUE or FALSE. The third (and beyond) is the values to join. =TEXTJOIN(" | ", TRUE, A1:A10) joins ten cells with pipe separators. =TEXTJOIN(CHAR(10), TRUE, A1:A10) joins them with line breaks (useful for building multi-line cell content). CHAR(10) is the line-feed character — combine with cell wrap text formatting to see the breaks.

TEXTJOIN's ignore_empty flag is the killer feature. Real spreadsheets have gaps. Some rows have all five values, some have only three. TEXTJOIN with TRUE handles this gracefully — empty cells just get skipped, no double-separator artifacts. CONCAT can't do this without an IF wrapper around every argument.

Like CONCAT, TEXTJOIN is Excel 2019+ and 365. It does not exist in 2016 or earlier. If you're stuck on an old version, you're back to ampersand operators and a lot of typing. Worth knowing that Excel cheat sheets often list TEXTJOIN as one of the top three modern functions to memorize, alongside FILTER and XLOOKUP.

The Ampersand (&) Operator — Still the Fastest for Short Joins

The ampersand has been Excel's default string-join operator forever. =A1 & B1 joins A1 and B1. =A1 & " " & B1 adds a space between them. Same result as CONCAT, less typing, more readable for short cases.

It's also more forgiving of mixed types. =A1 & B1 where A1 is a number and B1 is text just works — Excel coerces the number to its display string and joins. CONCAT does the same, but the ampersand syntax is so compact that most spreadsheet veterans use it as the default for two-cell joins and reach for CONCAT only when ranges are involved.

One thing to watch: when joining numbers, the ampersand uses the underlying value, not the displayed format. If A1 shows "$1,234.56" but is actually stored as 1234.56, =A1 & " total" gives "1234.56 total" — no dollar sign, no commas. Wrap with TEXT to preserve formatting: =TEXT(A1, "$#,##0.00") & " total".

When to Use CONCAT vs TEXTJOIN vs Ampersand

Use Ampersand (&) When:

You're joining 2 or 3 specific cells. The formula stays short and readable. Most beginners learn ampersand first and stick with it forever for simple cases. There's nothing wrong with that — for two-cell joins, =A1 & " " & B1 is clearer than =CONCAT(A1, " ", B1). Less syntactic noise, same result.

Use CONCAT When:

You have a range of cells to join with no separator (or you'll add the separator manually between each piece). =CONCAT(A1:A10) is dramatically cleaner than 10 ampersand operators. Also use CONCAT when you're building structured output by mixing literals, single cells, and ranges in one formula.

Use TEXTJOIN When:

You have a range and want the same delimiter between every item. Comma-separated lists, pipe-separated values, line-break-joined text. Plus you want to skip blanks automatically. TEXTJOIN is the only one of the three that handles this without extra IF logic.

Concatenating With Number and Date Formatting

CONCAT joins raw values. If a cell holds a date stored as the serial number 45798 but displays as "2025-05-21", CONCAT spits out "45798" — not the formatted date. To preserve formatting you wrap the cell in TEXT() inside the CONCAT call. =CONCAT(A1, " ", TEXT(B1, "yyyy-mm-dd")) joins A1 and B1 where B1 is a date, formatted as "2025-05-21". The TEXT function converts the underlying value to a formatted string before CONCAT sees it.

Same trick for numbers with formatting. =CONCAT("Price: ", TEXT(B1, "$#,##0.00")) turns the raw number 1234.56 into "Price: $1,234.56". Without TEXT, you'd get "Price: 1234.56" — accurate but ugly.

Common TEXT format codes worth knowing: "yyyy-mm-dd" for ISO dates, "mmm dd, yyyy" for "May 21, 2026", "$#,##0.00" for currency with two decimals, "0.0%" for percentages with one decimal, "00000" for zero-padded IDs like "00425". The format string follows the same rules as Excel's Format Cells dialog, just in formula form.

CONCAT vs TEXTJOIN — When to Pick Each

Use CONCAT
  • +Joining 2-5 cells where each separator is different — Order #, dash, name
  • +Joining a range with no separator between values — building a word from letters
  • +Mixing literals, single cells, and ranges in one formula expression
  • +Building URLs or file paths with custom punctuation between every part
  • +Backwards-friendly upgrade from old CONCATENATE formulas
Use TEXTJOIN
  • Joining a range with the SAME delimiter between every value — commas, pipes, line breaks
  • Skipping blank cells automatically without writing IF wrappers around each argument
  • Building comma-separated lists from filtered ranges with gaps
  • Joining 10+ cells where typing separators between each would be painful
  • Multi-line cell content using CHAR(10) as the delimiter for line breaks

Common CONCAT Errors and Fixes

#VALUE! When Passing an Array

If CONCAT gets a value it can't coerce to text — typically the result of a function that errored — it returns #VALUE!. Wrap suspect arguments in IFERROR. =CONCAT(IFERROR(A1, ""), " ", B1) swaps any error in A1 for an empty string before joining.

Another #VALUE! cause: passing a 2D array literal directly. =CONCAT({1,2;3,4}) works in 365 but can fail in some 2019 builds. Workaround: put the array in a cell range and reference it instead.

Missing Space Between Values

Beginner classic. =CONCAT(A1, B1) with A1="John" and B1="Smith" returns "JohnSmith". CONCAT doesn't add separators — you have to. Fix: =CONCAT(A1, " ", B1). The space inside the quote marks is the entire fix.

Numbers Showing Raw Instead of Formatted

Already covered above. CONCAT uses the underlying value. Wrap with TEXT to preserve formatting. =CONCAT("Total: ", TEXT(A1, "$#,##0.00")).

Result Truncated at 32,767 Characters

That's Excel's per-cell content limit. CONCAT will silently truncate if your joined string exceeds it. For long joins of huge ranges, split the result across multiple cells or use Power Query instead.

#NAME? Means You're On Excel 2016 or Earlier

If CONCAT returns #NAME? immediately, Excel doesn't recognize the function. You're on a pre-2019 build. Use CONCATENATE or the ampersand operator instead. Or upgrade to Excel 2019, 2021, 2024, or Microsoft 365 — CONCAT is unavailable everywhere else.

Power Query Merge Columns — The Bulk Alternative

For large data sets imported from CSVs or databases, Power Query offers a Merge Columns transform that does the same job as CONCAT — without writing formulas in the sheet. Load your data into Power Query (Data tab → Get Data). Select two or more columns. On the Transform tab pick Merge Columns. Choose a separator (space, comma, custom). Name the new merged column. Close and Load.

The advantage: Power Query handles billions of rows efficiently because it processes data outside the cell grid. CONCAT in 100,000 cells slows the workbook. Power Query merge on the same data finishes in seconds and only displays the result.

The disadvantage: Power Query has a learning curve. For one-off joins of 50 rows, CONCAT in the sheet wins on simplicity. For repeating monthly imports of 10,000 rows, Power Query wins because the transform is reusable — refresh and the merge happens again automatically.

TEXTSPLIT — The Reverse Operation

The opposite of CONCAT is TEXTSPLIT, added in Excel 365 in 2022. Where CONCAT joins values into one cell, TEXTSPLIT takes one cell and splits it into many. =TEXTSPLIT("apple,banana,cherry", ",") spills three cells horizontally: apple, banana, cherry. Same syntax as Text-to-Columns but as a live formula.

TEXTSPLIT pairs naturally with CONCAT. You can build complex transformations like "join three columns into a delimited string, then split that string on a different delimiter into more columns" with two formulas. Or use TEXTSPLIT to unpack data that arrived in concatenated form from a legacy system.

The function takes up to four arguments: text, column_delimiter, row_delimiter, ignore_empty. =TEXTSPLIT(A1, ",", ";") splits A1 on commas horizontally and on semicolons vertically — turning "a,b,c;d,e,f" into a 2×3 grid.

Mac Excel Parity

CONCAT works identically on Mac Excel 2019, 2021, 2024, and 365. No syntax differences. The only quirk is keyboard shortcut differences for formula entry — F4 to toggle absolute references becomes Cmd+T on Mac. The function itself, its arguments, and its behavior are identical across platforms.

TEXTJOIN, TEXTSPLIT, and the ampersand operator are also fully cross-platform. Workbooks built with these functions on Windows open and recalculate correctly on Mac, and vice versa. The only place you'll hit incompatibility is opening a Mac-365-built workbook in Excel 2016 — the newer functions won't exist and you'll see #NAME? errors.

Excel Spreadsheet - Microsoft Excel certification study resource

Building a Customer Address With CONCAT — 5 Steps

1️⃣

Lay Out Your Source Columns

Street in A2, City in B2, State in C2, Zip in D2. One row per customer. Make sure all four cells have data — empty cells will leave gaps in the final string.
2️⃣

Write the CONCAT Formula in E2

Type =CONCAT(A2, ", ", B2, ", ", C2, " ", D2). The commas-space sequences are explicit literals. The space between state and zip is intentional. Press Enter to see the joined address.
3️⃣

Verify the Result

Should look like "123 Main St, Springfield, IL 62701". If you see double commas or missing spaces, audit the literal separators between each argument.
4️⃣

Handle Empty Cells (Optional)

For real-world data with gaps, wrap blanks with IF: =CONCAT(A2, IF(B2="", "", ", " & B2), ...). Or switch to TEXTJOIN with ignore_empty=TRUE for cleaner handling.
5️⃣

Fill Down the Column

Double-click the bottom-right corner of E2. Excel auto-fills the formula to every row with adjacent data. One formula, hundreds of joined addresses.

CONCAT vs TEXTJOIN vs Ampersand — Speed and Use

&Ampersand (&)Shortest syntax for 2-3 cell joins. =A1 & " " & B1. Works in every Excel version since 95. No range support.
🧩CONCATJoins ranges and single cells in one call. =CONCAT(A1:A10, " - ", B1). Excel 2019+ and 365 only. No auto-delimiter.
🪢TEXTJOINAuto-inserts a delimiter between every value, skips blanks with ignore_empty=TRUE. =TEXTJOIN(", ", TRUE, A1:A10). Excel 2019+.
🔌Power Query MergeDrag-and-drop merge in the query editor. Handles billions of rows. Reusable transforms — refresh once a month, done.
📜CONCATENATE (Old)The pre-2019 function. Single cells only, no ranges. Still works for old workbooks but should not be used in new sheets.
✂️TEXTSPLITSplits a single string back into multiple cells. The opposite of CONCAT. Excel 365 only (2022+). Useful for unpacking concatenated data.

CONCAT Inside Excel Tables — The Structured Reference Win

If your data is formatted as an Excel Table (select range, press Ctrl+T), CONCAT plays especially well with structured references. =CONCAT([@FirstName], " ", [@LastName]) reads cleaner than =CONCAT(A2, " ", B2) and self-documents what columns are being joined.

The bigger win is auto-fill. Write the CONCAT formula in any cell of a new table column, press Enter, and Excel auto-fills it down every existing row of the table. Add a new row of data tomorrow, and the formula populates that row automatically. No dragging, no reference updates, no broken formulas when columns get inserted somewhere else. Tables make CONCAT effectively self-maintaining.

Worth pairing this with Excel pivot tables — pivots love structured tables as their source data. Build a CONCAT calculated column in the table (full name, customer address, order summary), then pivot on that joined field for cleaner group-by reports. The joined string becomes a meaningful dimension instead of two raw columns mashed together at pivot time.

CONCAT in Conditional Formatting

You can use CONCAT inside conditional formatting formulas too. "Highlight any row where the full name matches a value in another column" becomes =CONCAT($A2, " ", $B2)=$D$1. The CONCAT builds the joined value on the fly, comparison runs against the lookup cell, and matching rows get the conditional fill. No helper column needed.

Same trick works in data validation. Build dropdown lists where each entry is a CONCAT of two source columns. Combine with INDIRECT for cascading dropdowns where the second list depends on the first. CONCAT is the glue that makes structured data play nicely with Excel's higher-level features.

Performance Notes for Large Sheets

CONCAT itself is fast. Joining 10 cells takes microseconds. Where it slows down is when you wrap it around large ranges and apply it in 50,000+ cells. =CONCAT(A:A) in 50,000 cells means Excel scans a million cells fifty thousand times during a recalc. Switch to explicit ranges like =CONCAT(A2:A10000) to skip the empty parts of the column.

For repeated CONCAT operations across huge data sets, prefer Power Query Merge Columns. Power Query processes data outside the cell grid and is orders of magnitude faster on bulk transformations. CONCAT in the sheet is the right tool for ad-hoc joins. Power Query is the right tool for monthly imports with thousands of rows. Same end result, very different performance profile.

Excel Questions and Answers

Related Excel Guides

About the Author

Katherine LeeMBA, CPA, PHR, PMP

Business Consultant & Professional Certification Advisor

Wharton School, University of Pennsylvania

Katherine Lee earned her MBA from the Wharton School at the University of Pennsylvania and holds CPA, PHR, and PMP certifications. With a background spanning corporate finance, human resources, and project management, she has coached professionals preparing for CPA, CMA, PHR/SPHR, PMP, and financial services licensing exams.