Excel 16.0 build 20430
Windows, 64-bit, CPU not recorded
1,211 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.
Our 10 featured functions
Matches all 1,364 recorded answers
Recorded: 1,211 in the answer bank and 153 workbook cells. How we measure this · See the Rust code
| Language | Name in Excel |
|---|---|
| Arabic | SUM |
| Bulgarian | SUM |
| Czech | SUMA |
| Danish | SUM |
| German | SUMME |
| Greek | SUM |
| English (Australia) | SUM |
| English (United Kingdom) | SUM |
| English (United States) | SUM |
| Spanish | SUMA |
| Estonian | SUM |
| Finnish | SUMMA |
| French | SOMME |
| Hebrew | SUM |
| Croatian | SUM |
| Hungarian | SZUM |
| Indonesian | SUM |
| Italian | SOMMA |
| Japanese | SUM |
| Korean | SUM |
| Lithuanian | SUM |
| Latvian | SUM |
| Norwegian | SUMMER |
| Dutch | SOM |
| Polish | SUMA |
| Portuguese (Brazil) | SOMA |
| Portuguese (Portugal) | SOMA |
| Romanian | SUM |
| Russian | СУММ |
| Slovak | SUM |
| Slovenian | SUM |
| Serbian (Latin) | SUM |
| Swedish | SUMMA |
| Thai | SUM |
| Turkish | TOPLA |
| Ukrainian | SUM |
| Vietnamese | Hàm SUM |
| Chinese (Simplified) | SUM |
| Chinese (Hong Kong) | SUM |
| Chinese (Traditional) | SUM |
Names from Microsoft's support site.
SUM(number1, [number2], ...)
SUM(number1, [number2], ...) adds individual numbers and numbers held in ranges or arrays. A range keeps a total tied to the cells that contain the data; mixing a range with further scalar arguments adds all of them.
=SUM(7,-2,5) returns 10. With B2:B4 containing 7, the text pending, and 5, =SUM(B2:B4) returns 12 because the referenced text is skipped.
Direct constants use a different admission rule: =SUM(1,TRUE,"2") adds one, one and two to give four. Putting those three values in an array, =SUM({1,TRUE,"2"}), admits only the numeric one. A cell's numeric value and its text spelling are different inputs.
Referenced text, logical values and blanks are skipped; numeric zero participates. Direct logicals and numeric text convert, while unconvertible direct text causes #VALUE!.
Recorded error controls give direct-argument failures priority over errors held inside ranges or arrays. For example, SUM({1,#REF!},"a") gives #VALUE!. Among held errors, reading order matters. A later worksheet error can also determine the result after the numeric accumulator has overflowed.
Changing the order of large positive and negative terms can change a floating-point sum. Compensation or sorting is a different numerical recipe, even when it is more accurate mathematically.
total=0. For each admitted number x, assign total=R(total+x), where R rounds to a 64-bit significand and then stores to binary64. Keep one store per addition. Publish the final number under the worksheet finite/subnormal policy.For 7,-2,5, the accumulator is 0 → 7 → 5 → 10. A direct scalar that converts successfully must still be added at its original traversal position; the initial validation pass is not an instruction to sum scalars ahead of ranges. The current implementation also reads arrays boxed inside a GROUPBY result through to their elements. Keep that extension distinct from ordinary rectangular-array collection. The cited source and captures establish these specific routes; no published Handbook suite is supplied here.
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.
SUM · 1 lines · calc-func/src/catalogue/aggregate.rs on GitHubaggregate(SUM, "SUM", NUMBERS, sum)
sum · 30 lines · calc-func/src/catalogue/aggregate.rs on GitHub/// SUM: the numbers added from 0, in the reading order. The error is the first among the direct
/// arguments, in argument order, a coercion's #VALUE! included, before any error that a reference
/// or an array holds; among those, the first in the reading order. A total that overflows is
/// #NUM!, even when a later number would bring it back, and an error read after the overflow is
/// the result. The error_order rows of cfunc-m1.2's oracle workbook measure each of these orders
/// (with #N/A in B1, #DIV/0! in A2 and numbers in A1 and B2): =SUM(A1:B2,#NULL!) is #NULL!,
/// =SUM(B1,"a") and =SUM({1,#REF!},"a") are #VALUE!, =SUM({1,#REF!},#N/A) and
/// =SUM(#N/A,{1,#REF!}) are #N/A, =SUM({1,#REF!},A1:B2) is #REF! and =SUM(A1:B2,{1,#REF!}) #N/A,
/// and =SUM(9.99999999999999E+307,9.99999999999999E+307,B1) is #N/A.
fn sum(
arguments: &[CalcValue],
services: &mut EvalServices<'_>,
) -> Result<CalcValue, FunctionFault> {
let site = Site::new(SUM, services);
let mut total = 0.0;
let read_through = read_through_held_arrays(arguments);
let arguments: &[CalcValue] = read_through.as_deref().unwrap_or(arguments);
let held = match read_held_references(&site, services, arguments, HeldReference::FirstCell) {
Ok(held) => held,
Err(exit) => return Site::finish(Err(exit)),
};
let arguments: &[CalcValue] = held.as_deref().unwrap_or(arguments);
let read = direct_first(&site, arguments).and_then(|()| {
each_number(&site, arguments, services, Held::Numbers, &mut |n| {
total = site.add(total, n)?;
Ok(())
})
});
Site::finish(read.and_then(|()| site.number(total)))
}
aggregate catalogue/aggregatedirect_first catalogue/aggregateholds_held_arrays catalogue/aggregateread_through_held_arrays catalogue/aggregateflatten 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,211 |
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,211 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.
Use SUMIFS for conditions, SUMPRODUCT for weighted products, or SUBTOTAL when filtering and hidden-row rules matter.
No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents