Contact

LOGNORM.DIST Function (LibreOffice Calc)

Statistical Intermediate LibreOffice Calc

Learn the LOGNORM.DIST function in LibreOffice Calc: Values of the log normal 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 LOGNORM.DIST calculates

Use LOGNORM.DIST to describe a lognormally distributed positive quantity: delivery times, component lifetimes, some concentrations, or positive price ratios are possible models when an examination of the data supports them. A lognormal model is not appropriate simply because the numbers are positive. If X is lognormal, then LN(X), not X itself, follows a normal distribution. The Mean and StDev arguments refer to the normal distribution of LN(X).

LOGNORM.DIST can answer two different questions. With Cumulative=TRUE() it calculates the probability that X is at most a threshold; with FALSE() it calculates the probability density at that threshold. The latter is a curve height with units of reciprocal X units and is not the probability of observing an exact continuous value. The two results cannot be interchanged.

LibreOffice documents the exact function arguments, an example, its introduction in LibreOffice 4.3, and the compatibility namespace on Calc Help — Statistical Functions Part Three, LOGNORM.DIST, checked 2026-10-13. The mathematical density/CDF and input domain are specified for the related legacy LOGNORMDIST in OASIS OpenDocument 1.4 OpenFormula, §6.18.44, checked 2026-10-13. The specification’s legacy function is not proof that this dotted function name is an ODF-native name.

Syntax, arguments, and defaults

=LOGNORM.DIST(Number; Mean; StDev; Cumulative)
Argument Required in documented modern syntax? What to enter
Number Yes Observed or cutoff value x in the original positive scale. For CDF, x ≤ 0 corresponds to probability zero; the density is defined for x > 0.
Mean Yes μ, the arithmetic mean of the natural logarithms of the underlying values, not their untransformed mean. Can be negative, zero, or positive.
StDev Yes σ, the positive standard deviation of the natural logarithms. Zero or negative is invalid.
Cumulative Yes TRUE() or 1 requests the cumulative distribution; FALSE() or 0 requests the probability density.

No documented defaults: include all four arguments, including an explicit last argument. Calc 25.2.3.2 returned Err:511 for =LOGNORM.DIST(1;0;1) when entered directly into Calc; importing the same ill-formed expression through XLSX did not reliably preserve its diagnostic behavior. Always enter four arguments rather than relying on import or undocumented coercion.

These examples use English function names, decimal periods, and semicolon argument separators. Other locales may translate function names or choose different decimal and argument separators. LibreOffice’s Calc Formula Options documents the English-function-name setting and configurable separators (checked 2026-10-13).

First example: the official cumulative probability

Paste this formula into a blank Calc cell:

=LOGNORM.DIST(0.1;0;1;TRUE())

Native-tested result: 0.0106510993417001 (approximately 1.0651%). This matches the official LibreOffice example rounded to 0.0106510993. In this model, only about 1.0651% of observations are ≤ 0.1. It does not mean that 1.0651% equal exactly 0.1.

Change the fourth argument to request the density:

=LOGNORM.DIST(0.1;0;1;FALSE())

Native-tested result: 0.281590189015268. It is a probability density, not 28.159% probability. The first result is the area below the density curve up to 0.1; the second is the height of the curve at 0.1.

Build a reusable Calc worksheet

Make this small, self-contained calculator in a new blank sheet. The labels in column A are explanatory; numbers and formulas belong in column B.

Cell Label Input or formula Expected native result
A2 / B2 Measured threshold x 5 Input
A3 / B3 Log-scale mean μ 1 Input
A4 / B4 Log-scale standard deviation σ 0.7 Input
A6 / B6 Probability at or below x =LOGNORM.DIST(B2;B3;B4;TRUE()) 0.808020690138420
A7 / B7 Density at x =LOGNORM.DIST(B2;B3;B4;FALSE()) 0.0780273431920731
A8 / B8 Probability above x =1-B6 approximately 0.191979309861580
A9 / B9 90th-percentile cutoff =LOGNORM.INV(0.9;B3;B4) 6.66644074379710
A10 / B10 Validate the 90th percentile =LOGNORM.DIST(B9;B3;B4;TRUE()) 0.9

The exact equivalent formulas with direct cell references =LOGNORM.DIST(J2;K2;L2;TRUE()) and FALSE() were native-tested with J2=5, K2=1, L2=0.7. The companion quantile calculation was also directly tested; the worksheet arrangement above is a copyable layout, with results supported by the same inputs. Enter the inputs as real numbers, not numeric-looking text.

Interpret probabilities correctly

If the quantity represents days, B6≈0.8080 means the model predicts about 80.8% of completions within five days; B8≈0.1920 represents completion after five days. For a continuous model, the probability of exactly five days is zero. Do not interpret B7 as the chance of a five-day outcome. The model is about continuous values; real event definitions and rounding may need separate modelling.

More native-tested formulas

Every value in this table was computed both with independent Python math.erfc/math.exp arithmetic and with direct native Calc evaluation. Displayed figures are rounded only in this table.

Calc formula What it asks Result
=LOGNORM.DIST(1;0;1;TRUE()) Median threshold cumulative probability 0.5
=LOGNORM.DIST(1;0;1;FALSE()) Density at the median 0.398942280401
=LOGNORM.DIST(2;0;1;TRUE()) Probability X≤2 0.755891404214
=LOGNORM.DIST(2;0;1;FALSE()) Density at X=2 0.156874019279
=LOGNORM.DIST(10;0;1;TRUE()) Probability X≤10 0.989348900658
=LOGNORM.DIST(0.4;-0.2;0.6;TRUE()) Nonzero log-scale mean 0.116274606708
=LOGNORM.DIST(5;1;0.7;TRUE()) Different log-scale model 0.808020690138
=LOGNORM.DIST(5;1;0.7;FALSE()) Same model, density 0.0780273431921
=LOGNORM.DIST(2;0;1;1) Numeric cumulative switch 0.755891404214
=LOGNORM.DIST(2;0;1;0) Numeric density switch 0.156874019279

How the mathematics works

When x>0, define the standard normal score z=(LN(x)-μ)/σ. The cumulative probability is

F(x) = standard_normal_CDF((LN(x) - mu) / sigma)

where Φ is the standard-normal CDF. The probability density is

f(x) = EXP(-0.5 * ((LN(x)-mu)/sigma)^2) / (x * sigma * SQRT(2*pi))

These are independent mathematical definitions, not a claim that Calc evaluates the functions using a particular internal algorithm. The density is nonnegative and can exceed 1 for narrow distributions; its integral, not its individual height, is a probability. For x≤0, the lognormal cumulative probability is mathematically 0; the density formula requires a positive x. OASIS OpenFormula §6.18.44, checked 2026-10-13.

Median and mean of a lognormal model

The median of X is EXP(μ), while its arithmetic mean is EXP(μ + σ^2/2). Those are not the same except in the limiting case of zero variance. With μ=1, σ=0.7, native-tested Calc formulas were:

=EXP(1)
=EXP(1+0.7^2/2)

Results: median ≈2.71828182846, arithmetic mean ≈3.47293479934. The first may also be checked by =LOGNORM.DIST(EXP(1);1;0.7;TRUE()), which returned exactly 0.5 at the numeric precision tested.

Advanced example: start with the mean and standard deviation of X

Suppose your arithmetic-scale modelling assumptions are E[X]=10 and SD[X]=3. It is a mistake to substitute 10 and 3 directly for Mean and StDev, because the function expects log-scale parameters. If you deliberately assume a lognormal distribution and have these arithmetic-scale quantities, first convert:

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

where m>0 and s>0. In Calc, for m=10, s=3:

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

These transformations were independently derived and native-tested. Then ask about the cumulative probability at X=12:

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

Or calculate the 90th percentile under the same assumptions:

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

Both composite formulas are included in the native-tested workbook with independently calculated expected results. This conversion is valid for a lognormal model; it does not prove that an observed dataset is lognormal. If s=0, the mathematical distribution is degenerate and this formula’s strict StDev>0 requirement is not met.

Percentiles, tail events, and threshold decisions

The cumulative function directly computes P(X≤x). For a right-tail risk, compute P(X>x)=1-LOGNORM.DIST(x;μ;σ;TRUE()). A native-tested example is:

=1-LOGNORM.DIST(12;0;1;TRUE())

For a 99th-percentile capacity cutoff, use the separate inverse function:

=LOGNORM.INV(0.99;0;1)

Native-tested result: approximately 10.2404736563. About 99% of the modelled observations fall at or below this threshold. See LOGNORM.INV for detailed constraints. Subtracting a CDF from 1 can lose precision when the upper-tail probability is extremely tiny; do not mistake a displayed zero for an analytically proven impossible event. Increase displayed precision and, for consequential tail-risk decisions, validate the model and numerical precision with an appropriate independent statistical tool. Calc does not document a separate lognormal right-tail function in the cited Help page.

Troubleshooting and defensive input checks

Input or symptom What happened in direct native Calc 25.2.3.2 Safe response
=LOGNORM.DIST(0;0;1;TRUE()) 0 Correct cumulative limit at/below zero.
=LOGNORM.DIST(-1;0;1;TRUE()) 0 Correct cumulative limit below zero.
=LOGNORM.DIST(0;0;1;FALSE()) Err:502 Density input must be strictly positive.
=LOGNORM.DIST(-1;0;1;FALSE()) Err:502 Reject nonpositive density argument.
StDev=0 or <0 Err:502 in tested formulas Supply σ>0 (standard deviation of logs).
Only three modern arguments Err:511 Include Cumulative explicitly.
Nonnumeric Number or text flag #VALUE! in the tested examples Use numeric input and actual TRUE()/FALSE().
Cumulative=2 Interpreted as cumulative, yielding 0.5 in tested case Do not depend on coercion. Use Boolean or exactly 0/1.
Output looks like a percent but exceeds 100% You may be looking at density, not probability Confirm fourth argument is TRUE() for cumulative.
CDF unexpectedly looks wrong Mean / SD of original values may have been used Use log-scale parameters.

For a threshold stored in B2, log mean in B3, and log SD in B4, a defensive CDF formula is:

=IF(B4<=0;NA();LOGNORM.DIST(B2;B3;B4;TRUE()))

For the density add the stricter positive-threshold check:

=IF(OR(B2<=0;B4<=0);NA();LOGNORM.DIST(B2;B3;B4;FALSE()))

The underlying nested-IF / OR / NA() guard pattern was also native-tested, but the exact B2:B4 illustrative placement above was not separately asserted. Guard errors deliberately surface invalid input instead of presenting a plausible-looking value. The results of direct Calc entry take precedence over XLSX-import diagnostics: the saved research report describes three legacy alias equivalence discrepancies and several invalid-input differences following XLSX conversion, despite the exact formulas succeeding in native Calc. Do not use workbook import quirks to generalize function semantics.

Compatibility: versions, OpenDocument, and legacy aliases

  • LibreOffice Calc: the dotted LOGNORM.DIST is documented as available since LibreOffice 4.3. All native test claims here are limited to Calc 25.2.3.2 on Linux. Current online Help may describe a newer LibreOffice generation; that does not amount to a native execution test for that generation. Calc Help — Statistical Functions Part Three, accessed 2026-10-13.
  • ODF/OpenFormula: Help labels the dotted function as outside OpenDocument 1.3 and associates the namespace COM.MICROSOFT.LOGNORM.DIST. By contrast, OASIS OpenFormula 1.4 §6.18.44 specifies the older LOGNORMDIST, including optional arguments. This is a documented naming/format distinction, not a guarantee of identical results in every spreadsheet application. OASIS standard, checked 2026-10-13.
  • Legacy name: the existing distinct LOGNORMDIST page covers the older function. Direct native Calc checks confirmed six zero-difference comparisons for both cumulative and density variants with fully specified arguments. Do not assume the modern function inherits the older function’s optional defaults.
  • XLSX round-trip: the tests distinguish direct Calc execution from XLSX-imported formulas. The saved import report describes changed legacy LOGNORMDIST cumulative checks and some invalid-argument diagnostics; its underlying import artifacts were not preserved for this review. When exchanging complex statistical workbooks, reopen and verify formulas in the target program. This observation is specific to the tested Calc version and workbook import route; it is not a broad claim about Microsoft Excel.
  • Platform/release scope: behavior was not independently tested in Windows, macOS, LibreOffice 4.3, or newer releases. The cited Help is the basis for documentation claims outside Calc 25.2.3.2. Check translated function names under Calc Formula Options.
  • LOGNORM.INV — turn a cumulative probability into a lognormal percentile cutoff.
  • LOGNORMDIST — legacy related function with documented optional arguments.
  • LOGINV — older lognormal inverse, useful when reading existing workbooks.
  • NORM.S.DIST — obtain the standard-normal CDF after standardizing a natural logarithm.
  • LN — take natural logarithms of positive observations.
  • EXP — transform a log-scale result back to the original positive scale.
  • IF and NA — reject invalid parameters in a reusable worksheet.

References and independent checks

  1. LibreOffice Help (accessed 2026-10-13): Statistical Functions Part Three: LOGNORM.DIST / LOGNORMDIST / LOGNORM.INV. Source for exact syntax, example, legacy signature, LibreOffice 4.3 introduction and COM.MICROSOFT namespace.
  2. OASIS (accessed 2026-10-13): OpenDocument 1.4 Part 4 OpenFormula, §6.18.44 LOGNORMDIST. Source for lognormal PDF, CDF, input constraints and older name’s default arguments; does not claim modern LOGNORM.DIST native ODF naming.
  3. LibreOffice Help (accessed 2026-10-13): Formula Options — language and separators. Supports the locale/semicolon guidance.
  4. Primary first-party native validation (2026-10-13): packaged native/native_direct_results.json, direct-UNO test source native/native_direct_uno.py, and saved ODS native/LOGNORM_Dist_Inv_Direct_Native.ods. 70/70 independent numerical assertions passed across this guide and its LOGNORM.INV companion, plus 22 separately logged diagnostics. External Python math / statistics.NormalDist calculations were used for independent expected values, not represented as native Calc execution.