Statistical functions

WEIBULL.DIST

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
LanguageName in Excel
ArabicWEIBULL.DIST
BulgarianWEIBULL.DIST
CzechWEIBULL.DIST
DanishWEIBULL.FORDELING
GermanWEIBULL.DIST
GreekWEIBULL.DIST
English (Australia)WEIBULL.DIST
English (United Kingdom)WEIBULL.DIST
English (United States)WEIBULL.DIST
SpanishDISTR.WEIBULL
EstonianWEIBULL.DIST
FinnishWEIBULL.JAKAUMA
FrenchLOI.WEIBULL.N
HebrewWEIBULL.DIST
CroatianWEIBULL.DIST
HungarianWEIBULL.ELOSZLÁS
IndonesianWEIBULL.DIST
ItalianWEIBULL.DIST
JapaneseWEIBULL.DIST
KoreanWEIBULL.DIST
LithuanianWEIBULL.DIST
LatvianWEIBULL.DIST
NorwegianWEIBULL.DIST
DutchWEIBULL.VERD
PolishROZKŁ.WEIBULL
Portuguese (Brazil)WEIBULL.DIST
Portuguese (Portugal)DIST.WEIBULL
RomanianWEIBULL.DIST
RussianВЕЙБУЛЛ.РАСП
SlovakWEIBULL.DIST
SlovenianWEIBULL.DIST
Serbian (Latin)WEIBULL.DIST
SwedishWEIBULL.FÖRD
ThaiWEIBULL.DIST
TurkishWEIBULL.DAĞ
UkrainianWEIBULL.DIST
VietnameseWEIBULL.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:

F(x; α, β) = 1 − exp( −(x/β)^α )                            cumulative
f(x; α, β) = (α / β^α) · x^(α−1) · exp( −(x/β)^α )          density

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:

αHazardInterpretation
α < 1decreasingInfant mortality — early failures dominate
α = 1constantMemoryless; the exponential distribution with mean β
α = 2linearly increasingThe Rayleigh distribution, with σ = β/sqrt 2
α > 1increasingWear-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

ArgumentMeaningRequired
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.Yes

Numeric slots take ordinary to-number coercion; see Coercion and lifting.

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.

Quirks

Result and edge cases

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:

ErrorDocumented 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:

  1. 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 α.
  2. 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.
  3. 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.

WEIBULL.DIST · 4 lines · calc-func/src/catalogue/distributions.rs on GitHub
61 weibull_dist "WEIBULL.DIST" (4, 4) [V "x", V "alpha", V "beta", V "cumulative"] |s, a, sv| {
    let [x, alpha, beta] = nums::<3>(s, a)?;
    out(s, sd::weibull_dist_kernel(x, alpha, beta, flag(s, a, 3)?))
}

Kernels shared with other functions

Argument and result plumbing

  • flag catalogue/kit
  • num 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
20131Windows, bitness not recorded, AMD Ryzen 7 4800H with Radeon Graphics31,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.

Recorded environments and comparison details.

Excel 16.0 build 20131

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.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents