Excel TEXTJOIN & CONCAT in 2026: Combine Text Across Cells and Ranges the Smart Way
Combining text in Excel is something nearly every user needs to do — merging first and last names, building full addresses from separate fields, joining product codes with descriptions, creating custom labels for charts. For years, the only tool available was the ampersand (&) operator, which works fine for two or three cells but becomes unwieldy fast.
In 2026, Excel offers a much better toolkit: CONCAT and TEXTJOIN. These functions handle multi-cell joining efficiently, and TEXTJOIN in particular is one of the most versatile text functions Excel has ever shipped. This guide covers both functions in depth, with practical examples you can use immediately.
CONCAT: The Modern CONCATENATE
CONCAT is the replacement for the old CONCATENATE function. The syntax is cleaner, and crucially, it accepts ranges — not just individual cells.
Syntax: =CONCAT(text1, text2, …)
Where each argument can be a cell, a range, or a literal text string.
Basic Examples
=CONCAT(A2, " ", B2) — joins first name, a space, and last name
=CONCAT("Invoice-", TEXT(A2, "000")) — creates formatted codes like "Invoice-042"
=CONCAT(A2:A10) — joins all 9 cells in A2:A10 with no separator
That last example — accepting a range — is the key improvement over CONCATENATE. The old function required you to list every single cell individually: =CONCATENATE(A2, A3, A4, A5…). CONCAT takes the whole range in one argument.
💡 Pro Tip: CONCAT with no separator glues text together with nothing between — useful for code generation but not for readable output. Use TEXTJOIN when you need a delimiter.
TEXTJOIN: Joining with Delimiters
TEXTJOIN is more powerful than CONCAT because it adds a delimiter between each value — and it can optionally ignore blanks, which is where it becomes truly indispensable.
Syntax: =TEXTJOIN(delimiter, ignore_empty, text1, text2, …)
Parameters:
delimiter — the separator to insert between values (can be ", " for comma-space, "-" for hyphen, CHAR(10) for line break, etc.)
ignore_empty — TRUE to skip blank cells, FALSE to include empty entries as gaps
text1, text2 — values to join; these can be individual cells or ranges
TEXTJOIN Examples
Joining a list with commas:
=TEXTJOIN(", ", TRUE, A2:A20)
This joins all non-blank values in A2:A20 with comma-space separators. If some cells are blank, they're skipped (ignore_empty = TRUE).
Building a full address from parts:
=TEXTJOIN(", ", TRUE, B2, C2, D2, E2)
Joins street, city, state, and ZIP — skipping any blank fields. A person with no state listed won't get a trailing comma.
Joining values from multiple columns:
=TEXTJOIN(" | ", TRUE, A2:E2)
Joins all five cells with a pipe delimiter. Great for creating concatenated keys or labels.
TEXTJOIN with IF: Conditional Joining
TEXTJOIN becomes extremely powerful when combined with IF or filtering logic. You can use it to join only the values that meet a condition:
=TEXTJOIN(", ", TRUE, IF(B2:B20="Active", A2:A20, ""))
This joins only the names from column A where column B says "Active". Because this uses an array formula, in older Excel versions you'd press Ctrl+Shift+Enter. In Microsoft 365 2026, it works as a regular formula thanks to dynamic array support.
Another example — summarising tags:
=TEXTJOIN(", ", TRUE, IF(C2:C50=F1, B2:B50, ""))
Where F1 contains a category name and B2:B50 contains item names, C2:C50 contains categories. This returns a comma-separated list of all items in the selected category.
💡 Pro Tip: TEXTJOIN + IF is one of the most practical formula combinations in Excel. It replaces what used to require a helper column and a macro.
TEXTJOIN with FILTER and SORT
In Microsoft 365 2026, TEXTJOIN pairs beautifully with dynamic array functions:
=TEXTJOIN(", ", TRUE, SORT(FILTER(A2:A100, B2:B100="London")))
This filters A2:A100 to rows where column B equals "London", sorts the result alphabetically, then joins everything into a comma-separated string. In a single formula.
The combination of FILTER + SORT + TEXTJOIN is a recurring pattern in modern Excel work — it's worth practising until it becomes second nature.
Practical Use Cases
1. Building Email Distribution Lists
=TEXTJOIN("; ", TRUE, C2:C50) where column C contains email addresses. Paste the result directly into Outlook's To: field. Blank rows are automatically ignored.
2. Creating Product SKU Labels
=TEXTJOIN("-", FALSE, A2, B2, C2) where A = category code, B = size, C = color code. Produces "ELE-LG-RED" style codes.
3. Summarising Tagged Items
=TEXTJOIN(", ", TRUE, IF(ISNUMBER(SEARCH(G1, E2:E100)), D2:D100, "")) — finds all items where column E contains the tag in G1, then joins their names from column D.
4. Building CSV-Style Outputs
When you need to export data in a format another system can read, TEXTJOIN can build CSV rows:
=TEXTJOIN(",", FALSE, A2, B2, C2, D2, E2) — creates a comma-separated record with no spaces.
CHAR(10): Joining with Line Breaks
CHAR(10) is the line break character. Using it as the delimiter in TEXTJOIN creates multi-line cell content:
=TEXTJOIN(CHAR(10), TRUE, A2:A5)
This stacks values vertically within a single cell. For the line breaks to display, the cell must have Wrap Text enabled (Home > Alignment > Wrap Text).
This is useful for creating summary cells in dashboards where you want to display a list of items without using multiple rows.
Common Mistakes
Forgetting ignore_empty — leaving it as FALSE means blank cells create empty entries with delimiters ("value1,,value3")
Using CONCAT when you need TEXTJOIN — if you need a delimiter, use TEXTJOIN every time
Wrapping in TRIM but forgetting TRIM only removes leading/trailing spaces — it won't remove double spaces between words in joined text
Mixing data types — TEXTJOIN treats numbers as text when joining; use TEXT(cell, format) to control number formatting
TEXTJOIN vs CONCAT: When to Use Which
Use CONCAT when joining a range with no separator, or mixing ranges and literals with no separator needed
Use TEXTJOIN whenever a delimiter is needed, or when you want to skip blank cells
Use & (ampersand) for very simple two or three cell joins where a function is overkill
Copilot and Text Functions in 2026
Microsoft 365 Copilot can write TEXTJOIN and CONCAT formulas on your behalf. In the Excel Copilot sidebar, describe what you want: "Combine first name in column A and last name in column B with a space, skip blanks." Copilot generates the correct TEXTJOIN formula instantly.
This is particularly helpful for the TEXTJOIN + IF + FILTER combinations, where the nesting can be tricky to construct manually from memory.
Final Thoughts
TEXTJOIN and CONCAT are two of the functions that make the biggest difference in day-to-day Excel work once you know they exist. The combination of range support, delimiter insertion, and blank-cell ignoring in TEXTJOIN handles dozens of practical scenarios that previously required clunky workarounds.
Start by replacing your next use of the & operator with TEXTJOIN — especially if you're joining more than three cells or working with ranges. Once you see how much cleaner the formula becomes, you'll reach for TEXTJOIN as a default.
For more Excel tips and Microsoft 365 tutorials in 2026, visit officelearner.net.












