Math and trigonometry functions

CEILING.MATH

Refuses 12 of 1,486 recorded calls; the rest match

Of 1,486 recorded answers (1,362 in the answer bank and 124 workbook cells), 12 do not match: 12 are refused. How we measure this · See the Rust code

Local names in 40 languages
LanguageName in Excel
ArabicCEILING.MATH
BulgarianCEILING.MATH
CzechCEILING.MATH
DanishLOFT.MAT
GermanCEILING.MATH
GreekCEILING.MATH
English (Australia)CEILING.MATH
English (United Kingdom)CEILING.MATH
English (United States)CEILING.MATH
SpanishMULTIPLO.SUPERIOR.MAT
EstonianCEILING.MATH
FinnishPYÖRISTÄ.KERR.YLÖS.MATEMAATTINEN
FrenchPLAFOND.MATH
HebrewCEILING.MATH
CroatianCEILING.MATH
HungarianPLAFON.MAT
IndonesianCEILING.MATH
ItalianCEILING.MATH
JapaneseCEILING.MATH
KoreanCEILING.MATH
LithuanianCEILING.MATH
LatvianCEILING.MATH
NorwegianAVRUND.GJELDENDE.MULTIPLUM.OPP.MATEMATISK
DutchAFRONDEN.BOVEN.WISK
PolishZAOKR.W.GÓRĘ.MATEMATYCZNE
Portuguese (Brazil)CEILING.MATH
Portuguese (Portugal)ARRED.EXCESSO.MAT
RomanianCEILING.MATH
RussianОКРВВЕРХ.МАТ
SlovakCEILING.MATH
SlovenianCEILING.MATH
Serbian (Latin)CEILING.MATH
SwedishRUNDA.UPP.MATEMATISKT
ThaiCEILING.MATH
TurkishTAVANAYUVARLA.MATEMATİK
UkrainianCEILING.MATH
VietnameseCEILING.MATH
Chinese (Simplified)CEILING.MATH
Chinese (Hong Kong)CEILING.MATH
Chinese (Traditional)CEILING.MATH

Names from Microsoft's support site.

What it does

CEILING.MATH(number, [significance], [mode])

CEILING.MATH(number,[significance],[mode]) rounds to a multiple of the step’s absolute value, which defaults to one. By default, negative numbers move toward zero and positive numbers away from zero. A nonzero mode reverses the negative-input direction. Significance supplies a multiple, rather than a number of decimal places.

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.

=CEILING.MATH(-10.3,3) returns -9; =CEILING.MATH(-10.3,3,1) returns -12. The nonzero mode changes negative inputs to rounding away from zero. Both answers are multiples of three.

Quirks

The significance sign is ignored. Mode affects only negative numbers, and the current helper tests zero versus any nonzero mode without truncating the flag. Its zero-significance route returns zero.

The opened Microsoft page’s argument summary calls significance a count of digits, while its remarks and worked examples use a multiple. Use the multiple interpretation shown here. The current wrapper defaults significance to one when the call ends before it; an explicitly empty slot is read as zero instead.

The shared current model rounds the quotient to fifteen significant decimal digits before choosing a count. Recorded scope for the legacy FLOOR rule does not by itself establish every modern variant’s quotient edge or last bit.

How to implement

  1. Apply omitted defaults: significance one and mode zero. Coerce numeric arguments, retain the distinction between an omitted tail and an explicitly empty slot, and set s=abs(significance). Return zero if s is zero.
  2. For nonnegative input, obtain the current fifteen-digit quotient reading of number/s, then take its ceiling.
  3. For negative input, read the positive quotient abs(number)/s. Take its floor when mode is zero, or its ceiling when mode is nonzero; restore the negative sign.
  4. The ported modern helper multiplies that count by s with ordinary binary64 arithmetic and normalizes zero. This is distinct from assuming every family spelling uses the native legacy wrapper’s final stored-x87 site. Apply the surrounding number publication rule.

For -10.3 and step three, the positive quotient reads near 3.43333333333333. Default mode chooses three and returns -9; nonzero mode chooses four and returns -12. The current fractional mode 0.5 follows the nonzero branch too.

The quotient helper and branch recipe describe the current implementation. FN-FLOOR-002 explicitly leaves transfer of the isolated legacy quotient rule to modern spellings open. Exact edge behaviour and a whole-domain modern-family identification are not established by the shared code alone.

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.

CEILING.MATH · 3 lines · calc-func/src/catalogue/rounding_more.rs on GitHub
1 ceiling_math "CEILING.MATH" (1, 3) [V "number", V "significance", V "mode"] |s, a, sv| {
    three(s, a, cf::ceiling_math_kernel)
}

Kernels shared with other functions

Argument and result plumbing

  • num catalogue/kit
  • opt catalogue/kit
  • out catalogue/kit

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,362

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.

Excel 16.0 build 20430

Windows, 64-bit, CPU not recorded

1,362 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.

Alternatives

For the ordinary input -10.3 on a grid of magnitude three:

Function/callResult
CEILING(-10.3,3)-9
CEILING(-10.3,-3)-12
CEILING.PRECISE(-10.3,-3)-9
CEILING.MATH(-10.3,3,1)-12
FLOOR.PRECISE(-10.3,-3)-12

CEILING.PRECISE and ISO.CEILING have the fixed upward convention. FLOOR.MATH selects the other directional default. MROUND chooses a nearest multiple.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents