VALUETOTEXT
Quirk foundCategory: Text · Last tested 2026-09-01
Real compatibility results for the VALUETOTEXT function: executed in Excel for the web, Google Sheets and LibreOffice Calc, with desktop Excel behavior from Microsoft’s official documentation (we do not run desktop Excel — Excel for the web is a different application and is executed separately). Syntax and links to that documentation are below.
Support matrix
| Engine | Documented | Live-tested | Verdict |
|---|---|---|---|
| Excel (desktop) | Yes | No — documented only | n/a |
| Excel for the web | — | Yes (recalc, 2026-09-01) | Quirk found |
| Google Sheets | No | Yes (Drive import, 2026-08-31) | Unsupported (not recognized) |
| LibreOffice Calc | No | Yes (25.8.7.3, 2026-08-31) | Unsupported (not recognized) |
LibreOffice version history
We executed the same test cases under each LibreOffice release to show exactly when VALUETOTEXT’s support changed — not documentation claims, real results.
| LibreOffice version | Verdict | Tested |
|---|---|---|
| 24.2.0.3 | Unsupported (not recognized) | 2026-08-31 |
| 24.8.7.2 | Unsupported (not recognized) | 2026-08-31 |
| 25.2.0.3 | Unsupported (not recognized) | 2026-08-31 |
| 25.8.7.3 | Unsupported (not recognized) | 2026-08-31 |
Why isn't VALUETOTEXT working in LibreOffice?
LibreOffice Calc does not implement VALUETOTEXT as of 25.8.7.3 — in our
executed tests it returns a #NAME? (unrecognized function) error. This is not a typo or a
settings problem, and saving the file as .xlsx does not change it: the function simply isn’t
available yet.
The same formula is documented for Excel.
Watch the LibreOffice version support page —
we re-run every test on each new release, so it will flip to Supported here as soon as it lands.
Why isn’t VALUETOTEXT working in Google Sheets?
Google Sheets does not implement VALUETOTEXT: we imported the formula into
Sheets on 2026-08-31 and every case came back #NAME?
(unrecognized function). Sheets is a rolling service with no version to pin, so this is a
statement about the service on that date, and Google’s own
function list does not document it either. Rewrite the formula with a documented
Sheets equivalent — see the
Excel ↔ Sheets equivalents table.
Discovered quirks
-
=VALUETOTEXT(A2,0) on
Google Sheets returned
#NAME?, but the documented/expected
result is TRUE.
Provenance
Microsoft publishes =VALUETOTEXT(A2, 0) = TRUE for A2 = TRUE. Format 0 is documented as "Concise format that is easy to read. The text returned will be the same as the text rendered in a cell that has general formatting applied." Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/valuetotext-function. FETCH NOTE FOR THIS BATCH: batch F recorded every /en-us/office/<name>-function-<guid> URL returning Microsoft's 'Sorry, the page you're looking for can't be found' body; today BOTH paths serve the article again -- the GUID form redirects to /en-us/excel/functions/<slug>-function -- and every page cited in this batch came back complete (217-223 KB) in one or two attempts, with no 87 KB stub responses. Nothing here is sourced from a search snippet or a mirror.; MISMATCH vs expected: expected 'TRUE', got '#NAME?'
-
=VALUETOTEXT(A3,0) on
Google Sheets returned
#NAME?, but the documented/expected
result is 1234.01234.
Provenance
Microsoft publishes =VALUETOTEXT(A3, 0) = 1234.01234. The published Strict row for the same cell is ALSO 1234.01234, because the page documents strict format as encapsulating "returned strings in quotes except for Booleans, Numbers and Errors" -- numbers are one of the three exceptions.; MISMATCH vs expected: expected '1234.01234', got '#NAME?'
-
=VALUETOTEXT(A4,0) on
Google Sheets returned
#NAME?, but the documented/expected
result is Hello.
Provenance
Microsoft publishes =VALUETOTEXT(A4, 0) = Hello, with no quotation marks. This is the concise half of the pair that defines the format argument.; MISMATCH vs expected: expected 'Hello', got '#NAME?'
-
=VALUETOTEXT(A4,1) on
Google Sheets returned
#NAME?, but the documented/expected
result is "Hello".
Provenance
Microsoft publishes =VALUETOTEXT(A4, 1) = "Hello" WITH the quotation marks, against the unquoted Hello from format 0 on the identical cell. THIS PAIR IS THE ONLY THING IN THE PUBLISHED TABLE THAT DISTINGUISHES THE TWO FORMATS: rows A2, A3, A5 and A7 (a Boolean, two numbers and an error) print identically under both formats, so an engine that ignored the format argument entirely would pass four of the six documented rows. The expected value here contains literal double-quote characters as part of the string.; MISMATCH vs expected: expected '"Hello"', got '#NAME?'
-
=VALUETOTEXT(A6,1) on
Google Sheets returned
#NAME?, but the documented/expected
result is "Seattle".
Provenance
Microsoft publishes =VALUETOTEXT(A6, 1) = "Seattle". Asserted alongside the Hello pair so the quoting behaviour rests on two independent strings rather than one.; MISMATCH vs expected: expected '"Seattle"', got '#NAME?'
-
=VALUETOTEXT(A4,2) on
Google Sheets returned
#NAME?, but the documented/expected
result is #VALUE!.
Provenance
The Remarks publish: "If format is anything other than 0 or 1, VALUETOTEXT returns the #VALUE! error value."; MISMATCH vs expected: expected '#VALUE!', got '#NAME?'
-
=VALUETOTEXT(A2,0) on
LibreOffice Calc returned
#NAME?, but the documented/expected
result is TRUE.
Provenance
Microsoft publishes =VALUETOTEXT(A2, 0) = TRUE for A2 = TRUE. Format 0 is documented as "Concise format that is easy to read. The text returned will be the same as the text rendered in a cell that has general formatting applied." Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/valuetotext-function. FETCH NOTE FOR THIS BATCH: batch F recorded every /en-us/office/<name>-function-<guid> URL returning Microsoft's 'Sorry, the page you're looking for can't be found' body; today BOTH paths serve the article again -- the GUID form redirects to /en-us/excel/functions/<slug>-function -- and every page cited in this batch came back complete (217-223 KB) in one or two attempts, with no 87 KB stub responses. Nothing here is sourced from a search snippet or a mirror.; MISMATCH vs expected: expected 'TRUE', got '#NAME?'
-
=VALUETOTEXT(A3,0) on
LibreOffice Calc returned
#NAME?, but the documented/expected
result is 1234.01234.
Provenance
Microsoft publishes =VALUETOTEXT(A3, 0) = 1234.01234. The published Strict row for the same cell is ALSO 1234.01234, because the page documents strict format as encapsulating "returned strings in quotes except for Booleans, Numbers and Errors" -- numbers are one of the three exceptions.; MISMATCH vs expected: expected '1234.01234', got '#NAME?'
-
=VALUETOTEXT(A4,0) on
LibreOffice Calc returned
#NAME?, but the documented/expected
result is Hello.
Provenance
Microsoft publishes =VALUETOTEXT(A4, 0) = Hello, with no quotation marks. This is the concise half of the pair that defines the format argument.; MISMATCH vs expected: expected 'Hello', got '#NAME?'
-
=VALUETOTEXT(A4,1) on
LibreOffice Calc returned
#NAME?, but the documented/expected
result is "Hello".
Provenance
Microsoft publishes =VALUETOTEXT(A4, 1) = "Hello" WITH the quotation marks, against the unquoted Hello from format 0 on the identical cell. THIS PAIR IS THE ONLY THING IN THE PUBLISHED TABLE THAT DISTINGUISHES THE TWO FORMATS: rows A2, A3, A5 and A7 (a Boolean, two numbers and an error) print identically under both formats, so an engine that ignored the format argument entirely would pass four of the six documented rows. The expected value here contains literal double-quote characters as part of the string.; MISMATCH vs expected: expected '"Hello"', got '#NAME?'
-
=VALUETOTEXT(A6,1) on
LibreOffice Calc returned
#NAME?, but the documented/expected
result is "Seattle".
Provenance
Microsoft publishes =VALUETOTEXT(A6, 1) = "Seattle". Asserted alongside the Hello pair so the quoting behaviour rests on two independent strings rather than one.; MISMATCH vs expected: expected '"Seattle"', got '#NAME?'
-
=VALUETOTEXT(A4,2) on
LibreOffice Calc returned
#NAME?, but the documented/expected
result is #VALUE!.
Provenance
The Remarks publish: "If format is anything other than 0 or 1, VALUETOTEXT returns the #VALUE! error value."; MISMATCH vs expected: expected '#VALUE!', got '#NAME?'
Executed test cases
Excel for the web (executed 2026-09-01 via OneDrive recalculation)
These values come from Excel for the web, not from desktop Excel. They are two different implementations of the calculation engine, and this run measured only the web one: the corpus was uploaded to OneDrive as .xlsx, recalculated by Excel for the web on open, and downloaded again for readback. Excel for the web is a rolling service with no pinnable version, so the run is identified by its date. Where a value here disagrees with the Expected column — which is Microsoft’s documentation of the desktop product — we cannot tell you whether the web engine diverges from the desktop one or the documentation is wrong about both, because we do not run desktop Excel.
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =VALUETOTEXT(A2,0) | Microsoft's first documented row: a logical value in concise format | TRUE | TRUEProvenanceMicrosoft publishes =VALUETOTEXT(A2, 0) = TRUE for A2 = TRUE. Format 0 is documented as "Concise format that is easy to read. The text returned will be the same as the text rendered in a cell that has general formatting applied." Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/valuetotext-function. FETCH NOTE FOR THIS BATCH: batch F recorded every /en-us/office/<name>-function-<guid> URL returning Microsoft's 'Sorry, the page you're looking for can't be found' body; today BOTH paths serve the article again -- the GUID form redirects to /en-us/excel/functions/<slug>-function -- and every page cited in this batch came back complete (217-223 KB) in one or two attempts, with no 87 KB stub responses. Nothing here is sourced from a search snippet or a mirror. |
Matched |
| =VALUETOTEXT(A3,0) | Microsoft's second documented row: a number in concise format | 1234.01234 | 1234.01234ProvenanceMicrosoft publishes =VALUETOTEXT(A3, 0) = 1234.01234. The published Strict row for the same cell is ALSO 1234.01234, because the page documents strict format as encapsulating "returned strings in quotes except for Booleans, Numbers and Errors" -- numbers are one of the three exceptions. |
Matched |
| =VALUETOTEXT(A4,0) | Microsoft's third documented row: text in concise format, which is NOT quoted | Hello | HelloProvenanceMicrosoft publishes =VALUETOTEXT(A4, 0) = Hello, with no quotation marks. This is the concise half of the pair that defines the format argument. |
Matched |
| =VALUETOTEXT(A4,1) | Microsoft's third documented row in strict format, where the same text IS quoted | "Hello" | "Hello"ProvenanceMicrosoft publishes =VALUETOTEXT(A4, 1) = "Hello" WITH the quotation marks, against the unquoted Hello from format 0 on the identical cell. THIS PAIR IS THE ONLY THING IN THE PUBLISHED TABLE THAT DISTINGUISHES THE TWO FORMATS: rows A2, A3, A5 and A7 (a Boolean, two numbers and an error) print identically under both formats, so an engine that ignored the format argument entirely would pass four of the six documented rows. The expected value here contains literal double-quote characters as part of the string. |
Matched |
| =VALUETOTEXT(A6,1) | Microsoft's fifth documented row in strict format, a second quoted string | "Seattle" | "Seattle"ProvenanceMicrosoft publishes =VALUETOTEXT(A6, 1) = "Seattle". Asserted alongside the Hello pair so the quoting behaviour rests on two independent strings rather than one. |
Matched |
| =VALUETOTEXT(A4,2) | A format argument of 2, which the page excludes | #VALUE! | #VALUE!ProvenanceThe Remarks publish: "If format is anything other than 0 or 1, VALUETOTEXT returns the #VALUE! error value." |
Matched |
| =VALUETOTEXT(A5,0) | Microsoft's error-value row, deliberately recorded without an assertion because the harness cannot distinguish the two possible outcomes | #VALUE! | ProvenanceDELIBERATELY ASSERTS NOTHING, FOR A READ-BACK REASON RATHER THAN A DOCUMENTATION ONE. Microsoft publishes =VALUETOTEXT(A5, 0) = #VALUE! for a cell A5 holding the ERROR VALUE #VALUE!, i.e. the function is documented to return the error's TEXT, "#VALUE!", as a string. Two problems make that unassertable here. First, setup_cells can only place a literal, so A5 in this workbook holds the six-character STRING "#VALUE!" rather than a genuine error value, and a string round-trips through the concise format unchanged -- the right answer for the wrong reason. Second, and decisively, harness/corpus.py classifies a read-back value of "#VALUE!" as an ERROR (it is in KNOWN_ERROR_STRINGS), so a correct engine returning the text "#VALUE!" and a broken engine actually erroring are INDISTINGUISHABLE in the results file. Rather than assert a value the harness cannot verify, the case records what each engine returns and says why it is not scored. |
Error |
Google Sheets (executed 2026-08-31 via Drive import)
Google Sheets is a rolling service with no pinnable version, so this run is identified by its date. The corpus was imported to Drive as .xlsx, recalculated by Sheets, and exported back for readback.
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =VALUETOTEXT(A2,0) | Microsoft's first documented row: a logical value in concise format | #NAME? | TRUEProvenanceMicrosoft publishes =VALUETOTEXT(A2, 0) = TRUE for A2 = TRUE. Format 0 is documented as "Concise format that is easy to read. The text returned will be the same as the text rendered in a cell that has general formatting applied." Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/valuetotext-function. FETCH NOTE FOR THIS BATCH: batch F recorded every /en-us/office/<name>-function-<guid> URL returning Microsoft's 'Sorry, the page you're looking for can't be found' body; today BOTH paths serve the article again -- the GUID form redirects to /en-us/excel/functions/<slug>-function -- and every page cited in this batch came back complete (217-223 KB) in one or two attempts, with no 87 KB stub responses. Nothing here is sourced from a search snippet or a mirror. |
Mismatch |
| =VALUETOTEXT(A3,0) | Microsoft's second documented row: a number in concise format | #NAME? | 1234.01234ProvenanceMicrosoft publishes =VALUETOTEXT(A3, 0) = 1234.01234. The published Strict row for the same cell is ALSO 1234.01234, because the page documents strict format as encapsulating "returned strings in quotes except for Booleans, Numbers and Errors" -- numbers are one of the three exceptions. |
Mismatch |
| =VALUETOTEXT(A4,0) | Microsoft's third documented row: text in concise format, which is NOT quoted | #NAME? | HelloProvenanceMicrosoft publishes =VALUETOTEXT(A4, 0) = Hello, with no quotation marks. This is the concise half of the pair that defines the format argument. |
Mismatch |
| =VALUETOTEXT(A4,1) | Microsoft's third documented row in strict format, where the same text IS quoted | #NAME? | "Hello"ProvenanceMicrosoft publishes =VALUETOTEXT(A4, 1) = "Hello" WITH the quotation marks, against the unquoted Hello from format 0 on the identical cell. THIS PAIR IS THE ONLY THING IN THE PUBLISHED TABLE THAT DISTINGUISHES THE TWO FORMATS: rows A2, A3, A5 and A7 (a Boolean, two numbers and an error) print identically under both formats, so an engine that ignored the format argument entirely would pass four of the six documented rows. The expected value here contains literal double-quote characters as part of the string. |
Mismatch |
| =VALUETOTEXT(A6,1) | Microsoft's fifth documented row in strict format, a second quoted string | #NAME? | "Seattle"ProvenanceMicrosoft publishes =VALUETOTEXT(A6, 1) = "Seattle". Asserted alongside the Hello pair so the quoting behaviour rests on two independent strings rather than one. |
Mismatch |
| =VALUETOTEXT(A4,2) | A format argument of 2, which the page excludes | #NAME? | #VALUE!ProvenanceThe Remarks publish: "If format is anything other than 0 or 1, VALUETOTEXT returns the #VALUE! error value." |
Mismatch |
| =VALUETOTEXT(A5,0) | Microsoft's error-value row, deliberately recorded without an assertion because the harness cannot distinguish the two possible outcomes | #NAME? | ProvenanceDELIBERATELY ASSERTS NOTHING, FOR A READ-BACK REASON RATHER THAN A DOCUMENTATION ONE. Microsoft publishes =VALUETOTEXT(A5, 0) = #VALUE! for a cell A5 holding the ERROR VALUE #VALUE!, i.e. the function is documented to return the error's TEXT, "#VALUE!", as a string. Two problems make that unassertable here. First, setup_cells can only place a literal, so A5 in this workbook holds the six-character STRING "#VALUE!" rather than a genuine error value, and a string round-trips through the concise format unchanged -- the right answer for the wrong reason. Second, and decisively, harness/corpus.py classifies a read-back value of "#VALUE!" as an ERROR (it is in KNOWN_ERROR_STRINGS), so a correct engine returning the text "#VALUE!" and a broken engine actually erroring are INDISTINGUISHABLE in the results file. Rather than assert a value the harness cannot verify, the case records what each engine returns and says why it is not scored. |
Error |
LibreOffice Calc 25.8.7.3 (tested 2026-08-31)
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =VALUETOTEXT(A2,0) | Microsoft's first documented row: a logical value in concise format | #NAME? | TRUEProvenanceMicrosoft publishes =VALUETOTEXT(A2, 0) = TRUE for A2 = TRUE. Format 0 is documented as "Concise format that is easy to read. The text returned will be the same as the text rendered in a cell that has general formatting applied." Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/valuetotext-function. FETCH NOTE FOR THIS BATCH: batch F recorded every /en-us/office/<name>-function-<guid> URL returning Microsoft's 'Sorry, the page you're looking for can't be found' body; today BOTH paths serve the article again -- the GUID form redirects to /en-us/excel/functions/<slug>-function -- and every page cited in this batch came back complete (217-223 KB) in one or two attempts, with no 87 KB stub responses. Nothing here is sourced from a search snippet or a mirror. |
Mismatch |
| =VALUETOTEXT(A3,0) | Microsoft's second documented row: a number in concise format | #NAME? | 1234.01234ProvenanceMicrosoft publishes =VALUETOTEXT(A3, 0) = 1234.01234. The published Strict row for the same cell is ALSO 1234.01234, because the page documents strict format as encapsulating "returned strings in quotes except for Booleans, Numbers and Errors" -- numbers are one of the three exceptions. |
Mismatch |
| =VALUETOTEXT(A4,0) | Microsoft's third documented row: text in concise format, which is NOT quoted | #NAME? | HelloProvenanceMicrosoft publishes =VALUETOTEXT(A4, 0) = Hello, with no quotation marks. This is the concise half of the pair that defines the format argument. |
Mismatch |
| =VALUETOTEXT(A4,1) | Microsoft's third documented row in strict format, where the same text IS quoted | #NAME? | "Hello"ProvenanceMicrosoft publishes =VALUETOTEXT(A4, 1) = "Hello" WITH the quotation marks, against the unquoted Hello from format 0 on the identical cell. THIS PAIR IS THE ONLY THING IN THE PUBLISHED TABLE THAT DISTINGUISHES THE TWO FORMATS: rows A2, A3, A5 and A7 (a Boolean, two numbers and an error) print identically under both formats, so an engine that ignored the format argument entirely would pass four of the six documented rows. The expected value here contains literal double-quote characters as part of the string. |
Mismatch |
| =VALUETOTEXT(A6,1) | Microsoft's fifth documented row in strict format, a second quoted string | #NAME? | "Seattle"ProvenanceMicrosoft publishes =VALUETOTEXT(A6, 1) = "Seattle". Asserted alongside the Hello pair so the quoting behaviour rests on two independent strings rather than one. |
Mismatch |
| =VALUETOTEXT(A4,2) | A format argument of 2, which the page excludes | #NAME? | #VALUE!ProvenanceThe Remarks publish: "If format is anything other than 0 or 1, VALUETOTEXT returns the #VALUE! error value." |
Mismatch |
| =VALUETOTEXT(A5,0) | Microsoft's error-value row, deliberately recorded without an assertion because the harness cannot distinguish the two possible outcomes | #NAME? | ProvenanceDELIBERATELY ASSERTS NOTHING, FOR A READ-BACK REASON RATHER THAN A DOCUMENTATION ONE. Microsoft publishes =VALUETOTEXT(A5, 0) = #VALUE! for a cell A5 holding the ERROR VALUE #VALUE!, i.e. the function is documented to return the error's TEXT, "#VALUE!", as a string. Two problems make that unassertable here. First, setup_cells can only place a literal, so A5 in this workbook holds the six-character STRING "#VALUE!" rather than a genuine error value, and a string round-trips through the concise format unchanged -- the right answer for the wrong reason. Second, and decisively, harness/corpus.py classifies a read-back value of "#VALUE!" as an ERROR (it is in KNOWN_ERROR_STRINGS), so a correct engine returning the text "#VALUE!" and a broken engine actually erroring are INDISTINGUISHABLE in the results file. Rather than assert a value the harness cannot verify, the case records what each engine returns and says why it is not scored. |
Error |
Docs & syntax
- Excel (desktop): official documentation