← All functions

UNARY_PERCENT

Unsupported (not recognized)

Category: Operator · Last tested 2026-09-01

Real compatibility results for the UNARY_PERCENT function: executed in Excel for the web, Google Sheets and LibreOffice Calc, measured against Google’s published documentation. Excel does not document UNARY_PERCENT, so this page makes no claim about Excel. Syntax and links to that documentation are below.

Support matrix

EngineDocumentedLive-testedVerdict
Excel (desktop)No n/a (not an Excel function) n/a
Excel for the web— Yes (recalc, 2026-09-01) Unsupported (not recognized)
Google SheetsYes Yes (Drive import, 2026-09-01) Supported, behaves as documented
LibreOffice CalcNo Yes (25.8.7.3, 2026-09-01) Unsupported (not recognized)

LibreOffice version history

We executed the same test cases under each LibreOffice release to show exactly when UNARY_PERCENT’s support changed — not documentation claims, real results.

LibreOffice versionVerdictTested
24.2.0.3 Unsupported (not recognized) 2026-09-01
24.8.7.2 Unsupported (not recognized) 2026-09-01
25.2.0.3 Unsupported (not recognized) 2026-09-01
25.8.7.3 Unsupported (not recognized) 2026-09-01

Why isn't UNARY_PERCENT working in LibreOffice?

LibreOffice Calc does not implement UNARY_PERCENT 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. 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.

Discovered quirks

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.

FormulaDescriptionResultExpectedVerdict
=UNARY_PERCENT(100) The only published result anywhere in this group, stated inline in the description #NAME? 1
Provenance

GOOGLE'S OWN PUBLISHED RESULT, and the single exception to this group's rule that nothing is published: UNARY_PERCENT's one-line description reads, verbatim, "Returns a value interpreted as a percentage; that is, `UNARY_PERCENT(100)` equals `1`." It is not in a Formula/Result table -- it is inside the sentence -- but it is a formula and its result, printed in the article body, so it is quoted here as published rather than derived. The same sentence is repeated verbatim in the See Also blocks of the TO_PERCENT and UPLUS pages. BATCH PROVENANCE (batch I, group 1 -- the last eight Google-documented functions in the corpus, closing the group A set sheets-lo-only-plan.md opened). This function has x == false in docs/data/compat.json: Microsoft does not document it at all, so this corpus makes NO claim about it in that engine and nothing here is measured against that vendor's documentation. The authority is Google's own support.google.com function page, cited by full URL and by the date it was read (2026-08-31) -- Google publishes no version number for these pages, so a bare URL dates nothing. WHAT GOOGLE PRINTS ON THESE EIGHT PAGES IS LESS THAN IT LOOKS, AND EVERY NOTE SAYS SO. Each page carries a 'Sample Usage' block of FORMULAS WITH NO RESULTS and an 'Examples' section that is a live embedded spreadsheet rather than article text, so ACROSS ALL EIGHT PAGES THERE IS NOT ONE PUBLISHED FORMULA/RESULT PAIR IN THE BODY. Every expected value in this group is therefore DERIVED from the page's own stated semantics and names the sentence it came from; the one exception is UNARY_PERCENT, whose one-line description states its result inline. No value was taken from a search snippet, a blog or a mirror. LIBREOFFICE: probed before execution on all four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3) in five storage spellings -- plain, _xlfn., COM.MICROSOFT., ORG.OPENOFFICE. and _xlfn.ORG.OPENOFFICE. -- and #NAME? under every one of them on every build, so the expected values below describe Google Sheets and the LibreOffice column records absence. (A separate check confirms the absence is real rather than a name-mapping artefact: round-tripping these eight names through LibreOffice's own formula parser and its .xlsx export writes them back lower-cased -- 'to_date', 'uminus' -- which is what LibreOffice does with an identifier it does not recognise as a function at all.) Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Mismatch
=ROUND(UNARY_PERCENT(93),10) The page's own Sample Usage input #NAME? 0.93
Provenance

DERIVED from the published 100 -> 1 relation applied to the page's other Sample Usage formula, UNARY_PERCENT(93), which is printed with no result: a value interpreted as a percentage is one hundredth of its face value, so 93 gives 0.93. Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Mismatch
=ROUND(UNARY_PERCENT(50)-50%,12) 'Interpreted as a percentage' checked against the engine's own percent literal #NAME? 0
Provenance

A structural assertion with no derived constant, from "Returns a value interpreted as a percentage": whatever the engine means by the literal 50%, UNARY_PERCENT(50) must mean the same thing. This is the case that would catch an implementation that divided by 100 only for display. Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Mismatch
=ROUND(UNARY_PERCENT(UNARY_PERCENT(10000)),10) Two applications of the documented rule, avoiding the hedged 'roughly' claim #NAME? 1
Provenance

A structural assertion. THE PAGE'S OWN INVERSE CLAIM IS DELIBERATELY NOT ASSERTED: the Notes bullet says "UNARY_PERCENT is roughly equivalent to the inverse of TO_PERCENT", and the word ROUGHLY is doing real work -- TO_PERCENT changes a format and leaves the value alone, while UNARY_PERCENT changes the value, so the two are not inverses at the value layer at all and a case asserting that they are would be asserting something the page hedges. What is asserted instead is the unhedged rule applied twice: 10000 -> 100 -> 1. Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Mismatch

Google Sheets (executed 2026-09-01 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.

FormulaDescriptionResultExpectedVerdict
=UNARY_PERCENT(100) The only published result anywhere in this group, stated inline in the description 1 1
Provenance

GOOGLE'S OWN PUBLISHED RESULT, and the single exception to this group's rule that nothing is published: UNARY_PERCENT's one-line description reads, verbatim, "Returns a value interpreted as a percentage; that is, `UNARY_PERCENT(100)` equals `1`." It is not in a Formula/Result table -- it is inside the sentence -- but it is a formula and its result, printed in the article body, so it is quoted here as published rather than derived. The same sentence is repeated verbatim in the See Also blocks of the TO_PERCENT and UPLUS pages. BATCH PROVENANCE (batch I, group 1 -- the last eight Google-documented functions in the corpus, closing the group A set sheets-lo-only-plan.md opened). This function has x == false in docs/data/compat.json: Microsoft does not document it at all, so this corpus makes NO claim about it in that engine and nothing here is measured against that vendor's documentation. The authority is Google's own support.google.com function page, cited by full URL and by the date it was read (2026-08-31) -- Google publishes no version number for these pages, so a bare URL dates nothing. WHAT GOOGLE PRINTS ON THESE EIGHT PAGES IS LESS THAN IT LOOKS, AND EVERY NOTE SAYS SO. Each page carries a 'Sample Usage' block of FORMULAS WITH NO RESULTS and an 'Examples' section that is a live embedded spreadsheet rather than article text, so ACROSS ALL EIGHT PAGES THERE IS NOT ONE PUBLISHED FORMULA/RESULT PAIR IN THE BODY. Every expected value in this group is therefore DERIVED from the page's own stated semantics and names the sentence it came from; the one exception is UNARY_PERCENT, whose one-line description states its result inline. No value was taken from a search snippet, a blog or a mirror. LIBREOFFICE: probed before execution on all four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3) in five storage spellings -- plain, _xlfn., COM.MICROSOFT., ORG.OPENOFFICE. and _xlfn.ORG.OPENOFFICE. -- and #NAME? under every one of them on every build, so the expected values below describe Google Sheets and the LibreOffice column records absence. (A separate check confirms the absence is real rather than a name-mapping artefact: round-tripping these eight names through LibreOffice's own formula parser and its .xlsx export writes them back lower-cased -- 'to_date', 'uminus' -- which is what LibreOffice does with an identifier it does not recognise as a function at all.) Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Matched
=ROUND(UNARY_PERCENT(93),10) The page's own Sample Usage input 0.93 0.93
Provenance

DERIVED from the published 100 -> 1 relation applied to the page's other Sample Usage formula, UNARY_PERCENT(93), which is printed with no result: a value interpreted as a percentage is one hundredth of its face value, so 93 gives 0.93. Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Matched
=ROUND(UNARY_PERCENT(50)-50%,12) 'Interpreted as a percentage' checked against the engine's own percent literal 0 0
Provenance

A structural assertion with no derived constant, from "Returns a value interpreted as a percentage": whatever the engine means by the literal 50%, UNARY_PERCENT(50) must mean the same thing. This is the case that would catch an implementation that divided by 100 only for display. Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Matched
=ROUND(UNARY_PERCENT(UNARY_PERCENT(10000)),10) Two applications of the documented rule, avoiding the hedged 'roughly' claim 1 1
Provenance

A structural assertion. THE PAGE'S OWN INVERSE CLAIM IS DELIBERATELY NOT ASSERTED: the Notes bullet says "UNARY_PERCENT is roughly equivalent to the inverse of TO_PERCENT", and the word ROUGHLY is doing real work -- TO_PERCENT changes a format and leaves the value alone, while UNARY_PERCENT changes the value, so the two are not inverses at the value layer at all and a case asserting that they are would be asserting something the page hedges. What is asserted instead is the unhedged rule applied twice: 10000 -> 100 -> 1. Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Matched

LibreOffice Calc 25.8.7.3 (tested 2026-09-01)

FormulaDescriptionResultExpectedVerdict
=UNARY_PERCENT(100) The only published result anywhere in this group, stated inline in the description #NAME? 1
Provenance

GOOGLE'S OWN PUBLISHED RESULT, and the single exception to this group's rule that nothing is published: UNARY_PERCENT's one-line description reads, verbatim, "Returns a value interpreted as a percentage; that is, `UNARY_PERCENT(100)` equals `1`." It is not in a Formula/Result table -- it is inside the sentence -- but it is a formula and its result, printed in the article body, so it is quoted here as published rather than derived. The same sentence is repeated verbatim in the See Also blocks of the TO_PERCENT and UPLUS pages. BATCH PROVENANCE (batch I, group 1 -- the last eight Google-documented functions in the corpus, closing the group A set sheets-lo-only-plan.md opened). This function has x == false in docs/data/compat.json: Microsoft does not document it at all, so this corpus makes NO claim about it in that engine and nothing here is measured against that vendor's documentation. The authority is Google's own support.google.com function page, cited by full URL and by the date it was read (2026-08-31) -- Google publishes no version number for these pages, so a bare URL dates nothing. WHAT GOOGLE PRINTS ON THESE EIGHT PAGES IS LESS THAN IT LOOKS, AND EVERY NOTE SAYS SO. Each page carries a 'Sample Usage' block of FORMULAS WITH NO RESULTS and an 'Examples' section that is a live embedded spreadsheet rather than article text, so ACROSS ALL EIGHT PAGES THERE IS NOT ONE PUBLISHED FORMULA/RESULT PAIR IN THE BODY. Every expected value in this group is therefore DERIVED from the page's own stated semantics and names the sentence it came from; the one exception is UNARY_PERCENT, whose one-line description states its result inline. No value was taken from a search snippet, a blog or a mirror. LIBREOFFICE: probed before execution on all four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3) in five storage spellings -- plain, _xlfn., COM.MICROSOFT., ORG.OPENOFFICE. and _xlfn.ORG.OPENOFFICE. -- and #NAME? under every one of them on every build, so the expected values below describe Google Sheets and the LibreOffice column records absence. (A separate check confirms the absence is real rather than a name-mapping artefact: round-tripping these eight names through LibreOffice's own formula parser and its .xlsx export writes them back lower-cased -- 'to_date', 'uminus' -- which is what LibreOffice does with an identifier it does not recognise as a function at all.) Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Mismatch
=ROUND(UNARY_PERCENT(93),10) The page's own Sample Usage input #NAME? 0.93
Provenance

DERIVED from the published 100 -> 1 relation applied to the page's other Sample Usage formula, UNARY_PERCENT(93), which is printed with no result: a value interpreted as a percentage is one hundredth of its face value, so 93 gives 0.93. Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Mismatch
=ROUND(UNARY_PERCENT(50)-50%,12) 'Interpreted as a percentage' checked against the engine's own percent literal #NAME? 0
Provenance

A structural assertion with no derived constant, from "Returns a value interpreted as a percentage": whatever the engine means by the literal 50%, UNARY_PERCENT(50) must mean the same thing. This is the case that would catch an implementation that divided by 100 only for display. Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Mismatch
=ROUND(UNARY_PERCENT(UNARY_PERCENT(10000)),10) Two applications of the documented rule, avoiding the hedged 'roughly' claim #NAME? 1
Provenance

A structural assertion. THE PAGE'S OWN INVERSE CLAIM IS DELIBERATELY NOT ASSERTED: the Notes bullet says "UNARY_PERCENT is roughly equivalent to the inverse of TO_PERCENT", and the word ROUGHLY is doing real work -- TO_PERCENT changes a format and leaves the value alone, while UNARY_PERCENT changes the value, so the two are not inverses at the value layer at all and a case asserting that they are would be asserting something the page hedges. What is asserted instead is the unhedged rule applied twice: 10000 -> 100 -> 1. Google's UNARY_PERCENT page, read live on 2026-08-31 at https://support.google.com/docs/answer/3093982.

Mismatch

Docs & syntax

Where UNARY_PERCENT behaves differently