Loading documentation…
Loading documentation…
This page lists the 52 functions of the math and trigonometry family. Taxonomy/source: Math and trigonometry functions. The formula function contract has every family, the engine builds, and the evaluation limits.
All functions
| Function (aliases) | Engine | Contract |
|---|---|---|
SUM | Default + full | |
ABS | Default + full | |
ROUND | Default + full | |
SQRT | Default + full | |
MOD | Default + full | |
POW | Default + full | |
FLOOR | Default + full | |
CEILING | Default + full | |
INT | Default + full | |
TRUNC | Default + full | |
SIGN | Default + full | |
PI | Default + full | |
RAND | Default + full | |
RANDBETWEEN | Default + full | |
SUMIF | Default + full | |
SUMIFS | Default + full | |
PRODUCT | Default + full | |
SUMPRODUCT | Default + full | |
POWER | Default + full | |
EXP | Default + full | |
LN | Default + full | |
LOG | Default + full | |
LOG10 | Default + full | |
ROUNDUP | Default + full | |
ROUNDDOWN | Default + full | |
MROUND | Default + full | |
EVEN | Default + full | |
ODD | Default + full | |
QUOTIENT | Default + full | |
GCD | Default + full | |
LCM | Default + full | |
SUBTOTAL | Default + full | |
AGGREGATE | Full only | |
CEILING.MATH | Full only | |
COMBIN | Full only | |
COMBINA | Full only | |
FACT | Full only | |
FACTDOUBLE | Full only | |
FLOOR.MATH | Full only | |
MDETERM | Full only | |
MINVERSE | Full only | |
MMULT | Full only | |
MULTINOMIAL | Full only | |
MUNIT | Full only | |
PERMUT | Full only | |
PERMUTATIONA | Full only | |
SERIESSUM | Full only | |
SQRTPI | Full only | |
SUMSQ | Full only | |
SUMX2MY2 | Full only | |
SUMX2PY2 | Full only | |
SUMXMY2 | Full only |
Argument order, required/default state, accepted shapes, repetition, and return shape come directly from the inventory.
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
value | no | none | scalar, range, array, reference | zero-or-more |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number | yes | none | scalar, reference | once |
digits | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number1 | yes | none | scalar, reference | once |
number2 | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number | yes | none | scalar, reference | once |
digits | no | 0 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
| none | — | — | — | — |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
bottom | yes | none | scalar, reference | once |
top | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
range | yes | none | range, array, reference | once |
criteria | yes | none | scalar, reference | once |
sumRange | no | range | range, array, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
sumRange | yes | none | range, array, reference | once |
rangeAndCriteria | yes | none | scalar, range, array, reference | paired |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
value | yes | none | scalar, range, array, reference | one-or-more |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number | yes | none | scalar, reference | once |
base | no | 10 | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
functionNumber | yes | none | scalar, reference | once |
reference | yes | none | range, array, reference | one-or-more |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
functionNumber | yes | none | scalar, reference | once |
options | yes | none | scalar, reference | once |
reference | yes | none | range, array, reference | one-or-more |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
number | yes | none | scalar, reference | once |
significance | no | 1 | scalar, reference | once |
mode | no | 0 | scalar, reference | once |
Return shape: array.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
array | yes | none | range, array, reference | once |
Return shape: array.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
array | yes | none | range, array, reference | once |
Return shape: array.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
array1 | yes | none | range, array, reference | once |
array2 | yes | none | range, array, reference | once |
Return shape: array.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
dimension | yes | none | scalar, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
x | yes | none | scalar, reference | once |
n | yes | none | scalar, reference | once |
m | yes | none | scalar, reference | once |
coefficients | yes | none | range, array, reference | once |
Return shape: scalar.
| Argument | Required | Default | Accepts | Repetition |
|---|---|---|---|---|
array1 | yes | none | range, array, reference | once |
array2 | yes | none | range, array, reference | once |
These values are normative for the listed Sheetwrite subset. function-defined and contextual are explicit limitations: consult the formula guides' function-specific sections rather than assuming another spreadsheet's edge behavior.
| Dimension | Contract |
|---|---|
| shape | scalar: accepted range: accepted array: accepted broadcast: none result: scalar |
| coercion | blank: ignored text: ignored-in-ranges boolean: ignored-in-ranges error: propagate |
| text | case: not-applicable wildcard: not-applicable |
| environment | locale: invariant dateSystem: not-applicable |
| numeric | tolerance: binary64 domain: function-defined iteration: kind: none maximum: none |
| calculation | dependencies: tracked lazy: eager spill: scalar fill: relative-reference-rewrite copy: relative-reference-rewrite structuralRewrite: ast-reference-rewrite |
| persistence | snapshot: formula-source history: formula-source collaboration: formula-source xlsxSource: rewrite-on-structural-edit |
| Dimension | Contract |
|---|---|
| shape | scalar: accepted range: contextual array: contextual broadcast: function-defined result: scalar |
| coercion | blank: zero text: number-if-parseable boolean: number error: propagate |
| text | case: not-applicable wildcard: not-applicable |
| environment | locale: invariant dateSystem: not-applicable |
| numeric | tolerance: binary64 domain: function-defined iteration: kind: none maximum: none |
| calculation | dependencies: tracked lazy: eager spill: scalar fill: relative-reference-rewrite copy: relative-reference-rewrite structuralRewrite: ast-reference-rewrite |
| persistence | snapshot: formula-source history: formula-source collaboration: formula-source xlsxSource: rewrite-on-structural-edit |
| Dimension | Contract |
|---|---|
| shape | scalar: accepted range: rejected array: rejected broadcast: none result: scalar |
| coercion | blank: zero text: number-if-parseable boolean: number error: propagate |
| text | case: not-applicable wildcard: not-applicable |
| environment | locale: invariant dateSystem: not-applicable |
| numeric | tolerance: function-defined domain: bounded iteration: kind: none maximum: none |
| calculation | dependencies: tracked lazy: eager spill: scalar fill: relative-reference-rewrite copy: relative-reference-rewrite structuralRewrite: ast-reference-rewrite |
| persistence | snapshot: formula-source history: formula-source collaboration: formula-source xlsxSource: rewrite-on-structural-edit |
| Dimension | Contract |
|---|---|
| shape | scalar: accepted range: accepted array: accepted broadcast: pairwise result: scalar |
| coercion | blank: function-defined text: function-defined boolean: function-defined error: propagate |
| text | case: insensitive wildcard: supported |
| environment | locale: invariant dateSystem: function-defined |
| numeric | tolerance: binary64 domain: function-defined iteration: kind: none maximum: none |
| calculation | dependencies: tracked lazy: eager spill: scalar fill: relative-reference-rewrite copy: relative-reference-rewrite structuralRewrite: ast-reference-rewrite |
| persistence | snapshot: formula-source history: formula-source collaboration: formula-source xlsxSource: rewrite-on-structural-edit |
| Dimension | Contract |
|---|---|
| shape | scalar: accepted range: accepted array: accepted broadcast: none result: contextual |
| coercion | blank: function-defined text: function-defined boolean: function-defined error: function-defined |
| text | case: not-applicable wildcard: not-applicable |
| environment | locale: invariant dateSystem: not-applicable |
| numeric | tolerance: binary64 domain: function-defined iteration: kind: none maximum: none |
| calculation | dependencies: tracked lazy: eager spill: contextual fill: relative-reference-rewrite copy: relative-reference-rewrite structuralRewrite: ast-reference-rewrite |
| persistence | snapshot: formula-source history: formula-source collaboration: formula-source xlsxSource: rewrite-on-structural-edit |
| Dialect | Status |
|---|---|
| Microsoft Excel | documented |
| Google Sheets | unverified |
| OpenFormula | unverified |
Limitations: Google Sheets and OpenFormula results require producer evidence before compatibility is claimed.
| Dialect | Status |
|---|---|
| Microsoft Excel | documented |
| Google Sheets | unverified |
| OpenFormula | unverified |
Limitations: Available only in the optional @sheetwrite/formulas analysis build; default @sheetwrite/wasm returns #NAME?. Hidden rows are not part of the engine model. AGGREGATE row visibility options therefore have no effect. Matrix functions use engine resource limits.
| Layer | Status and source/evidence |
|---|---|
| Parser | implementedpackages/wasm/src/calc.rs |
| Evaluator | implementedpackages/wasm/src/eval/mod.rspackages/wasm/src/eval/functions.rs |
| Formula assist | implementedpackages/core/src/formula-assist.ts |
| Evidence | source-linkedpackages/wasm/src/tests.rspackages/core/test/formula-assist.test.ts |
| Layer | Status and source/evidence |
|---|---|
| Parser | implementedpackages/wasm/src/calc.rs |
| Evaluator | declared |
| Formula assist | implementedpackages/core/src/formula-assist.ts |
| Evidence | source-linkedpackages/core/src/formula-assist.ts |
| Layer | Status and source/evidence |
|---|---|
| Parser | implementedpackages/wasm/src/calc.rs |
| Evaluator | implementedpackages/wasm/src/eval/random.rspackages/wasm/src/eval/dependency.rs |
| Formula assist | implementedpackages/core/src/formula-assist.ts |
| Evidence | source-linkedpackages/wasm/src/tests.rspackages/core/test/formula-assist.test.ts |
| Layer | Status and source/evidence |
|---|---|
| Parser | implementedpackages/wasm/src/calc.rs |
| Evaluator | implementedpackages/wasm/src/eval/analysis/math.rspackages/wasm/src/eval/analysis/aggregate.rspackages/wasm/src/eval/analysis/matrices.rs |
| Formula assist | implementedpackages/core/src/formula-assist.ts |
| Evidence | source-linkedscripts/formula-contract.test.ts |