ARRAYTOTEXT Function

Excel Functions › Text

Excel 365 Text

The Excel ARRAYTOTEXT function converts an entire range or array into a single text string. In its default concise format it simply lists the values separated by commas; in strict format it returns the array exactly as Excel would write it in a formula — braces, quoted strings, row separators and all. That strict view is the killer feature: it lets you see precisely what a spilled formula such as FILTER or TEXTSPLIT is really returning, hidden spaces and text-numbers included.


Quick answer: to turn the range A2:B3 into one readable string:
=ARRAYTOTEXT(A2:B3) // North, 8200, South, 7400
Add 1 as the second argument for the strict, formula-style version: {"North",8200;"South",7400}.

Syntax

=ARRAYTOTEXT(array, [format])
ArgumentDescription
arrayRequiredThe range, spilled array, or array constant to convert to text.
formatOptional0 (default) = concise: values joined with “, ” and nothing else. 1 = strict: full array syntax with braces { }, text in quotes, commas between columns and semicolons between rows — a string you could paste straight back into a formula.

Available in: Excel for Microsoft 365 and Excel for the web only. Excel 2021 and earlier show #NAME?. For a plain joined list with your own delimiter in any modern version, use TEXTJOIN instead.

Concise vs strict format

The same two-row range, both ways. Concise reads nicely in a sentence; strict shows the array’s true structure — which values are text, and where the rows break:

ABCD
1RegionUnitsResult
2North8200=ARRAYTOTEXT(A2:B3)North, 8200, South, 7400
3South7400=ARRAYTOTEXT(A2:B3, 1){"North",8200;"South",7400}
=ARRAYTOTEXT(A2:B3) // concise - flat comma list
=ARRAYTOTEXT(A2:B3, 1) // strict - {"North",8200;"South",7400}

Concise mode is built for messages. Glue a whole spilled result into one cell of commentary:

="Flagged regions: " & ARRAYTOTEXT(FILTER(A2:A50, B2:B50<8000))

Strict mode is built for debugging. Point it at a formula that “looks right” but misbehaves, and the quotes give the game away — {"42"} is a text-number, {"42 "} has a trailing space, {42} is the real thing:

=ARRAYTOTEXT(TEXTSPLIT(A2, ","), 1) // inspect exactly what TEXTSPLIT produced

Try it: interactive ARRAYTOTEXT demo

Live demo

A 2×2 range sits in A2:B3 (North / 8200, South / 7400). Switch the format argument and watch the output change shape.

Errors & common pitfalls

#NAME? — older Excel. ARRAYTOTEXT exists only in Excel for Microsoft 365 and Excel for the web. In Excel 2021 and earlier the name isn’t recognized — TEXTJOIN is the closest substitute.

Pitfall: concise format erases the structure. North, 8200, South, 7400 could be one row, one column, or a 2×2 grid — you can’t tell. When shape matters, use format = 1.

Pitfall: you get underlying values, not formatted ones. Dates arrive as serial numbers (45831, not 23-Jun-2025) and $8,200 arrives as 8200. Wrap values with TEXT first if you need the display format.

Pitfall: no delimiter control. Concise format always uses a comma-space and strict format follows array syntax — neither is configurable. To join with a dash, a line break, or anything else, that job belongs to TEXTJOIN.

Practice workbook

📊
Download the free ARRAYTOTEXT practice workbook
Every example on this page, ready to open in Excel — plus practice challenges with answers on a separate tab. No sign-up required.

Frequently asked questions

What's the difference between ARRAYTOTEXT and TEXTJOIN?
TEXTJOIN joins values with a delimiter you choose and can skip empties — it’s for building output. ARRAYTOTEXT has fixed formatting but its strict mode shows true array syntax, quotes and braces included — it’s for inspecting and debugging. Reach for TEXTJOIN to present, ARRAYTOTEXT to diagnose.
What does the format argument actually change?
0 (concise, the default) returns the values joined by “, ” with no decoration. 1 (strict) returns valid array syntax: braces around the whole thing, quotes around text, commas between columns, semicolons between rows — so {"North",8200;"South",7400} tells you the array is 2 rows × 2 columns.
Why do my dates come out as numbers like 45831?
ARRAYTOTEXT converts underlying values, and a date is really a serial number wearing a format. Convert each date to text first: =ARRAYTOTEXT(TEXT(A2:A10, "d-mmm-yyyy")) — in Excel 365, TEXT happily processes the whole range at once.
When would I use VALUETOTEXT instead?
VALUETOTEXT is the single-value sibling: same concise/strict choice, but for one cell. Use it to test whether an individual cell holds the number 42 or the text "42"; use ARRAYTOTEXT when you want the whole range in one string.

Master functions like this in one day

This page covers one function. Our Excel Formulas and Functions class covers the 30 that matter most — live, hands-on, taught by professionals in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.

See the Formulas & Functions Class

Related functions: VALUETOTEXT · TEXTJOIN · TEXT · CONCAT · TEXTSPLIT