TEXT() vs cell formatting: same codes, different consequences
The TEXT function and custom number formats speak the same format-code language ("0.0%", "yyyy-mm-dd", "+0;-0;0") — but TEXT converts the value into a string, while formatting leaves the number intact and changes only what you see. Choosing wrong either breaks downstream math or breaks your concatenations.
The differences at a glance
| TEXT | VALUE | |
|---|---|---|
| Cell still contains | Text — the rendered string | The real number/date, untouched |
| Downstream SUM/sort/chart | Broken or text-sorted | Works normally |
| Usable inside other text | Yes — its whole purpose ("due "&TEXT(A2,"mmm d")) | No — concatenating a formatted cell grabs the raw value |
| Where it lives | In the formula — visible, copies with it | On the cell — invisible in formulas, lost on some exports |
| Compatibility | Universal (verified; format codes match across apps) | Universal, minor locale differences in codes |
Which should you use?
- TEXT() — Building strings: labels, sentences, concatenated dates ("Report for 7/24/2026"), CSV-style exports — anywhere the number is becoming part of prose.
- Cell formatting — Everything still used as a number: currency columns, percentages, date columns, dashboards. If it will ever be summed, averaged, sorted, or charted, format — don't TEXT.
Compatibility (from executed tests)
TEXT executes identically across every version of all three apps we test, and the format-code dialect (sections, ?/?, [h]:mm, comma scaling) matches — several of our verified recipes lean on exactly that. The reverse trip is VALUE/DATEVALUE when someone TEXTed a column that needed to stay numeric.
Example formulas
| Number into a sentence | ="Growth: "&TEXT(B2,"+0.0%;-0.0%") |
| Same look, still a number | custom format: +0.0%;-0.0% |
| Undo an accidental TEXT column | =VALUE(A2) |
Full per-version details on each function page: TEXT · VALUE.