VALUETOTEXT in Excel: Concise and Strict Text Conversion
Convert Excel values to text, compare concise and strict representations, and distinguish a numeric value from numeric-looking text during an audit.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: VALUETOTEXT(value,[format]) converts a value to text. Format 0, the default, gives a readable representation; format 1 uses a strict representation that quotes text values while leaving numeric, Boolean and error tokens unquoted.
Availability and version history
- Introduced: the Microsoft function catalogue marks this identity as an Excel 2021 addition. An exact first build or preview date is not established.
- Availability: official help lists Excel for Microsoft 365, Excel for Microsoft 365 for Mac, Excel 2021, Excel 2021 for Mac. This particular reference does not list Excel 2024 or Excel for the web; their eligibility is not inferred from another function.
- Checked: October 14, 2026; official VALUETOTEXT reference. Documentation and independent models; no native Excel execution or wider platform certification.
Syntax and the two formats
=VALUETOTEXT(value,[format])
Microsoft documents #VALUE! when format is neither 0 nor 1. Concise output follows the value’s General-format representation, rather than being a promise to preserve every custom cell display. Strict mode is useful when distinctions between types matter.
The quotes shown in strict results below are actual characters in the returned text. They are not the surrounding quotation marks used to type an Excel formula literal. This guide uses ordinary values and does not certify linked data types, unusual embedded quoting or locale-specific parser round trips.
Example 1: inspect numbers, text and Booleans
Set up A2:A6 as follows. Type a leading apostrophe for text 42; the apostrophe is not part of its stored value.
| Cell | Enter | Stored input |
|---|---|---|
| A2 | 42 | number |
| A3 | ‘42 | text |
| A4 | Ready | text |
| A5 | =TRUE() |
Boolean |
| A6 | =VALUE("not a number") |
actual #VALUE! error |
In B2 enter =VALUETOTEXT(A2,0) and fill through B6. In C2 enter =VALUETOTEXT(A2,1) and fill through C6.
| Row | Concise text | Strict text |
|---|---|---|
| 2 | 42 | 42 |
| 3 | 42 | “42” |
| 4 | Ready | “Ready” |
| 5 | TRUE | TRUE |
| 6 | #VALUE! | #VALUE! |
The concise strings for rows 2 and 3 look identical. Strict mode makes their original number-versus-text distinction visible. Row 6 illustrates the documented conversion of an error value to an error token in text; it does not repair the original error in A6.
Example 2: separate formatting from the value
Put numeric 7.5 in E2 and apply a custom numeric display with three decimal places, so the cell displays 7.500. =VALUETOTEXT(E2) gives the General-style text 7.5 in the English decimal-point convention.
If a report must say 7.500, use a deliberate formatting expression such as =TEXT(E2,"0.000") instead. These functions answer different presentation questions: a value representation versus a requested number-format pattern.
In E3 enter actual text 007.500, using an apostrophe on entry if needed. Concise VALUETOTEXT preserves those text characters, while strict mode returns "007.500". Neither result means the numeric source E2 had those leading zeros or that they can be recovered after an earlier numerical conversion.
Advanced example: a type-aware review label
Suppose G2 contains numeric 12 and G3 contains text 12. In H2 enter and fill down:
="Stored value: "&VALUETOTEXT(G2,1)
The labels are Stored value: 12 and Stored value: "12". A reviewer can see that the source cells are not the same type without depending on alignment or cell formatting.
Use =ISNUMBER(G2) and =ISNUMBER(G3) as explicit controls: TRUE and FALSE. Testing the converted H strings would instead test the report labels, which are text in both cases. Preserve the original cells for calculations and validation.
For a longer report, keep identifiers in one column, source values in another and strict representations in a third. That layout preserves row correspondence and avoids mistaking a serialized display for the underlying editable data. Use ARRAYTOTEXT when the goal is to represent a whole rectangle with row and column structure.
Limits and troubleshooting
=VALUETOTEXT(42,2) has documented #VALUE! because 2 is not a supported format. That failure is different from converting an existing source error into its text representation.
The reference mentions escape characters but does not give an exhaustive grammar for embedded quotation marks, every linked data type or all locale combinations. Those cases remain outside the certified examples. Do not treat this function as a general JSON or CSV exporter, or execute text obtained from an untrusted workbook merely because it looks formula-like.
Related tools are TEXT for chosen display formats, ISNUMBER for type checks and VALUE for a separate text-to-number interpretation step.
References and verification
Expected outputs are independently calculated examples or documented rules, not captured native Excel results. Formulas use English function names and comma argument separators. Locale, rendering and boundary restrictions are stated where relevant.