Contact

R.QLNORM Function (Gnumeric)

Statistical Intermediate Gnumeric

Find lognormal cutoffs with Gnumeric R.QLNORM. Check tail and log-probability inputs, normal-scale parameters, endpoint behavior and zero-spread differences.

Verification status: 24 reference, boundary and advanced-check formulas were recalculated with Gnumeric 1.12.57 ssconvert. Saved identities, the blank input and numerical results were independently checked. Gnumeric 1.12.62 was source-checked only. How formula examples are checked

Quick answer: =R.QLNORM(.5,0,1) gives 1 in Gnumeric 1.12.57.

Availability and version history

  • Introduced: First release not established; present in the retained 1.12.57 source.
  • Supported in: Gnumeric 1.12.62; no retirement is established.
  • Scope: Desktop Gnumeric with its Statistical Functions From R plugin. English comma-separated formulas are shown.
  • Checked: October 14, 2026. Tables and the named advanced check use 1.12.57 ssconvert. Current 1.12.62 source was inspected; that release was not executed.

What R.QLNORM returns

R.QLNORM returns a lognormal quantile. For a lower-tail probability p strictly between 0 and 1, it is EXP(logmean+logsd×standardNormalQuantile(p)). Upper-tail mode interprets the input as P(X>x); log_p means that the input is already a natural log probability. Versioned function help.

Syntax and arguments

=R.QLNORM(probability,logmean,logsd[,lower_tail[,log_p]])

Probability, logmean and logsd are required. Optional lower_tail defaults to TRUE and log_p to FALSE. Use positive logsd for an ordinary continuous distribution. This quantile implementation also accepts zero logsd for interior probabilities, unlike R.DLNORM and R.PLNORM.

Brackets mark optional arguments; do not type them. Current worksheet implementation.

Reproducible examples

These self-contained formulas were recalculated natively. Ordinary-domain results were checked against independent mathematics; source guards explain the boundary cases. Results are rounded to twelve decimal places, or thirteen significant digits for small nonzero values. This is presentation precision, not a universal accuracy guarantee.

Formula Gnumeric 1.12.57 result
=R.QLNORM(.5,0,1) 1
=R.QLNORM(.9,0,1) 3.602224479279
=R.QLNORM(.1,0,1,FALSE()) 3.602224479279
=R.QLNORM(LN(.1),0,1,FALSE(),TRUE()) 3.602224479279
=R.QLNORM(.5,1,.5) 2.718281828459
=R.QLNORM(.25,0,.5) 0.713734042808
=R.QLNORM(0,0,1) 0
=R.QLNORM(.5,0,0) 1

Practical worksheet

For logmean=0 and logsd=1, the median is 1. The 90th percentile is approximately 3.602224479279. Supplying upper-tail probability 0.1 gives the same cutoff, as does supplying LN(0.1) with lower_tail=FALSE and log_p=TRUE.

A median with logmean=1 is EXP(1), approximately 2.718281828459. Changing logsd changes the distance of noncentral quantiles from the median on the logarithmic scale; it does not move that median.

Advanced interpretation and checks

The saved roundtrip below evaluates the positive-cutoff CDF at the 90th-percentile result and recovers 0.9. Because the cutoff is positive, it does not exercise R.PLNORM’s nonpositive-cutoff upper-tail defect.

For a central 80% interval, calculate lower probabilities 0.1 and 0.9 using the same parameters. With μ=0 and σ=1 the endpoints are reciprocal, since opposite normal quantiles exponentiate to reciprocal values. The interval is asymmetric around its median on the original scale.

The saved advanced-check result for =R.PLNORM(R.QLNORM(.9,0,1),0,1) was 0.9.

Boundaries and troubleshooting

Lower probability 0 gives zero; lower probability 1 leads to an infinite quantile and #NUM!. Upper-tail endpoints reverse those outcomes. Log probability 0 represents probability 1, not zero. Inputs outside the probability domain give #NUM!.

At logsd=0, an interior probability gives EXP(logmean), but endpoints still follow the underlying normal-quantile boundary rules. A tested negative-logsd call at probability zero also returned zero because the endpoint branch precedes the spread guard; do not treat that as a valid negative-spread distribution. Nonnumeric text gives #VALUE!, empty F5 becomes zero, and wrong arity gives #N/A.

F5 is genuinely empty, rather than a cell containing an empty string.

Formula Gnumeric 1.12.57 result
=R.QLNORM(1,0,1) #NUM!
=R.QLNORM(0,0,1,FALSE()) #NUM!
=R.QLNORM(1,0,1,FALSE()) 0
=R.QLNORM(-.1,0,1) #NUM!
=R.QLNORM(1.1,0,1) #NUM!
=R.QLNORM(.5,0,-1) #NUM!
=R.QLNORM(0,0,-1) 0
=R.QLNORM(0,0,0) 0
=R.QLNORM(1,0,0) #NUM!
=R.QLNORM(0,0,1,TRUE(),TRUE()) #NUM!
=R.QLNORM(1,0,1,TRUE(),TRUE()) #NUM!
=R.QLNORM("abc",0,1) #VALUE!
=R.QLNORM(F5,0,1) 0
=R.QLNORM(.5,0) #N/A
=R.QLNORM(.5,0,1,0,0,1) #N/A

Official evidence and checking scope

The relevant complete worksheet callback and main calculation helper are unchanged between the inspected versions. That does not establish later-version numerical execution. Both stale and uncached SUM controls recalculated correctly. Native XML preserves the R.* identities. The secondary ODF export keeps these calls in the ORG.GNUMERIC namespace; it does not establish execution in another product. GUI entry, other locales and other spreadsheet products were not tested.