Contact

LOGNORM.INV Function (LibreOffice Calc)

Statistical Intermediate LibreOffice Calc

Learn the LOGNORM.INV function in LibreOffice Calc: Values of the inverse of the lognormal distribution.

Verification status: Official documentation referenced; example outcomes independently reasoned or arithmetically checked where stated. Not executed in LibreOffice Calc. How formula examples are checked

Historical validation scope: Native observations refer to saved direct-entry LibreOffice Calc 25.2.3.2 Linux evidence dated 13 October 2026. This review verified artifact hashes and all 92 ODS/result pairs, and independently recalculated all 70 numerical assertions using SciPy lognormal CDF/PDF/quantile functions and elementary arithmetic. Calc was not rerun. Earlier XLSX-import comparisons are reported separately and have less complete evidence.

What does LOGNORM.INV do?

LOGNORM.INV finds the value on a positive measurement scale corresponding to a specified cumulative probability in a lognormal distribution. In plain language: what threshold do approximately 90% of modelled outcomes fall below? This is also called a quantile or percentile cutoff.

For example, if positive delivery times are reasonably described by a lognormal model, the 90th-percentile delivery time is a planning threshold. That does not mean deliveries are guaranteed to occur by then, and it does not mean real delivery data have been shown to follow a lognormal distribution. LOGNORM.INV is the inverse of a cumulative probability curve, not the inverse of a probability density (PDF).

LibreOffice Help documents LOGNORM.INV as the lognormal inverse, gives the official example, notes compatibility with LOGINV, and states introduction in LibreOffice 4.3. See LibreOffice Calc Help — Statistical Functions Part Three, LOGNORM.INV, consulted 2026-10-13. The mathematical domain and legacy inverse relationship are established in OASIS OpenDocument 1.4 OpenFormula §6.18.43 LOGINV, consulted 2026-10-13.

Exact syntax, required inputs and units

=LOGNORM.INV(Number; Mean; StDev)
Argument Modern documented requirement Correct interpretation
Number Required Cumulative probability p, strictly between 0 and 1. E.g., 0.9 or 90%, not 90.
Mean Required μ, the mean of the underlying natural logarithm LN(X). It is not the arithmetic mean of the original measurements.
StDev Required σ, the standard deviation of LN(X), strictly positive. It is not automatically the standard deviation of the original measurements.

All three arguments are required by LibreOffice’s documented dotted-name syntax. LOGINV, a distinct older function, has optional Mean and StDev with defaults of 0 and 1. Native Calc 25.2.3.2 also accepted =LOGNORM.INV(0.5) and returned 1 in a diagnostic observation, but that is undocumented input leniency, not a reliable modern default. Enter all three arguments even if a particular release happens to accept fewer.

This guide uses English function names, dot decimal notation and semicolons (;) as formula argument separators. Settings and locale may differ. LibreOffice documents English-function-name and separator controls in Calc Formula Options, checked 2026-10-13.

Official example: the 5th percentile

Enter this formula in an empty cell:

=LOGNORM.INV(0.05;0;1)

Native-tested result: 0.193040816698737 (about 0.19304), matching LibreOffice’s official example rounded to 0.1930408167.

Interpretation: under a lognormal distribution with LN(X) mean zero and standard deviation one, 5% of values are predicted to be at or below approximately 0.19304. The result is in the original units of X, not logarithm units. To compute a 95th percentile instead, replace 0.05 with 0.95; the two questions concern opposite ends of the distribution.

Native inverse consistency check:

=LOGNORM.DIST(LOGNORM.INV(0.05;0;1);0;1;TRUE())

Mathematically this is the original probability 0.05. Several analogous forward/inverse combinations were executed directly in Calc; the first-party test workbook includes the official LOGNORM.INV result and repeated forward/inverse cross-checks at other probabilities. The exact nested 0.05 formula is an explanatory mathematical identity rather than a separately counted native assertion.

Build a practical percentile calculator in Calc

Construct the following one-sheet model. Columns A and B contain the visible user-facing form; the formulas and outputs are on the original units scale, not on the LN scale.

Cell Label Enter in column B Expected result
A2 / B2 Cumulative probability 0.90 Input = 90th percentile
A3 / B3 Mean of natural logs μ 1 Input
A4 / B4 Standard deviation of logs σ 0.7 Input
A6 / B6 Desired percentile threshold =LOGNORM.INV(B2;B3;B4) 6.66644074379710
A7 / B7 Validate percentage below cutoff =LOGNORM.DIST(B6;B3;B4;TRUE()) 0.9
A8 / B8 Nominal fraction above cutoff =1-B7 0.1
A9 / B9 Median =LOGNORM.INV(0.5;B3;B4) 2.71828182846
A10 / B10 Mean of original quantity =EXP(B3+B4^2/2) approximately 3.47

The mathematically identical direct-reference formula =LOGNORM.INV(M2;K2;L2) was native-tested with M2=0.9, K2=1, L2=0.7, returning 6.66644074379710. The corresponding inverse-to-CDF round-trip was native-tested and returned 0.9. Enter 90% as a real percentage or 0.9 as a decimal, not the number 90.

What does a 90th percentile mean?

If X is a continuous positive time (days), the model predicts that about 90% of values are at most 6.6664 days, and about 10% are greater. This is not a guarantee for a particular shipment or a prediction that delivery times are distributed with those parameters. The cutoff will only be useful if the selected distribution and its parameter estimates are defensible.

Native-tested percentile reference table

The following direct Calc formulas were checked against expected values computed independently with Python’s normal inverse (statistics.NormalDist.inv_cdf) transformed back using exp(μ+σz). The displayed figures are rounded; the saved evidence preserves the full numerical comparisons.

Calc formula Cumulative probability / model Native result
=LOGNORM.INV(0.01;0;1) 1st percentile 0.0976517330703
=LOGNORM.INV(0.1;0;1) 10th percentile 0.277606241852
=LOGNORM.INV(0.25;0;1) 25th percentile 0.509416283863
=LOGNORM.INV(0.5;0;1) Median 1.00000000000
=LOGNORM.INV(0.75;0;1) 75th percentile 1.96303108416
=LOGNORM.INV(0.9;0;1) 90th percentile 3.60222447928
=LOGNORM.INV(0.95;0;1) 95th percentile 5.18025160223
=LOGNORM.INV(0.99;0;1) 99th percentile 10.2404736563
=LOGNORM.INV(0.025;1;0.5) Lower 2.5% quantile in another model 1.02021971170
=LOGNORM.INV(0.5;1;0.5) Median with log mean = 1 2.71828182846
=LOGNORM.INV(0.975;1;0.5) Upper 97.5% quantile 7.24261256098
=LOGNORM.INV(0.95;2;0.75) Upper percentile in a higher-scale model 25.3718481856

Notice the quantiles are not symmetric around the median on the original measurement scale: the distribution has a right tail. Instead, logarithms of corresponding quantiles are symmetric around μ for complementary probabilities, an important distinction for plotting and interpreting percentile intervals.

Why the inverse formula works

Let X>0 and suppose LN(X) has normal mean μ and positive standard deviation σ. If Φ⁻¹(p) is the standard-normal inverse CDF (z-score), then:

LOGNORM.INV(p; mu; sigma) = EXP(mu + sigma * standard_normal_quantile(p))
0 < p < 1; sigma > 0

This mathematical transformation explains why the inverse returns a positive number and why its median is EXP(μ) at p=0.5. For example, p=0.90, μ=1, σ=0.7 yields a positive cutoff of approximately 6.6664407438, which is greater than the median EXP(1)≈2.71828.

The formula is the mathematical relationship defined via the older inverse and cumulative functions in OASIS OpenFormula 1.4 §§6.18.43–44, checked 2026-10-13. It is not a claim about LibreOffice’s internal numerical algorithm or a test of another spreadsheet program.

Two useful round-trip checks

A valid inverse should take you back to the probability when passed to the cumulative distribution:

=LOGNORM.DIST(LOGNORM.INV(0.75;1;0.5);1;0.5;TRUE())

Native-tested result: 0.75. Reverse the direction, starting from a positive value and calculating its cumulative probability:

=LOGNORM.INV(LOGNORM.DIST(2;1;0.5;TRUE());1;0.5)

Native-tested result: 2. If the LOGNORM.DIST fourth argument were FALSE(), this would attempt to invert a density rather than a cumulative probability; it would not be the correct round-trip. These sanity checks also help detect mismatched log-scale parameters between cells.

Advanced modelling: if you know the arithmetic mean and SD

Suppose a planning team knows that the original positive variable X should have modelled arithmetic mean 10 and standard deviation 3. Passing 10 and 3 directly to LOGNORM.INV would be incorrect: its mean and SD arguments describe LN(X).

If and only if you have chosen a lognormal model, convert the arithmetic parameters m>0, s>0 into log parameters:

sigma_log = SQRT(LN(1+(s/m)^2))
mu_log = LN(m) - LN(1+(s/m)^2)/2

Enter the components directly in Calc:

=SQRT(LN(1+(3/10)^2))
=LN(10)-LN(1+(3/10)^2)/2

These expressions calculate the log-scale standard deviation and log-scale mean respectively; both were native-tested and independently checked. To obtain a 90th-percentile threshold on the original scale:

=LOGNORM.INV(0.9;LN(10)-LN(1+(3/10)^2)/2;SQRT(LN(1+(3/10)^2)))

This complete composite formula was native-tested. The result is recorded with full precision in the saved historical workbook and numerical evidence. The analogous cumulative-probability formula can check a proposed threshold of 12:

=LOGNORM.DIST(12;LN(10)-LN(1+(3/10)^2)/2;SQRT(LN(1+(3/10)^2));TRUE())

This formula was independently and natively validated too. Real arithmetic means/standard deviations may be estimated from samples, so model uncertainty, censoring, sample size and distribution fit should be examined before using the cutoff for important operational decisions.

Percentile bands, asymmetric uncertainty, and capacity

An interval between the 2.5th and 97.5th percentiles under μ=1,σ=0.5 is:

=LOGNORM.INV(0.025;1;0.5)
=LOGNORM.INV(0.975;1;0.5)

Native-tested endpoints: approximately 1.02021971170 and 7.24261256098. In the assumed model, 95% of observations lie between these values. This is a prediction/coverage band for the modelled variable, not automatically a 95% confidence interval for a population parameter or a fitted dataset. It is not symmetric on the original scale, but is symmetric around μ after taking natural logs.

A related capacity question is the 99th-percentile threshold:

=LOGNORM.INV(0.99;0;1)

Native-tested result: ≈10.2404736563. You can then check it with LOGNORM.DIST(10.2404736563;0;1;TRUE()) (approximately 0.99 mathematically). Do not round the threshold before subsequent checks if precision matters.

Errors, missing inputs and input validation

Official/standard constraints are 0 < p < 1, σ > 0, and all numbers must be meaningful in the lognormal model. Direct input through Calc’s own formula parser in 25.2.3.2 Linux produced these diagnostic observations:

Input / formula Native Calc 25.2.3.2 behavior Explanation
=LOGNORM.INV(0;0;1) Err:502 p must be greater than zero.
=LOGNORM.INV(1;0;1) Err:502 p must be smaller than one.
=LOGNORM.INV(-0.1;0;1) Err:502 Probability outside the valid interval.
=LOGNORM.INV(1.1;0;1) Err:502 Probability outside the valid interval.
=LOGNORM.INV(0.5;0;0) Err:502 Log-scale SD must be strictly positive.
=LOGNORM.INV(0.5;0;-1) Err:502 Negative log-scale SD invalid.
=LOGNORM.INV("abc";0;1) #VALUE! Text is not a probability.
=LOGNORM.INV(0.5) Returned 1 Undocumented leniency: do not infer that modern arguments are optional.

A reusable input guard for probability in B2, log mean B3, and positive log SD B4 is:

=IF(OR(B2<=0;B2>=1;B4<=0);NA();LOGNORM.INV(B2;B3;B4))

The analogous guard with input references M2, K2, L2 was native-tested: valid inputs returned 6.66644074379710, and an invalid probability produced #N/A rather than a misleading value. NA() deliberately signals invalid or absent inputs; replace with a controlled message using a separate reporting cell if the consumer needs friendlier feedback. Validate numeric cells as well if importing user spreadsheets with text. Do not silently set invalid probabilities to arbitrary near-boundary values.

Watch out for XLSX-import differences

The saved direct-entry Calc formula =LOGNORM.INV(0;0;1) produced Err:502, but the earlier saved import report describes a tiny positive numeric result after XLSX import. The underlying import workbook/results were not preserved in this package, so that comparison remains a reported interoperability observation. Some other invalid-input and older-LOGNORMDIST comparisons also changed on import. We treated that result as import/interoperability behavior, not a native Calc assertion or proof of a defect in Calc’s statistical engine. The direct-entry saved ODS and result records agree across all 70 numerical assertions. If importing statistical workbooks from another format, explicitly validate transformed formulas and boundary cases after conversion. This observation does not establish behavior in Excel itself.

Compatibility and naming rules

  • LibreOffice support: official Help states LOGNORM.INV was introduced in LibreOffice 4.3. Its use here was tested natively in LibreOffice Calc 25.2.3.2, Linux. No native assertions for other platforms or versions are claimed. LibreOffice Help, consulted 2026-10-13.
  • Legacy LOGINV: Help explicitly says LOGNORM.INV is identical to LOGINV, the older established function, introduced for interoperability. Direct native tests compared all arguments explicitly at three probabilities and produced zero difference. The older name’s arguments have documented defaults, but those defaults should not be imported into the modern function syntax merely by analogy. Calc Help, LOGINV/LOGNORM.INV, consulted 2026-10-13.
  • OpenDocument: Help states the dotted name is not an OpenDocument 1.3 native function and assigns namespace COM.MICROSOFT.LOGNORM.INV. OASIS OpenFormula 1.4 defines legacy LOGINV with 0<p<1 and σ>0. These facts should not be compressed into an unsupported claim that every ODF engine supports the dotted syntax identically. OASIS specification, consulted 2026-10-13.
  • Other spreadsheet applications: interoperability can involve function-name translation, optional defaults, and file-format semantics; no Excel, WPS, Gnumeric, Sheets or other application execution was performed here. Do not infer cross-program support from similar function names. Native Calc results are evidence about Calc only.
  • Locale and display: names, argument separators, and decimal separators can change with preferences. Prefer a displayed percentage formatted as 90% rather than entering 90 as the Number argument; formatting a result to two decimals should not overwrite its full floating-point value. LibreOffice Formula Options, checked 2026-10-13.
  • LOGNORM.DIST — forward cumulative probabilities and density for the same lognormal model.
  • LOGINV — older inverse function, documented as identical to the modern inverse with explicit parameters.
  • LOGNORMDIST — older lognormal forward function with a documented optional cumulative argument.
  • NORM.S.INV — find the standard-normal z-score before applying an exponential transformation.
  • NORM.INV — inverse for the ordinary normal (unlogged) distribution; do not confuse with the lognormal inverse.
  • LN and EXP — transform between log and original scales.
  • IF, OR and NA — construct visible validation guards.

Dated official sources and validation evidence

  1. LibreOffice Help, consulted 2026-10-13: Statistical Functions Part Three — LOGINV, LOGNORM.INV and LOGNORM.DIST. Exact modern syntax, official worked example, legacy equivalence, release introduction, non-native ODF 1.3 dotted namespace.
  2. OASIS OpenDocument 1.4 OpenFormula, consulted 2026-10-13: Part 4 §§6.18.43–44 LOGINV and LOGNORMDIST. Underlying probability and sigma constraints, inverse-CDF relationship, legacy signature and semantics.
  3. LibreOffice Help, consulted 2026-10-13: Calc Formula Options — English names, separator selection. Software-specific language and delimiter settings.
  4. First-party native Calc validation dated 2026-10-13: native/native_direct_uno.py entered formulas directly into a blank Calc document using setFormula (not XLSX conversion). native/LOGNORM_Dist_Inv_Direct_Native.ods and native/native_direct_results.json preserve complete formulas, independent expectations, Calc numeric values, and errors. 70/70 independent numerical assertions passed across the two companion guides; 22 diagnostic observations are reported separately. The independently computed expectations use Python standard-library normal quantiles and elementary math and are not misrepresented as additional native executions.