Compatibility
BINOMDIST
Matches all 6 recorded answers
Recorded: 6 workbook cells. How we measure this · See the Rust code
Local names in 40 languages
| Language | Name in Excel |
|---|---|
| Arabic | BINOMDIST |
| Bulgarian | BINOMDIST |
| Czech | BINOMDIST |
| Danish | BINOMIALFORDELING |
| German | BINOMDIST |
| Greek | BINOMDIST |
| English (Australia) | BINOMDIST |
| English (United Kingdom) | BINOMDIST |
| English (United States) | BINOMDIST |
| Spanish | DISTR.BINOM |
| Estonian | BINOMDIST |
| Finnish | BINOMIJAKAUMA |
| French | LOI.BINOMIALE |
| Hebrew | BINOMDIST |
| Croatian | BINOMDIST |
| Hungarian | BINOM.ELOSZLÁS |
| Indonesian | BINOMDIST |
| Italian | BINOMDIST |
| Japanese | BINOMDIST |
| Korean | BINOMDIST |
| Lithuanian | BINOMDIST |
| Latvian | BINOMDIST |
| Norwegian | BINOMDIST |
| Dutch | BINOMDIST |
| Polish | ROZKŁAD.DWUM |
| Portuguese (Brazil) | BINOMDIST |
| Portuguese (Portugal) | DISTRBINOM |
| Romanian | BINOMDIST |
| Russian | БИНОМРАСП |
| Slovak | BINOMDIST |
| Slovenian | BINOMDIST |
| Serbian (Latin) | BINOMDIST |
| Swedish | BINOMFÖRD |
| Thai | BINOMDIST |
| Turkish | BİNOMDAĞ işlevi |
| Ukrainian | BINOMDIST |
| Vietnamese | BINOMDIST |
| Chinese (Simplified) | BINOMDIST |
| Chinese (Hong Kong) | BINOMDIST |
| Chinese (Traditional) | BINOMDIST |
Names from Microsoft's support site.
What it does
BINOMDIST(number_s, trials, probability_s, cumulative)
BINOMDIST(number_s, trials, probability_s, cumulative) describes successes in a fixed number of independent trials with one success probability. FALSE returns exactly that many successes; TRUE returns at most that many. BINOMDIST is the compatibility name; BINOM.DIST makes the distribution role explicit.
Try it
=BINOMDIST(3,3,0.5,FALSE) is about 0.125. =BINOMDIST(3,3,0.5,TRUE) returns 1, since all possible outcomes have at most three successes.
Quirks
Counts are truncated toward zero. A probability outside zero to one, or an out-of-range success count, gives #NUM!; nonnumeric numeric arguments give #VALUE!. “At least k” uses a complement at k-1, not at k. The all-success mass and its cumulative endpoint follow different paths.
How to implement
After truncating successes k and trials n toward zero, validate 0<=k<=n and 0<=p<=1. The current recorded domain rejects n>=2147483647 before selecting endpoint shortcuts. At p=0 or p=1, handle the degenerate distribution explicitly; the recorded noncumulative p=1,k=0,n>0 case gives #NUM!, a compatibility exception to the mathematical zero.
For the all-success, noncumulative route k=n>0, 0<p<1:
- Obtain the stored measured public LN result for p, called
L. - Compute
t=R(n*L)with the stored-arithmetic recipe, rounding once to a 64-bit significand and then storing to binary64. - Pass the stored
tto the measured public EXP route and publish its result under the function’s finite/subnormal policy.
Worked n=3,p=0.5: L is about -0.6931471805599453, the stored product is about -2.0794415416798357, and this reconstruction’s exponential is 0.12500000000000003, near the mathematical probability 0.125. The stored intermediate values explain why the computation need not return the exactly representable mathematical result. A direct pow(p,n) has different intermediate stages and is not a substitute for this identified computation tree.
The all-success stored product is distinguished by 300 numeric discriminants and 256 controls in the cited code. Its scope does not cover the zero-success producer, interior masses or every separately recorded domain answer.
The later R31 source isolates additional interior-mass stages. These start from Loader’s published saddle-point form, then preserve separately measured arithmetic sites. Let D mean ordinary binary64 storage and E resident 64-bit-significand arithmetic; their portable definitions keep E distinct from R.
- For
0<k<n, setq=D(1-p). Obtain Stirling correction s and deviance d from the explicit Poisson helper recipes. - Form
c=R(s(n)-s(k)), then successivelyc=R(c-d(k,R(n*p))),c=R(c-s(n-k))andc=R(c-d(n-k,R(n*q))). Keep this subtraction order. The source records 13,000 controls across six(n,k)pairs for that exponent grid. - Form the ordered binary64 terms
[-LN(n)/2,LN(k)/2,LN(n-k)/2,0.9189385332046728]. Their mathematical effect suppliessqrt(n/(2*pi*k*(n-k)))without directly forming that ratio. - Initialize stored a and resident b from c. For each term, update
a=R(a-term)and separatelyb=E(b-term), retaining b across the whole list. Computelost=D(E(b-a)),factor=R(1+lost), and returnR(EXP(a)*factor).
BINOM uses one correction for the running resident difference. POISSON’s prefactor instead keeps one correction factor for each of its two subtractions. They are distinct reconstructions even though both compensate a stored exponent.
For k=3,n=10,p=0.25, the stated interior reconstruction gives 0.2502822875976563. Direct exact rational evaluation of 120*(1/4)^3*(3/4)^7 gives the representable mathematical value 0.25028228759765625. The first number is a worked reconstruction, rather than a new Excel reading or a statement that the candidate is correct on that input.
The current cumulative route sums masses forward with ordinary binary64 additions and caps the final sum at one; it has its own endpoint shortcuts. A stable recurrence or incomplete-beta CDF is another mathematical algorithm with a different rounding history. The source’s zero-success logarithm remains unidentified, the Stirling table and deviance retain exceptions, and the problem report still records unresolved distribution answers. These stages do not establish whole-function agreement; the separately pinned interactive calculator can also predate the later interior update.
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.
BINOMDIST · 4 lines · calc-func/src/catalogue/distributions.rs on GitHub71 binomdist "BINOMDIST" (4, 4) [V "number_s", V "trials", V "probability_s", V "cumulative"] |s, a, sv| {
let [n, t, p] = nums::<3>(s, a)?;
out(s, dd::binom_dist_kernel(n, t, p, flag(s, a, 3)?))
}
Kernels shared with other functions
numscatalogue/distributionsstirling_errorported/discrete_distdevianceported/discrete_distbinom_massported/discrete_distfiniteported/discrete_distbinom_dist_kernelported/discrete_distbinary_withported/excel_numericexcel_x87_addported/excel_numericexcel_x87_subported/excel_numericexcel_x87_mulported/excel_numericexcel_x87_divported/excel_numericmulported/excel_numeric/x87addported/excel_numeric/x87subported/excel_numeric/x87divported/excel_numeric/x87
Argument and result plumbing
No implementation has been published with a Handbook test suite for this function.
Version differences
No same-input comparison between named Excel builds is recorded for this function here. The documented behaviour below is not a measurement of every Excel release.
Alternatives
BINOM.INV finds a success-count quantile; BINOM.DIST.RANGE covers an interval of counts; HYPGEOM.DIST models sampling without replacement.
Named variants
No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents