Compatibility
NORMINV
Matches all 5 recorded answers
Recorded: 5 workbook cells. How we measure this · See the Rust code
Local names in 40 languages
| Language | Name in Excel |
|---|---|
| Arabic | NORMINV |
| Bulgarian | NORMINV |
| Czech | NORMINV |
| Danish | NORMINV |
| German | NORMINV |
| Greek | NORMINV |
| English (Australia) | NORMINV |
| English (United Kingdom) | NORMINV |
| English (United States) | NORMINV |
| Spanish | DISTR.NORM.INV |
| Estonian | NORMINV |
| Finnish | NORM.JAKAUMA.KÄÄNT |
| French | LOI.NORMALE.INVERSE |
| Hebrew | NORMINV |
| Croatian | NORMINV |
| Hungarian | INVERZ.NORM |
| Indonesian | NORMINV |
| Italian | NORMINV |
| Japanese | NORMINV |
| Korean | NORMINV |
| Lithuanian | NORMINV |
| Latvian | NORMINV |
| Norwegian | NORMINV |
| Dutch | NORM.INV |
| Polish | ROZKŁAD.NORMALNY.ODW |
| Portuguese (Brazil) | NORMINV |
| Portuguese (Portugal) | INV.NORM |
| Romanian | NORMINV |
| Russian | НОРМОБР |
| Slovak | NORMINV |
| Slovenian | NORMINV |
| Serbian (Latin) | NORMINV |
| Swedish | NORMINV |
| Thai | NORMINV |
| Turkish | NORMTERS işlevi |
| Ukrainian | NORMINV |
| Vietnamese | NORMINV |
| Chinese (Simplified) | NORMINV |
| Chinese (Hong Kong) | NORMINV |
| Chinese (Traditional) | NORMINV |
Names from Microsoft's support site.
What it does
NORMINV(probability, mean, standard_dev)
NORMINV(probability,mean,standard_dev) is the compatibility normal quantile: it returns the value with the requested cumulative probability for the supplied mean and positive standard deviation.
Try it
=NORMINV(0.5,10,2) returns 10. The median of this symmetric distribution equals its mean.
Quirks
The probability must be strictly between zero and one; endpoints or out-of-range values give #NUM!. Nonnumeric arguments give #VALUE!. A nonpositive standard deviation also gives #NUM!; the mean may be any admitted numeric location.
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:
- Validate
0<p<1. Choose its rational approximation branch atp=0.02425andp=1-0.02425. - In the centre, set
q=p-0.5,r=q*qand evaluate the coefficient polynomials inr, multiplying the numerator byq. In the lower tail useq=sqrt(-2*crt_log(p)); in the upper tail usesqrt(-2*crt_log(1-p))and reverse the sign. The cited source retains the coefficients and their Horner order. - Refine the candidate
zonce. Form a small tail directly astail=0.5*erfc(abs(z)/sqrt(2)), using the current library complementary error function. Seterr=tail-pfor negativez, orerr=(1-p)-tailotherwise. - If the normal density at
zis nonzero, replacezbyz-err/density. If it is zero, keep the rational candidate.
Return the current binary64 combination mean+sigma*z, keeping multiplication and addition separate. At p=0.5, the central numerator has q=0, and the symmetric answer is zero, so the affine result is the supplied mean.
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.
NORMINV · 4 lines · calc-func/src/catalogue/distributions.rs on GitHub4 norminv "NORMINV" (3, 3) [V "probability", V "mean", V "standard_dev"] |s, a, sv| {
let [p, m, sd_] = nums::<3>(s, a)?;
out(s, nl::norm_inv_kernel(p, m, sd_))
}
Kernels shared with other functions
numscatalogue/distributionsbinary_withported/excel_numericexcel_x87_mulported/excel_numericmulported/excel_numeric/x87phi_kernelported/normal_dist_commonvalidate_positive_sigmaported/normal_log_familyvalidate_probability_open_unitported/normal_log_familyinverse_standard_normal_acklam_refinedported/normal_log_familyinverse_standard_normalported/normal_log_familynorm_inv_kernelported/normal_log_family
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
NORM.INV is the modern spelling; NORMDIST gives the forward probability.
Named variants
No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents