Statistical functions

VARPA

Matches all 1,247 recorded answers

Recorded: 1,212 in the answer bank and 35 workbook cells. How we measure this · See the Rust code

Local names in 40 languages
LanguageName in Excel
ArabicVARPA
BulgarianVARPA
CzechVARPA
DanishVARIANSPV
GermanVARPA
GreekVARPA
English (Australia)VARPA
English (United Kingdom)VARPA
English (United States)VARPA
SpanishVARPA
EstonianVARPA
FinnishVARPA
FrenchVARPA
HebrewVARPA
CroatianVARPA
HungarianVARPA
IndonesianVARPA
ItalianVARPA
JapaneseVARPA
KoreanVARPA
LithuanianVARPA
LatvianVARPA
NorwegianVARPA
DutchVARPA
PolishWARIANCJA.POPUL.A
Portuguese (Brazil)VARPA
Portuguese (Portugal)VARPA
RomanianVARPA
RussianДИСПРА
SlovakVARPA
SlovenianVARPA
Serbian (Latin)VARPA
SwedishVARPA
ThaiVARPA
TurkishVARSA işlevi
UkrainianVARPA
VietnameseVARPA
Chinese (Simplified)VARPA
Chinese (Hong Kong)VARPA
Chinese (Traditional)VARPA

Names from Microsoft's support site.

What it does

VARPA(value1, [value2], ...)

VARPA(value1, [value2], ...) measures population variance. It measures squared distance from the mean, so its units are the square of the input units. The divisor is n: use this when the observations constitute the whole population. This A-family function also admits logical values and text under its inclusion rules.

Try it

Input cells (optional)

Example: {"B2": 3, "B3": 4}. A1 holds the formula. Other cells need values before a formula can read them.

Enter a formula, then calculate.

Runs locally in your browser with OneCalc. Its answer may differ from Excel. Use English function names and commas between arguments.

Put these four entries in B2:B5:

CellValue
B24
B38
B4logical TRUE
B5text missing

=VARPA(B2:B5) returns 9.6875. The admitted values are 4,8,1,0: their mean is 3.25, and their squared deviations total 38.75. Divide by all four observations.

Compare =VARPA({4,8,TRUE,"missing"}): the current array rule skips the logical and text elements, leaving only 4,8, and returns 4. The range and array forms therefore use different counts.

Quirks

Keep the argument's origin until collection is complete:

OriginLogical valueTextEmpty cell
Direct scalarTRUE is 1, FALSE is 0Numeric text converts; other text gives #VALUE!Ordinary scalar coercion
Reference cell1 or 0Counted as 0, including numeric-looking textSkipped
Array elementSkippedSkippedSkipped

These are the current implementation rules. Retained Excel build 20527 controls distinguish the array route; the source records, for example, VARPA({1,TRUE,3})=1 and STDEVPA({1,"a",3})=1. They do not establish every collection edge on every build. Microsoft’s remarks describe broad inclusion, then also say array/reference text is ignored; that wording does not settle the observed range/array distinction.

No admitted values gives #DIV/0!. One admitted value has zero population variance. Worksheet errors propagate. Changing the collection rule changes the count as well as the total. A centered mathematical formula alone does not reproduce the observed numerical path.

The variance family uses raw moments with stored steps, and two tests switch it to a centered sum

With RN(v) meaning v rounded to 64 bits on the x87 unit and then stored to binary64, S the running RN sum of the n values and Q the running RN sum of RN(x*x), the sample variance is RN(RN(Q - RN(RN(S*S)/n))/(n-1)) and the population variance RN(RN(RN(n*Q) - RN(S*S))/RN(n*n)). Excel then uses a centered sum instead, adding RN(d*d) with d = RN(x - mean) and dividing by n-1 or n, when either of two stored tests holds: RN(RN(RN(S*S)/n)/Q) > 0.99, or RN(variance*1000) <= |RN(S/n)|. The STDEV functions are the root of this, rounded to 64 bits and then stored. So the answer depends on which path a call takes: the first two VAR.S calls below differ by a few input steps in two arguments, the first passes the 0.99 test and is correctly rounded, and the second takes the raw moments and lands 76 units high. The next pair shows the size test: scaling the inputs by 4 leaves the first path.

Explanation (inferred): These tests were located with scalar arguments in separate cells; that the same edges hold for ranges and arrays is inferred, and their readings have not been taken. RN(variance*1000) <= |mean| is not separated from the rearrangement variance <= |mean|/1000. That a raw moment which overflows also takes the centered sum is inferred from recorded answers that stay finite.

FormulaExcelMathematical value
VAR.S(0.8769085090206681, 1, 1.123091490979332)
Excel 16.0 build 20527, Windows; bitness and CPU not recorded in this reading
Inputs and reference value

Number supplied through a cell.

number1: 0.8769085090206681
0x3fec0fa26efa7e14

number2: 1
0x3ff0000000000000

number3: 1.123091490979332
0x3ff1f82ec882c0f6

0.01515151515151495
0x3f8f07c1f07c1e94
—
VAR.S(0.8769085090206679, 1, 1.1230914909793321)
Excel 16.0 build 20527, Windows; bitness and CPU not recorded in this reading
Inputs and reference value

Number supplied through a cell.

number1: 0.8769085090206679
0x3fec0fa26efa7e12

number2: 1
0x3ff0000000000000

number3: 1.1230914909793321
0x3ff1f82ec882c0f7

Exact rational variance of the binary64 inputs, correctly rounded.

0.015151515151515138
0x3f8f07c1f07c1f00
0.015151515151515006
0x3f8f07c1f07c1eb4
VAR.S(3.244042371786199e-10, 0.00034050419142641947)
Excel 16.0 build 20527, Windows; bitness and CPU not recorded in this reading
Inputs and reference value

Number supplied through a cell.

number1: 3.244042371786199e-10
0x3df64afacd3a935a

number2: 0.00034050419142641947
0x3f3650b65dc7a1d6

5.797144172853e-08
0x3e6f1f88c6bbc51a
—
VAR.S(1.2976169487144796e-09, 0.0013620167657056779)
Excel 16.0 build 20527, Windows; bitness and CPU not recorded in this reading
Inputs and reference value

Number supplied through a cell.

number1: 1.2976169487144796e-09
0x3e164afacd3a935a

number2: 0.0013620167657056779
0x3f5650b65dc7a1d6

Exact rational variance of the binary64 inputs, correctly rounded.

9.275430676564799e-07
0x3eaf1f88c6bbc519
9.2754306765648e-07
0x3eaf1f88c6bbc51a
=VAR.S({157,376.82,189.207,12.38,12.473,483,306.24,324.1852,482.235,78})
Excel 16.0.20527.20088 Current Channel, Windows 64-bit (NT 10.0.26200), x86-64, AMD Ryzen 7 4800H, en-ZA
Inputs and reference value

Typed formula.

Exact rational variance of the binary64 inputs, correctly rounded.

31907.480453381795
0x40df28debfbf8a84
31907.480453381777
0x40df28debfbf8a7f
STDEV.S(0, 1, 1.031052478719249)
Excel 16.0 build 20527, Windows; bitness and CPU not recorded in this reading
Inputs and reference value

Number supplied through a cell.

number1: 0
0x0000000000000000

number2: 1
0x3ff0000000000000

number3: 1.031052478719249
0x3ff07f30e248f14c

0.5865198874587454
0x3fe2c4c55ae2d85e
—

Inputs, build details and evidence

How to implement

Apply the collection rules above, then use the stored variance recipe. This function uses the population branch, with final divisor n and no square root.

For the reference example, n=4, S=13, Q=81 and T=R(S*S)=169. The population numerator is R(n*Q)-T=324-169=155; the denominator is R(n*n)=16, giving 9.6875. Neither centered-pass guard fires: the cancellation ratio is 42.25/81, below 0.99, and the variance is too large for the mean-size test. These integer and quarter-valued intermediate steps are exact; the division by three and any square root still use the prescribed stores.

The same two guards can redirect this call to the centered pass. For 1000,1001,1002, that pass sums 1+0+1=2 and divides by 3. The exact scalar guard edges are measured; their transfer to references and arrays remains open. Nonfinite raw-moment fallback is inferred. No Handbook vector suite is published for this function.

Rust code

Show the CalcFunc source of this function

Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.

VARPA · 3 lines · calc-func/src/catalogue/statistics.rs on GitHub
34 varpa "VARPA" (1, 255) [R "value1", R "value2"] |s, a, sv| {
    variance(s, a, sv, Held::Values, VarianceDivisor::Population, false)
}

Kernels shared with other functions

Argument and result plumbing

No implementation has been published with a Handbook test suite for this function.

Version differences

The recorded environments below distinguish a reading from a same-input comparison. Counts describe captured inputs in each environment; overlapping captures and comparisons are not totals of unique worksheet calls.

Excel 16.0 buildPlatform and CPUCaptured inputs
20430Windows, 64-bit, CPU not recorded1,212

The record contains no same-input comparison between these environments. Reading different inputs on different builds does not establish either a version change or cross-build agreement.

Recorded environments and comparison details.

Retained controls from the indexed captures:

Build and recorded CPUCaptured call or argumentsExcel result
20430, CPU not recordedVARPA(1,2)0.25 (0x3fd0000000000000)

These are earlier recorded answers, not new Excel runs or an additional cross-build comparison. The function JSON retains each source locator, exact argument bits where available, and input-route status. Call notation does not imply that captured binary64 values were entered as decimal formula literals.

Excel 16.0 build 20430

Windows, 64-bit, CPU not recorded

1,212 captured inputs are indexed for this environment. Capture dates: 2026-09-29 to 2026-09-29. This is a reading count, not a comparison with another build. Retained control VARPA(1,2) returned 0.25 (0x3fd0000000000000). The capture specifies exact-double bulk Value2 cell input.

Observed formulas and results
  • VARPA(1,2) → 0.25
    0x3fd0000000000000 (cell-value2)

Alternatives

Use VARA for the sample version with the same broad collection policy. VAR.P skips referenced logical values and text. STDEVPA takes the population standard deviation after the same collection.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents