Close: 2 of 31,489 recorded answers differ in the last bits, worst 2 ULP
Everything else matches (31,483 in the answer bank and 6 workbook cells). Last-bit means a finite number within 16 ULP of Excel's. How we measure this · See the Rust code
Local names in 40 languages
Language
Name in Excel
Arabic
WEIBULL.DIST
Bulgarian
WEIBULL.DIST
Czech
WEIBULL.DIST
Danish
WEIBULL.FORDELING
German
WEIBULL.DIST
Greek
WEIBULL.DIST
English (Australia)
WEIBULL.DIST
English (United Kingdom)
WEIBULL.DIST
English (United States)
WEIBULL.DIST
Spanish
DISTR.WEIBULL
Estonian
WEIBULL.DIST
Finnish
WEIBULL.JAKAUMA
French
LOI.WEIBULL.N
Hebrew
WEIBULL.DIST
Croatian
WEIBULL.DIST
Hungarian
WEIBULL.ELOSZLÁS
Indonesian
WEIBULL.DIST
Italian
WEIBULL.DIST
Japanese
WEIBULL.DIST
Korean
WEIBULL.DIST
Lithuanian
WEIBULL.DIST
Latvian
WEIBULL.DIST
Norwegian
WEIBULL.DIST
Dutch
WEIBULL.VERD
Polish
ROZKŁ.WEIBULL
Portuguese (Brazil)
WEIBULL.DIST
Portuguese (Portugal)
DIST.WEIBULL
Romanian
WEIBULL.DIST
Russian
ВЕЙБУЛЛ.РАСП
Slovak
WEIBULL.DIST
Slovenian
WEIBULL.DIST
Serbian (Latin)
WEIBULL.DIST
Swedish
WEIBULL.FÖRD
Thai
WEIBULL.DIST
Turkish
WEIBULL.DAĞ
Ukrainian
WEIBULL.DIST
Vietnamese
WEIBULL.DIST
Chinese (Simplified)
WEIBULL.DIST
Chinese (Hong Kong)
WEIBULL.DIST
Chinese (Traditional)
WEIBULL.DIST
Names from Microsoft's support site.
What it does
WEIBULL.DIST(x, alpha, beta, cumulative)
WEIBULL.DIST(x, alpha, beta, cumulative) evaluates the two-parameter Weibull distribution with
shape α and scale β — the cumulative distribution function when cumulative is TRUE, the
probability density when it is FALSE.
Microsoft states both forms on the function's page. Writing them out:
for x ≥ 0, α > 0, β > 0. F rises strictly from 0 at x = 0 to 1 as x → ∞; f is
non-negative and integrates to 1 over [0, ∞).
The single structural fact that organizes everything else is the hazard rate:
h(x) = f(x) / (1 − F(x)) = (α/β) · (x/β)^(α−1)
a pure power of x. That is what the Weibull is: the distribution whose instantaneous failure
rate is a power law. The shape parameter chooses which regime:
α
Hazard
Interpretation
α < 1
decreasing
Infant mortality — early failures dominate
α = 1
constant
Memoryless; the exponential distribution with mean β
α = 2
linearly increasing
The Rayleigh distribution, with σ = β/sqrt 2
α > 1
increasing
Wear-out
Microsoft documents the α = 1 case explicitly: WEIBULL.DIST returns the exponential
distribution there.
Other facts worth having on the page:
Moments.E[X^k] = β^k · Γ(1 + k/α), so the mean is β·Γ(1 + 1/α) and the variance is
β²·[Γ(1 + 2/α) − Γ(1 + 1/α)²]. Every moment exists for every α > 0 — the Weibull's tail is
stretched-exponential, not power-law, which is exactly the contrast with the t-distribution.
Quantile.F inverts in closed form: x = β · (−ln(1 − p))^(1/α). This is elementary
and exactly computable, which matters below, because Excel publishes no WEIBULL.INV
surface — the inverse must be written out by the caller.
Scale is a pure scaling.F(x; α, β) = F(x/β; α, 1), so β never affects shape. The whole
family is one function of the reduced variable u = x/β.
Min-stability. The minimum of independent Weibulls with common α is Weibull with the same
α; the Weibull is the type III extreme-value distribution for minima. That is why it dominates
reliability engineering: a system that fails when its weakest component fails inherits the
shape.
There are no poles in F. The density has one, at x = 0 when α < 1, where
x^(α−1) → +∞. That corner is the sharpest edge in the whole surface and is unaddressed by the
documentation.
Arguments
Argument
Meaning
Required
x
"The value at which to evaluate the function." Documented non-negative.
Yes
alpha
"A parameter to the distribution" — the shape parameter. Documented positive.
Yes
beta
"A parameter to the distribution" — the scale parameter. Documented positive.
Yes
cumulative
"Determines the form of the function." TRUE gives the CDF, FALSE the density.
Returns Number: a probability in [0, 1) for the cumulative form, a density in [0, ∞) for
the density form.
x = 0, cumulative is exactly 0, for every α and β.
x = 0, density is where the three shape regimes visibly separate: the value is 0 for
α > 1, exactly 1/β for α = 1, and mathematically infinite for α < 1. The documentation says
nothing about this. Excel has no infinity in its value model
(The value universe), so the α < 1 corner must resolve to a
finite number, #NUM!, or #DIV/0! — and which one is unknown. It is the first probe below.
x = β, cumulative is 1 − 1/e for every α — an exact, shape-independent value, and
therefore a free correctness probe on any implementation.
Small (x/β)^α.F behaves like (x/β)^α itself. Computed as a literal
1 − exp(−t) in double precision, everything below t ≈ 2⁻⁵³ is lost to zero. Computed as
−expm1(−t) it survives to the underflow floor. This is the defining accuracy question for
the surface, and it is discussed under Numerical notes.
Large (x/β)^α.F saturates at 1 and the density underflows to 0. The saturation point
moves with α, so a large α turns a modest x/β into an overflowed exponent.
cumulative coercion. The flag is a logical slot; how a number, text or blank in that
position is interpreted follows the shared call model, and the Handbook has not checked it for
this surface.
Errors
As documented on Microsoft's WEIBULL.DIST page:
Error
Documented condition
#VALUE!
x, alpha, or beta is nonnumeric.
#NUM!
x < 0.
#NUM!
alpha ≤ 0.
#NUM!
beta ≤ 0.
Note what is not covered: nothing is said about a nonnumeric cumulative, and nothing is said
about the x = 0, α < 1 density singularity. Errors in any argument propagate under the
universal coercion rule.
How to implement
Numerical notes
The cancellation is the whole story for the CDF.1 − exp(−t) for small t is the textbook
catastrophic-cancellation example: the true value is t − t²/2 + …, and the computed value has
absorbed the entire result into the rounding of exp(−t) against 1. Below t ≈ 2⁻⁵³ the naive
form returns exactly zero for a quantity that is perfectly representable. The remedy is
−expm1(−t), which is exactly what expm1 was standardized for, and it costs nothing. Any
implementation of a Weibull CDF that does not use expm1 (or an equivalent series for small t)
is wrong in a region real reliability data occupies — early-life failure probabilities are small
by construction.
Forming t = (x/β)^α is the second problem. Three separate hazards:
Overflow and underflow of the power. For large α, a modest x/β produces an enormous or
vanishing t. Evaluating as exp(α · ln(x/β)) moves the problem into the exponent, where it
is at least detectable, but introduces its own rounding: an error of ε in ln(x/β) becomes an
error of α·ε in the exponent, so accuracy degrades linearly in α.
x/β near 1. This is where ln(x/β) suffers cancellation of its own; log1p((x − β)/β) is
the accurate form, and it matters because x ≈ β is the characteristic-life region where
engineers actually read the curve.
The division itself.x/β rounds once before the power is taken, and that single rounding
is then amplified by α. Whether the division is performed first or folded into the exponential
is a visible implementation decision, not an invisible one.
The density adds a third factor.x^(α−1) must not be computed as pow(x, α−1) when α is
near 1 and x is far from 1, and the leading α/β^α overflows for large α and small β even when
the product is well scaled; grouping as (α/β)·(x/β)^(α−1) keeps every intermediate in range and
is the form the hazard-rate reading suggests anyway.
The relevant lesson for an implementer is the one the substrate makes concrete: on this surface
the association order and the rounding of each intermediate are load-bearing, not just the
mathematical formula. Two implementations of 1 − exp(−(x/β)^α) that agree on paper can differ
in the last bits purely through where the compiler spilled a double.
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.
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 build
Platform and CPU
Captured inputs
20131
Windows, bitness not recorded, AMD Ryzen 7 4800H with Radeon Graphics
31,483
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.
Windows, bitness not recorded, AMD Ryzen 7 4800H with Radeon Graphics
31,483 captured inputs are indexed for this environment. Capture dates: 2026-07-17 to 2026-07-18. This is a reading count, not a comparison with another build.
Alternatives
Relationships
WEIBULL is the legacy compatibility spelling, documented to compute the same thing.
Whether it computes it the same way is a separate question, and the Handbook holds an
evidence record on exactly that point: EV-DIST-0033 records that the sign-off measurement in
this cluster was made on the modern surface and on the modern kernel by name, and that
nothing measures the legacy spelling separately. The record's reader warning is explicit that
the modern figure may not be inherited onto WEIBULL. The contrast the record draws is the
useful part: the gamma-side legacy/modern collapse was measured, and this pair is not among
the pairs it covers.
EXPON.DIST is the α = 1 special case, and the two surfaces overlap exactly there.
WEIBULL.DIST(x, 1, β, TRUE) and EXPON.DIST(x, 1/β, TRUE) are the same number — note the
reciprocal, since EXPON.DIST is parameterized by rate λ and WEIBULL.DIST by scale β. That
reciprocal is a standing trap in both directions.
There is no WEIBULL.INV. The quantile has an elementary closed form,
beta * (-LN(1-p))^(1/alpha), and a caller who needs it writes it out. That expression forms
1 − p, so it loses precision for p near 1; beta * (-LN(q))^(1/alpha) with q = 1 − p
supplied directly is the accurate form when the caller has q.
GAMMA.DIST is the other main lifetime distribution and the usual alternative; the two
agree only at α = 1, where both reduce to the exponential.
NORM.DIST relates through the log: ln X for Weibull X is a Gumbel (smallest-extreme)
variate, not a normal one — which is the technical reason Weibull probability paper is not
lognormal probability paper.