VARPA
Supported, behaves as documentedCategory: Statistical · Last tested 2026-09-01
Real compatibility results for the VARPA 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 | Yes | Yes (Drive import, 2026-08-31) | Supported, behaves as documented |
| LibreOffice Calc | Yes | Yes (25.8.7.3, 2026-08-31) | Supported, behaves as documented |
LibreOffice version history
We executed the same test cases under each LibreOffice release to show exactly when VARPA’s support changed — not documentation claims, real results.
| LibreOffice version | Verdict | Tested |
|---|---|---|
| 24.2.0.3 | Supported, behaves as documented | 2026-08-31 |
| 24.8.7.2 | Supported, behaves as documented | 2026-08-31 |
| 25.2.0.3 | Supported, behaves as documented | 2026-08-31 |
| 25.8.7.3 | Supported, behaves as documented | 2026-08-31 |
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(VARPA(A1:A10),2) | Microsoft's documented breaking-strength example: population variance of ten numeric readings | 678.84 | 678.84ProvenanceMicrosoft publishes this example's result as 678.84 (the same page shows VAR over the same data as 754.27). Independently derived: mean = 13286/10 = 1328.6, sum of squared deviations = 6788.4, divided by n = 10 (population denominator) = 678.84 |
Matched |
| =ROUND(VARPA(A1:A4),4) | DIVERGENCE PROBE: a text cell is counted as the value 0 and included in n | 1.25 | 1.25ProvenanceMicrosoft's VARPA page states 'Arguments that contain text or FALSE evaluate as 0 (zero)' (and, contradictorily, that range text is ignored -- resolved the same way as AVERAGEA's worked example resolves it). Under the counts-as-0 reading data become 1, 2, 3, 0 with mean 1.5; squared deviations 0.25+0.25+2.25+2.25 = 5, divided by n = 4 gives 1.25. An engine using VAR.P semantics on this range would return 0.6667 instead |
Matched |
| =ROUND(VARPA(A1:A3),4) | TRUE counts as 1 and FALSE as 0 inside a range | 0.2222 | 0.2222ProvenanceMicrosoft documents 'Arguments that contain TRUE evaluate as 1; arguments that contain text or FALSE evaluate as 0' for VARPA: data 1, 0, 0 with mean 1/3; squared deviations (2/3)^2 + (1/3)^2 + (1/3)^2 = 2/3, divided by n = 3 gives 0.22222... -> 0.2222 |
Matched |
| =VARPA(A1:A1) | Population variance of a single data point is defined (0), unlike sample variance | 0 | 0ProvenanceThe population denominator is n, not n-1, so one data point gives 0/1 = 0 rather than a division-by-zero error |
Matched |
| =VARPA(A1:A3) | With no data points at all there is nothing to divide by | #DIV/0! | #DIV/0!ProvenanceDERIVED, not quoted: Microsoft's VARPA page documents NO error condition at all. Empty cells are documented as ignored, so an all-empty range leaves n = 0 and the population denominator is zero; #DIV/0! is the consistent result |
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(VARPA(A1:A10),2) | Microsoft's documented breaking-strength example: population variance of ten numeric readings | 678.84 | 678.84ProvenanceMicrosoft publishes this example's result as 678.84 (the same page shows VAR over the same data as 754.27). Independently derived: mean = 13286/10 = 1328.6, sum of squared deviations = 6788.4, divided by n = 10 (population denominator) = 678.84 |
Matched |
| =ROUND(VARPA(A1:A4),4) | DIVERGENCE PROBE: a text cell is counted as the value 0 and included in n | 1.25 | 1.25ProvenanceMicrosoft's VARPA page states 'Arguments that contain text or FALSE evaluate as 0 (zero)' (and, contradictorily, that range text is ignored -- resolved the same way as AVERAGEA's worked example resolves it). Under the counts-as-0 reading data become 1, 2, 3, 0 with mean 1.5; squared deviations 0.25+0.25+2.25+2.25 = 5, divided by n = 4 gives 1.25. An engine using VAR.P semantics on this range would return 0.6667 instead |
Matched |
| =ROUND(VARPA(A1:A3),4) | TRUE counts as 1 and FALSE as 0 inside a range | 0.2222 | 0.2222ProvenanceMicrosoft documents 'Arguments that contain TRUE evaluate as 1; arguments that contain text or FALSE evaluate as 0' for VARPA: data 1, 0, 0 with mean 1/3; squared deviations (2/3)^2 + (1/3)^2 + (1/3)^2 = 2/3, divided by n = 3 gives 0.22222... -> 0.2222 |
Matched |
| =VARPA(A1:A1) | Population variance of a single data point is defined (0), unlike sample variance | 0 | 0ProvenanceThe population denominator is n, not n-1, so one data point gives 0/1 = 0 rather than a division-by-zero error |
Matched |
| =VARPA(A1:A3) | With no data points at all there is nothing to divide by | #DIV/0! | #DIV/0!ProvenanceDERIVED, not quoted: Microsoft's VARPA page documents NO error condition at all. Empty cells are documented as ignored, so an all-empty range leaves n = 0 and the population denominator is zero; #DIV/0! is the consistent result |
Matched |
LibreOffice Calc 25.8.7.3 (tested 2026-08-31)
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =ROUND(VARPA(A1:A10),2) | Microsoft's documented breaking-strength example: population variance of ten numeric readings | 678.84 | 678.84ProvenanceMicrosoft publishes this example's result as 678.84 (the same page shows VAR over the same data as 754.27). Independently derived: mean = 13286/10 = 1328.6, sum of squared deviations = 6788.4, divided by n = 10 (population denominator) = 678.84 |
Matched |
| =ROUND(VARPA(A1:A4),4) | DIVERGENCE PROBE: a text cell is counted as the value 0 and included in n | 1.25 | 1.25ProvenanceMicrosoft's VARPA page states 'Arguments that contain text or FALSE evaluate as 0 (zero)' (and, contradictorily, that range text is ignored -- resolved the same way as AVERAGEA's worked example resolves it). Under the counts-as-0 reading data become 1, 2, 3, 0 with mean 1.5; squared deviations 0.25+0.25+2.25+2.25 = 5, divided by n = 4 gives 1.25. An engine using VAR.P semantics on this range would return 0.6667 instead |
Matched |
| =ROUND(VARPA(A1:A3),4) | TRUE counts as 1 and FALSE as 0 inside a range | 0.2222 | 0.2222ProvenanceMicrosoft documents 'Arguments that contain TRUE evaluate as 1; arguments that contain text or FALSE evaluate as 0' for VARPA: data 1, 0, 0 with mean 1/3; squared deviations (2/3)^2 + (1/3)^2 + (1/3)^2 = 2/3, divided by n = 3 gives 0.22222... -> 0.2222 |
Matched |
| =VARPA(A1:A1) | Population variance of a single data point is defined (0), unlike sample variance | 0 | 0ProvenanceThe population denominator is n, not n-1, so one data point gives 0/1 = 0 rather than a division-by-zero error |
Matched |
| =VARPA(A1:A3) | With no data points at all there is nothing to divide by | #DIV/0! | #DIV/0!ProvenanceDERIVED, not quoted: Microsoft's VARPA page documents NO error condition at all. Empty cells are documented as ignored, so an all-empty range leaves n = 0 and the population denominator is zero; #DIV/0! is the consistent result |
Matched |
Docs & syntax
- Excel (desktop): official documentation
- Google Sheets: official documentation
- LibreOffice Calc: official documentation
Where VARPA behaves differently
- MAXA, MINA, AVERAGEA, VARPA vs MAX, MIN, AVERAGE, VAR.P
The A-variants count text as 0 and TRUE as 1; the plain ones ignore them. Executed: LibreOffice implements all four A-variants faithfully, but its VAR.P returns 8.2222 on {4, 8, TRUE} where Microsoft documents 4 and Google Sheets returns 4 - a silent wrong number in all four builds tested. - When the documentation is wrong: 29 vendor doc defects found by execution
Independent derivation across 586 executed functions found 29 places where a vendor's own page is contradicted by its own inputs, its own table, or the live engine: 23 Microsoft, 5 Google, 1 LibreOffice. Includes T.INV.2T's doubly-wrong Remark, DISC's stale figure, ISDATE's page against the live engine, and RAWSUBTRACT's help against LibreOffice's own result.