Compatibility

NORMSINV

Matches all 3 recorded answers

Recorded: 3 workbook cells. How we measure this · See the Rust code

Local names in 40 languages
LanguageName in Excel
ArabicNORMSINV
BulgarianNORMSINV
CzechNORMSINV
DanishSTANDARDNORMINV
GermanNORMSINV
GreekNORMSINV
English (Australia)NORMSINV
English (United Kingdom)NORMSINV
English (United States)NORMSINV
SpanishDISTR.NORM.ESTAND.INV
EstonianNORMSINV
FinnishNORM.JAKAUMA.NORMIT.KÄÄNT
FrenchLOI.NORMALE.STANDARD.INVERSE
HebrewNORMSINV
CroatianNORMSINV
HungarianINVERZ.STNORM
IndonesianNORMSINV
ItalianNORMSINV
JapaneseNORMSINV
KoreanNORMSINV
LithuanianNORMSINV
LatvianNORMSINV
NorwegianNORMSINV
DutchSTAND.NORM.INV
PolishROZKŁAD.NORMALNY.S.ODW
Portuguese (Brazil)NORMSINV
Portuguese (Portugal)INV.NORMP
RomanianNORMSINV
RussianНОРМСТОБР
SlovakNORMSINV
SlovenianNORMSINV
Serbian (Latin)NORMSINV
SwedishNORMSINV
ThaiNORMSINV
TurkishNORMSTERS işlevi
UkrainianNORMSINV
VietnameseNORMSINV
Chinese (Simplified)NORMSINV
Chinese (Hong Kong)NORMSINV
Chinese (Traditional)NORMSINV

Names from Microsoft's support site.

What it does

NORMSINV(probability)

NORMSINV(probability) is the compatibility quantile of the standard normal distribution: it returns z with cumulative probability p.

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.

=NORMSINV(0.5) returns 0, the centre of the standard normal distribution. A probability below one half has a negative quantile.

Quirks

The probability must be strictly between zero and one; endpoints or out-of-range values give #NUM!. Nonnumeric arguments give #VALUE!. The mean and standard deviation are fixed at zero and one; there is no scale argument on this spelling.

A small probability refers to the far left tail. For an upper-tail cutoff use the corresponding cumulative probability, while recognizing that 1-small_tail can round to one for very small tails. Supply probability as a number, such as 0.5 or a numeric 50% cell.

Microsoft describes an iterative inverse search over the forward normal CDF, with #N/A if it has not converged after 100 iterations on this legacy page. That documented method and limit do not identify the current candidate’s rational coefficients or numerical stopping stages.

How to implement

The current standard-normal inverse is a published-method candidate:

  1. Validate 0<p<1. Choose its rational approximation branch at p=0.02425 and p=1-0.02425.
  2. In the centre, set q=p-0.5, r=q*q and evaluate the coefficient polynomials in r, multiplying the numerator by q. In the lower tail use q=sqrt(-2*crt_log(p)); in the upper tail use sqrt(-2*crt_log(1-p)) and reverse the sign. The cited source retains the coefficients and their Horner order.
  3. Refine the candidate z once. Form a small tail directly as tail=0.5*erfc(abs(z)/sqrt(2)), using the current library complementary error function. Set err=tail-p for negative z, or err=(1-p)-tail otherwise.
  4. If the normal density at z is nonzero, replace z by z-err/density. If it is zero, keep the rational candidate.

Return that z. At p=0.5, the central numerator has q=0, and the symmetric answer is zero.

This recipe can be coded from the source’s published-approximation coefficients, but it is not an identified Excel inverse. In particular, its Newton tail is a library erfc call; substituting the public worksheet ERFC introduces another numerical candidate. The unknown Excel approximation and stopping/rounding stages remain open.

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.

NORMSINV · 3 lines · calc-func/src/catalogue/distributions.rs on GitHub
8 normsinv "NORMSINV" (1, 1) [V "probability"] |s, a, sv| {
    out(s, nl::norm_s_inv_kernel(num(s, a, 0)?))
}

Kernels shared with other functions

Argument and result plumbing

  • 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
19929Windows, bitness not recorded, CPU not recorded2

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 19929

Windows, bitness not recorded, CPU not recorded

2 captured inputs are indexed for this environment. Capture dates are not recorded. This is a reading count, not a comparison with another build.

Alternatives

NORM.S.INV is the modern spelling; NORMSDIST gives the forward probability.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents