PERCENTOF
Unsupported (not recognized)Category: Math and trigonometry · Last tested 2026-09-01
Real compatibility results for the PERCENTOF 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) | Supported, behaves as documented |
| 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 PERCENTOF’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 PERCENTOF working in LibreOffice?
LibreOffice Calc does not implement PERCENTOF 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 PERCENTOF working in Google Sheets?
Google Sheets does not implement PERCENTOF: 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
-
=ROUND(PERCENTOF(A2:A3,A2:A5),12) on
Google Sheets returned
#NAME?, but the documented/expected
result is 0.3.
Provenance
Microsoft's page states the definition outright: "PERCENTOF is logically equivalent to =SUM(data_subset)/SUM(data_all)" and "The PERCENTOF function sums the values in the subset and divides it by all the values." DERIVATION in exact arithmetic: (1 + 2)/(1 + 2 + 3 + 4) = 3/10 = 0.3 exactly. The data is chosen so the answer is a terminating decimal, so no rounding question arises; the ROUND wrapper only pins the comparison. Microsoft's page was re-read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/percentof-function (the /en-us/office/<name>-function-<guid> path was serving Microsoft's 'Sorry, the page you're looking for can't be found' body throughout this batch, and the working path returns an 87 KB stub about half the time, so pages were fetched with retries until the payload exceeded 150 KB). EXECUTED RESULT -- GENUINELY ABSENT: LibreOffice returns #NAME? on all four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3), which agree case for case, under all FOUR spellings probed before the run -- the plain name PERCENTOF, the storage form _xlfn.PERCENTOF, the add-in form COM.MICROSOFT.PERCENTOF and ORG.OPENOFFICE.PERCENTOF. No LibreOffice release tested here has this function under any name, so the gap is real and not a prefix artefact of the kind that batch E's ISO.CEILING episode was.; MISMATCH vs expected: expected 0.3, got '#NAME?'
-
=ROUND(PERCENTOF(A2:A3,A2:A5)-SUM(A2:A3)/SUM(A2:A5),12) on
Google Sheets returned
#NAME?, but the documented/expected
result is 0.
Provenance
Microsoft's own equivalence claim made checkable: the difference between PERCENTOF and the SUM(subset)/SUM(all) it is "logically equivalent to" must be exactly zero. This needs no derived constant, and it catches an implementation that, say, averages instead of summing, or that divides by the count.; MISMATCH vs expected: expected 0, got '#NAME?'
-
=ROUND(PERCENTOF(A2:A5,A2:A5),12) on
Google Sheets returned
#NAME?, but the documented/expected
result is 1.
Provenance
When the subset IS the set, the documented definition gives SUM(x)/SUM(x) = 1 exactly, for any data. Structural rather than derived, and it pins the argument order: an engine that divided all-by-subset would also return 1 here, which is why the 0.3 case above is asserted as well.; MISMATCH vs expected: expected 1, got '#NAME?'
-
=ROUND(PERCENTOF(A2,A2:A5),12) on
Google Sheets returned
#NAME?, but the documented/expected
result is 0.1.
Provenance
1/10 = 0.1 exactly. A single cell is a legitimate data_subset -- Microsoft's argument table asks only for "The values that in the data subset" (the page's own wording, printed with that grammatical slip) -- so this case checks that a scalar reference is accepted where a range is expected.; MISMATCH vs expected: expected 0.1, got '#NAME?'
-
=ROUND(PERCENTOF(A2:A3,A2:A5),12) on
LibreOffice Calc returned
#NAME?, but the documented/expected
result is 0.3.
Provenance
Microsoft's page states the definition outright: "PERCENTOF is logically equivalent to =SUM(data_subset)/SUM(data_all)" and "The PERCENTOF function sums the values in the subset and divides it by all the values." DERIVATION in exact arithmetic: (1 + 2)/(1 + 2 + 3 + 4) = 3/10 = 0.3 exactly. The data is chosen so the answer is a terminating decimal, so no rounding question arises; the ROUND wrapper only pins the comparison. Microsoft's page was re-read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/percentof-function (the /en-us/office/<name>-function-<guid> path was serving Microsoft's 'Sorry, the page you're looking for can't be found' body throughout this batch, and the working path returns an 87 KB stub about half the time, so pages were fetched with retries until the payload exceeded 150 KB). EXECUTED RESULT -- GENUINELY ABSENT: LibreOffice returns #NAME? on all four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3), which agree case for case, under all FOUR spellings probed before the run -- the plain name PERCENTOF, the storage form _xlfn.PERCENTOF, the add-in form COM.MICROSOFT.PERCENTOF and ORG.OPENOFFICE.PERCENTOF. No LibreOffice release tested here has this function under any name, so the gap is real and not a prefix artefact of the kind that batch E's ISO.CEILING episode was.; MISMATCH vs expected: expected 0.3, got '#NAME?'
-
=ROUND(PERCENTOF(A2:A3,A2:A5)-SUM(A2:A3)/SUM(A2:A5),12) on
LibreOffice Calc returned
#NAME?, but the documented/expected
result is 0.
Provenance
Microsoft's own equivalence claim made checkable: the difference between PERCENTOF and the SUM(subset)/SUM(all) it is "logically equivalent to" must be exactly zero. This needs no derived constant, and it catches an implementation that, say, averages instead of summing, or that divides by the count.; MISMATCH vs expected: expected 0, got '#NAME?'
-
=ROUND(PERCENTOF(A2:A5,A2:A5),12) on
LibreOffice Calc returned
#NAME?, but the documented/expected
result is 1.
Provenance
When the subset IS the set, the documented definition gives SUM(x)/SUM(x) = 1 exactly, for any data. Structural rather than derived, and it pins the argument order: an engine that divided all-by-subset would also return 1 here, which is why the 0.3 case above is asserted as well.; MISMATCH vs expected: expected 1, got '#NAME?'
-
=ROUND(PERCENTOF(A2,A2:A5),12) on
LibreOffice Calc returned
#NAME?, but the documented/expected
result is 0.1.
Provenance
1/10 = 0.1 exactly. A single cell is a legitimate data_subset -- Microsoft's argument table asks only for "The values that in the data subset" (the page's own wording, printed with that grammatical slip) -- so this case checks that a scalar reference is accepted where a range is expected.; MISMATCH vs expected: expected 0.1, 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 |
|---|---|---|---|---|
| =ROUND(PERCENTOF(A2:A3,A2:A5),12) | The share the first two values make up of all four | 0.3 | 0.3ProvenanceMicrosoft's page states the definition outright: "PERCENTOF is logically equivalent to =SUM(data_subset)/SUM(data_all)" and "The PERCENTOF function sums the values in the subset and divides it by all the values." DERIVATION in exact arithmetic: (1 + 2)/(1 + 2 + 3 + 4) = 3/10 = 0.3 exactly. The data is chosen so the answer is a terminating decimal, so no rounding question arises; the ROUND wrapper only pins the comparison. Microsoft's page was re-read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/percentof-function (the /en-us/office/<name>-function-<guid> path was serving Microsoft's 'Sorry, the page you're looking for can't be found' body throughout this batch, and the working path returns an 87 KB stub about half the time, so pages were fetched with retries until the payload exceeded 150 KB). EXECUTED RESULT -- GENUINELY ABSENT: LibreOffice returns #NAME? on all four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3), which agree case for case, under all FOUR spellings probed before the run -- the plain name PERCENTOF, the storage form _xlfn.PERCENTOF, the add-in form COM.MICROSOFT.PERCENTOF and ORG.OPENOFFICE.PERCENTOF. No LibreOffice release tested here has this function under any name, so the gap is real and not a prefix artefact of the kind that batch E's ISO.CEILING episode was. |
Matched |
| =ROUND(PERCENTOF(A2:A3,A2:A5)-SUM(A2:A3)/SUM(A2:A5),12) | The documented equivalence to SUM/SUM, checked inside the engine | 0 | 0ProvenanceMicrosoft's own equivalence claim made checkable: the difference between PERCENTOF and the SUM(subset)/SUM(all) it is "logically equivalent to" must be exactly zero. This needs no derived constant, and it catches an implementation that, say, averages instead of summing, or that divides by the count. |
Matched |
| =ROUND(PERCENTOF(A2:A5,A2:A5),12) | A subset equal to the whole set | 1 | 1ProvenanceWhen the subset IS the set, the documented definition gives SUM(x)/SUM(x) = 1 exactly, for any data. Structural rather than derived, and it pins the argument order: an engine that divided all-by-subset would also return 1 here, which is why the 0.3 case above is asserted as well. |
Matched |
| =ROUND(PERCENTOF(A2,A2:A5),12) | A single-cell subset | 0.1 | 0.1Provenance1/10 = 0.1 exactly. A single cell is a legitimate data_subset -- Microsoft's argument table asks only for "The values that in the data subset" (the page's own wording, printed with that grammatical slip) -- so this case checks that a scalar reference is accepted where a range is expected. |
Matched |
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 |
|---|---|---|---|---|
| =ROUND(PERCENTOF(A2:A3,A2:A5),12) | The share the first two values make up of all four | #NAME? | 0.3ProvenanceMicrosoft's page states the definition outright: "PERCENTOF is logically equivalent to =SUM(data_subset)/SUM(data_all)" and "The PERCENTOF function sums the values in the subset and divides it by all the values." DERIVATION in exact arithmetic: (1 + 2)/(1 + 2 + 3 + 4) = 3/10 = 0.3 exactly. The data is chosen so the answer is a terminating decimal, so no rounding question arises; the ROUND wrapper only pins the comparison. Microsoft's page was re-read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/percentof-function (the /en-us/office/<name>-function-<guid> path was serving Microsoft's 'Sorry, the page you're looking for can't be found' body throughout this batch, and the working path returns an 87 KB stub about half the time, so pages were fetched with retries until the payload exceeded 150 KB). EXECUTED RESULT -- GENUINELY ABSENT: LibreOffice returns #NAME? on all four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3), which agree case for case, under all FOUR spellings probed before the run -- the plain name PERCENTOF, the storage form _xlfn.PERCENTOF, the add-in form COM.MICROSOFT.PERCENTOF and ORG.OPENOFFICE.PERCENTOF. No LibreOffice release tested here has this function under any name, so the gap is real and not a prefix artefact of the kind that batch E's ISO.CEILING episode was. |
Mismatch |
| =ROUND(PERCENTOF(A2:A3,A2:A5)-SUM(A2:A3)/SUM(A2:A5),12) | The documented equivalence to SUM/SUM, checked inside the engine | #NAME? | 0ProvenanceMicrosoft's own equivalence claim made checkable: the difference between PERCENTOF and the SUM(subset)/SUM(all) it is "logically equivalent to" must be exactly zero. This needs no derived constant, and it catches an implementation that, say, averages instead of summing, or that divides by the count. |
Mismatch |
| =ROUND(PERCENTOF(A2:A5,A2:A5),12) | A subset equal to the whole set | #NAME? | 1ProvenanceWhen the subset IS the set, the documented definition gives SUM(x)/SUM(x) = 1 exactly, for any data. Structural rather than derived, and it pins the argument order: an engine that divided all-by-subset would also return 1 here, which is why the 0.3 case above is asserted as well. |
Mismatch |
| =ROUND(PERCENTOF(A2,A2:A5),12) | A single-cell subset | #NAME? | 0.1Provenance1/10 = 0.1 exactly. A single cell is a legitimate data_subset -- Microsoft's argument table asks only for "The values that in the data subset" (the page's own wording, printed with that grammatical slip) -- so this case checks that a scalar reference is accepted where a range is expected. |
Mismatch |
LibreOffice Calc 25.8.7.3 (tested 2026-08-31)
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =ROUND(PERCENTOF(A2:A3,A2:A5),12) | The share the first two values make up of all four | #NAME? | 0.3ProvenanceMicrosoft's page states the definition outright: "PERCENTOF is logically equivalent to =SUM(data_subset)/SUM(data_all)" and "The PERCENTOF function sums the values in the subset and divides it by all the values." DERIVATION in exact arithmetic: (1 + 2)/(1 + 2 + 3 + 4) = 3/10 = 0.3 exactly. The data is chosen so the answer is a terminating decimal, so no rounding question arises; the ROUND wrapper only pins the comparison. Microsoft's page was re-read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/percentof-function (the /en-us/office/<name>-function-<guid> path was serving Microsoft's 'Sorry, the page you're looking for can't be found' body throughout this batch, and the working path returns an 87 KB stub about half the time, so pages were fetched with retries until the payload exceeded 150 KB). EXECUTED RESULT -- GENUINELY ABSENT: LibreOffice returns #NAME? on all four pinned builds (24.2.0.3, 24.8.7.2, 25.2.0.3, 25.8.7.3), which agree case for case, under all FOUR spellings probed before the run -- the plain name PERCENTOF, the storage form _xlfn.PERCENTOF, the add-in form COM.MICROSOFT.PERCENTOF and ORG.OPENOFFICE.PERCENTOF. No LibreOffice release tested here has this function under any name, so the gap is real and not a prefix artefact of the kind that batch E's ISO.CEILING episode was. |
Mismatch |
| =ROUND(PERCENTOF(A2:A3,A2:A5)-SUM(A2:A3)/SUM(A2:A5),12) | The documented equivalence to SUM/SUM, checked inside the engine | #NAME? | 0ProvenanceMicrosoft's own equivalence claim made checkable: the difference between PERCENTOF and the SUM(subset)/SUM(all) it is "logically equivalent to" must be exactly zero. This needs no derived constant, and it catches an implementation that, say, averages instead of summing, or that divides by the count. |
Mismatch |
| =ROUND(PERCENTOF(A2:A5,A2:A5),12) | A subset equal to the whole set | #NAME? | 1ProvenanceWhen the subset IS the set, the documented definition gives SUM(x)/SUM(x) = 1 exactly, for any data. Structural rather than derived, and it pins the argument order: an engine that divided all-by-subset would also return 1 here, which is why the 0.3 case above is asserted as well. |
Mismatch |
| =ROUND(PERCENTOF(A2,A2:A5),12) | A single-cell subset | #NAME? | 0.1Provenance1/10 = 0.1 exactly. A single cell is a legitimate data_subset -- Microsoft's argument table asks only for "The values that in the data subset" (the page's own wording, printed with that grammatical slip) -- so this case checks that a scalar reference is accepted where a range is expected. |
Mismatch |
Docs & syntax
- Excel (desktop): official documentation