PERCENTILE.EXC Function (Gnumeric)
Use Gnumeric PERCENTILE.EXC with its n+1 interpolation rule. See valid probability bounds, small samples, native examples and empty-range errors.
Verification status: 22 reference, boundary and advanced-check formulas were recalculated with Gnumeric 1.12.57 ssconvert. Typed inputs, saved formula identities and results were independently checked. Gnumeric 1.12.62 was source-checked only. How formula examples are checked
Quick answer: =PERCENTILE.EXC(F2:F6,0.25) gives 1.5 in Gnumeric 1.12.57.
Availability and version history
- Introduced: Gnumeric 1.12.23 release notes record its addition.
- Supported in: Gnumeric 1.12.62; no retirement is established.
- Scope: Desktop Gnumeric with its Statistics plugin. English comma-separated formulas are shown.
- Checked: October 14, 2026. The tables and named advanced check use 1.12.57 ssconvert. Current 1.12.62 source was inspected; that release was not executed.
What PERCENTILE.EXC returns
PERCENTILE.EXC uses the exclusive, or Hyndman–Fan type 6, percentile convention. After sorting n numeric values, the one-based position is h=(n+1)*k. Integer positions select an observation; noninteger positions interpolate between adjacent observations. It does not extrapolate beyond the available data. Versioned function help.
Syntax and arguments
=PERCENTILE.EXC(array,k)
array: numeric data. Referenced strings, logical values and empty cells are ignored.k: requested percentile as a fraction, such as 0.25. There must be at least two numbers, and the supported interval is1/(n+1) ≤ k ≤ n/(n+1).
Reproducible examples
Enter these columns as numbers, except for the explicitly typed H column. F7 and H7 are genuinely empty.
| Row | F | G: ties | H: mixed storage | L: constant | M: reflected | N | O: shifted | P: scaled |
|---|---|---|---|---|---|---|---|---|
| 2 | 1 | 10 | number 1 | 5 | −1 | 1 | 101 | 2 |
| 3 | 2 | 20 | logical TRUE | 5 | −2 | 2 | 102 | 4 |
| 4 | 3 | 20 | logical FALSE | 5 | −3 | 3 | 103 | 6 |
| 5 | 4 | 40 | text 8 |
5 | −4 | 4 | 104 | 8 |
| 6 | 10 | 50 | text pending |
5 | −10 | empty | 110 | 20 |
Use an apostrophe entry marker if needed to store H5 as text; it is not part of the stored value. The results below are native outputs rounded to 12 decimal places for readability, rather than application screenshots.
| Formula | Gnumeric 1.12.57 result |
|---|---|
=PERCENTILE.EXC(F2:F6,0.25) |
1.5 |
=PERCENTILE.EXC(F2:F6,0.5) |
3 |
=PERCENTILE.EXC(F2:F6,0.75) |
7 |
=PERCENTILE.EXC(F2:F6,0.2) |
1.2 |
=PERCENTILE.EXC(F2:F6,0.8) |
8.8 |
=PERCENTILE.EXC(G2:G6,0.25) |
15 |
=PERCENTILE.EXC(G2:G6,0.75) |
45 |
=PERCENTILE.EXC(N2:N5,0.5) |
2.5 |
Practical worksheet
For F2:F6 containing 1,2,3,4,10, the 25th percentile has position 6×0.25=1.5, halfway between 1 and 2, so it is 1.5. The 75th percentile has position 4.5, halfway between 4 and 10, so it is 7.
These values are different from inclusive PERCENTILE’s n−1 convention. Name the convention when comparing a spreadsheet with another statistical package or a report.
Advanced interpretation and checks
If h=j+d with integer j and 0≤d<1, the result is sorted[j] + d*(sorted[j+1]−sorted[j]). At k=0.2, h=1.2 and the result is 1.2; at k=0.8, h=4.8 and it is 8.8. The native lower and upper boundary checks at 1/6 and 5/6 return 1 and 10.
For the tied dataset 10,20,20,40,50 in G2:G6, the first and third quartile positions give 15 and 45. The independently checked native expression =PERCENTILE.EXC(G2:G6,0.75)-PERCENTILE.EXC(G2:G6,0.25) gives the interquartile range 30. Ties are retained as repeated observations.
Version-specific source comparison
The relevant argument guards and calculation sequence are preserved in the retained 1.12.57 and 1.12.62 callbacks. This is a source comparison; later-release output was not tested.
Boundaries and troubleshooting
The simple condition 0<k<1 is insufficient for a small sample: k=0.1 and k=0.9 both fail for five observations. A singleton or empty numeric range also returns #NUM!. Do not force an extreme percentile by silently changing the interpolation method.
| Formula | Gnumeric 1.12.57 result |
|---|---|
=PERCENTILE.EXC(F2:F6,0) |
#NUM! |
=PERCENTILE.EXC(F2:F6,1) |
#NUM! |
=PERCENTILE.EXC(F2:F6,0.1) |
#NUM! |
=PERCENTILE.EXC(F2:F6,0.9) |
#NUM! |
=PERCENTILE.EXC(F2:F6,1/6) |
1 |
=PERCENTILE.EXC(F2:F6,5/6) |
10 |
=PERCENTILE.EXC(F2,0.5) |
#NUM! |
=PERCENTILE.EXC(F7,0.5) |
#NUM! |
=PERCENTILE.EXC(H2:H6,0.5) |
#NUM! |
=PERCENTILE.EXC(F2:F6,"0.5") |
3 |
=PERCENTILE.EXC(F2:F6,"abc") |
#VALUE! |
=PERCENTILE.EXC(F2:F6) |
#N/A |
=PERCENTILE.EXC(F2:F6,0.5,1) |
#N/A |
Official evidence and checking scope
Both the stale SUM cache and the uncached SUM recalculated correctly. Saved formula identities and typed inputs were checked in the native workbook exports. The importer reported unsupported style-extension elements; this does not establish complete formatting support. GUI entry, other locales and later-version execution were not tested.