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.
Statistical functions
Matches all 1,288 recorded answers
Recorded: 1,222 in the answer bank and 66 workbook cells. How we measure this · See the Rust code
| Language | Name in Excel |
|---|---|
| Arabic | AVERAGE |
| Bulgarian | AVERAGE |
| Czech | PRŮMĚR |
| Danish | MIDDEL |
| German | MITTELWERT |
| Greek | AVERAGE |
| English (Australia) | AVERAGE |
| English (United Kingdom) | AVERAGE |
| English (United States) | AVERAGE |
| Spanish | PROMEDIO |
| Estonian | AVERAGE |
| Finnish | KESKIARVO |
| French | MOYENNE |
| Hebrew | AVERAGE |
| Croatian | AVERAGE |
| Hungarian | ÁTLAG |
| Indonesian | AVERAGE |
| Italian | MEDIA |
| Japanese | AVERAGE |
| Korean | AVERAGE |
| Lithuanian | AVERAGE |
| Latvian | AVERAGE |
| Norwegian | GJENNOMSNITT |
| Dutch | GEMIDDELDE |
| Polish | ŚREDNIA |
| Portuguese (Brazil) | MÉDIA |
| Portuguese (Portugal) | MÉDIA |
| Romanian | AVERAGE |
| Russian | СРЗНАЧ |
| Slovak | AVERAGE |
| Slovenian | AVERAGE |
| Serbian (Latin) | AVERAGE |
| Swedish | MEDEL |
| Thai | AVERAGE |
| Turkish | ORTALAMA |
| Ukrainian | AVERAGE |
| Vietnamese | Hàm AVERAGE |
| Chinese (Simplified) | AVERAGE |
| Chinese (Hong Kong) | AVERAGE |
| Chinese (Traditional) | AVERAGE |
Names from Microsoft's support site.
AVERAGE(number1, [number2], ...)
AVERAGE(number1, [number2], …) returns the arithmetic mean of the admitted values:
AVERAGE = (1/n) · Σ_{i=1..n} x_i
where (n) is the count of admitted values. That formula is the whole of the mathematics, and it is also, deceptively, the least interesting part of the function. Two other things carry the function's real content:
AVERAGE lives
here.The mean is the minimiser of (\sum_i (x_i - c)^2) over (c) — that is its defining
variational property, and it is why the mean, not the median, is the centre that VAR, DEVSQ
and STDEV deviate from. Range: the mean of finite values lies between the minimum and the
maximum, a property that plain floating-point summation does not guarantee to preserve
under all orderings and roundings.
| Argument | Meaning | Default |
|---|---|---|
number1 | The first value, range or array to average. Required. | — |
number2 … | Further values, ranges or arrays. Optional, repeating. | — |
Microsoft's AVERAGE page documents the range half plainly: "If a range or cell reference
argument contains text, logical values, or empty cells, those values are ignored; however,
cells with the value zero are included." It documents the direct half as an exclusion:
"Logical values and text representations of numbers that you type directly into the list of
arguments are not counted."
| Value | Written directly at the call site | Arriving through a range or array |
|---|---|---|
| Number | counted | counted (including zeros) |
Numeric-looking text ("2") | converted and counted — Microsoft's page says not counted | skipped (documented) |
Non-numeric text ("x") | #VALUE! (documented) | skipped (documented) |
Logical TRUE / FALSE | counted as 1 / 0 — Microsoft's page says not counted | skipped (documented) |
| Empty cell | — | skipped (documented) |
| Omitted slot | skipped | — |
| Error value | propagates (documented) | propagates (documented) |
Skipped means skipped from both the numerator and the denominator: it does not enter as a
zero. That is the difference between AVERAGE and AVERAGEA, and it is why
the two can differ by a large factor on the same range.
The consequence people meet in practice: a column with three numbers and two text cells
averages over three values under AVERAGE and over five under AVERAGEA. Neither is wrong;
they answer different questions, and the function name is the only place the choice is
recorded.
See Coercion and lifting for the general coercion machinery, and Missing versus Empty for why an omitted slot and an empty cell are different kinds that happen to behave alike here.
Returns Number.
lift_broadcast_profile: surface_native); as a
reduction it consumes array arguments rather than broadcasting over them.| Error | Condition |
|---|---|
#DIV/0! | No value was admitted |
#VALUE! | A directly-supplied text argument could not be converted to a number |
| propagated | An error value among the admitted data becomes the result |
Averaging is the canonical worked example in floating-point error analysis, and it deserves the treatment even though the formula fits on one line.
Summation error. For a plain left-to-right accumulation of (n) doubles, the standard bound (Higham, Accuracy and Stability of Numerical Algorithms, chapter 4) is
|ŝ − s| ≤ γ_{n−1} · Σ|x_i|, γ_k = k·u / (1 − k·u)
with (u = 2^{-53}). The bound is proportional to (\sum |x_i|), not to (|s|), so the relative error is governed by the condition number (\sum|x_i| / |\sum x_i|). Data of mixed sign that nearly cancels — returns around zero, residuals, differences — can lose every significant digit while the same data with a constant added stays accurate. This is the mechanism behind essentially every reported spreadsheet averaging surprise.
What better implementations do. Pairwise (cascade) summation replaces (n) in the bound by
(\log_2 n) at no meaningful cost, which is why it is the default in most numerical libraries.
Compensated summation — Kahan's algorithm, and Neumaier's variant that also handles the case
where the running sum is smaller than the addend — reduces the bound to roughly (2u\sum|x_i|)
independent of (n). Exact-accumulation schemes (Shewchuk's expansions, Ogita–Rump–Oishi
Sum2/SumK, or a long accumulator) give a correctly rounded sum. Any of these changes the
last bits of the answer, which is precisely why an implementation targeting a particular
engine's output cannot simply adopt the best one.
The division. Dividing an accurately summed total by (n) adds at most one rounding, so the division is never the problem. Running-mean formulations — (m_{k} = m_{k-1} + (x_k - m_{k-1})/k), the Welford update — trade the overflow hazard for (n) divisions and a different error profile; they are the right choice when the sum would overflow, and a different answer when it would not.
Ordering. Floating-point addition is commutative but not associative. Sorting by increasing
magnitude before summing is a classical heuristic and improves the typical case for
same-sign data; it changes the answer. So does any parallel or vectorised reduction, which is
why a reduction that must agree bit-by-bit across machines has to fix its association order —
the concern the Handbook's portable-reproducible flavour exists to address; see
About implementation options.
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.
AVERAGE · 1 lines · calc-func/src/catalogue/aggregate.rs on GitHubaggregate(AVERAGE, "AVERAGE", NUMBERS, average)
average · 8 lines · calc-func/src/catalogue/aggregate.rs on GitHub/// AVERAGE: the numbers added from 0 and divided by how many there are; #DIV/0! when there is
/// none.
fn average(
arguments: &[CalcValue],
services: &mut EvalServices<'_>,
) -> Result<CalcValue, FunctionFault> {
mean(AVERAGE, Held::Numbers, arguments, services)
}
aggregate catalogue/aggregatemean catalogue/aggregateholds_held_arrays catalogue/aggregateread_held_references catalogue/aggregatenumber_of catalogue/aggregateeach_number catalogue/aggregateread_values catalogue/aggregatereader catalogue/aggregateread_reference catalogue/aggregateoperand coerceNo implementation has been published with a Handbook test suite for this function.
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 build | Platform and CPU | Captured inputs |
|---|---|---|
| 20430 | Windows, 64-bit, CPU not recorded | 1,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.
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.
MEDIAN, MODE.SNGL, TRIMMEAN, GEOMEAN, HARMEAN — the other centres. TRIMMEAN
is the one to reach for when the objection to AVERAGE is outliers.SUBTOTAL(1, …) and AGGREGATE(1, …) — AVERAGE with hidden-row and error-skipping
options, and the usual right answer when a filtered table is involved.No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents