PERCENTRANK.EXC Function (Gnumeric)
Use Gnumeric PERCENTRANK.EXC for n+1 ranks. See ties, interpolation, truncated decimals, singleton behavior and native boundary checks.
Verification status: 25 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: =PERCENTRANK.EXC(F2:F6,1) gives 0.166 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 PERCENTRANK.EXC returns
PERCENTRANK.EXC uses the exclusive n+1 rank convention. With n>1 distinct values, the minimum’s untruncated rank is 1/(n+1) and the maximum’s is n/(n+1). The word exclusive describes the ordinary rank scale; it does not guarantee every edge case returns a value strictly between 0 and 1. Versioned function help.
Syntax and arguments
=PERCENTRANK.EXC(array,x[,significance])
array: numeric observations; referenced text, logical values and empty cells are ignored.x: a value from the observed numeric minimum through maximum.significance: optional decimal precision, default 3. Results are truncated at that precision, rather than rounded.
Brackets mark optional arguments; do not type them. Current implementation.
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 |
|---|---|
=PERCENTRANK.EXC(F2:F6,1) |
0.166 |
=PERCENTRANK.EXC(F2:F6,3) |
0.5 |
=PERCENTRANK.EXC(F2:F6,10) |
0.833 |
=PERCENTRANK.EXC(F2:F6,2.5) |
0.416 |
=PERCENTRANK.EXC(F2:F6,7) |
0.75 |
=PERCENTRANK.EXC(G2:G6,20) |
0.333 |
=PERCENTRANK.EXC(G2:G6,30) |
0.583 |
=PERCENTRANK.EXC(G2:G6,40,5) |
0.66666 |
Practical worksheet
For 1,2,3,4,10 in F2:F6, the minimum ranks 1/6, shown by default as 0.166, and the maximum ranks 5/6, shown as 0.833. The middle observation 3 ranks exactly 0.5.
In G2:G6, the tied value 20 uses the first tied position, giving 2/6 and default output 0.333. A value 30 lies halfway between the last 20 and 40, giving 3.5/6 and default output 0.583. These are positional conventions, not estimated tail probabilities.
Advanced interpretation and checks
For an exact match with n>1, the untruncated rank is (number_strictly_smaller+1)/(n+1). Between observations, interpolate between adjacent positions on that scale. With five decimal places, the rank of 40 in G2:G6 is 0.66666. Reducing precision can materially change subsequent calculations.
For this distinct dataset, the native check =PERCENTRANK.EXC(F2:F6,PERCENTILE.EXC(F2:F6,0.625),6) returns 0.625. This is not a general inverse identity for tied data or heavily truncated output. A matching singleton returns 1, even with significance 0; that special case is explicitly present in source.
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. The decimal scale calls the integer-exponent helper: Gnumeric mapping and the tested GOffice 0.10.57 declaration. This explains the native fractional-significance example; using an integer remains clearer.
Boundaries and troubleshooting
An empty numeric dataset returns #NUM!, and x outside its observed range returns #N/A. Significance below 1 is rejected for datasets with more than one value. The tested fractional setting 2.5 uses 2 decimal places, and 400 returns #DIV/0!. Use positive integer precision and handle singletons explicitly.
| Formula | Gnumeric 1.12.57 result |
|---|---|
=PERCENTRANK.EXC(F2:F6,0) |
#N/A |
=PERCENTRANK.EXC(F2:F6,11) |
#N/A |
=PERCENTRANK.EXC(F7,1) |
#NUM! |
=PERCENTRANK.EXC(F2,1) |
1 |
=PERCENTRANK.EXC(F2,1,0) |
1 |
=PERCENTRANK.EXC(F2,2,0) |
#N/A |
=PERCENTRANK.EXC(L2:L6,5) |
0.166 |
=PERCENTRANK.EXC(F2:F6,2,0) |
#NUM! |
=PERCENTRANK.EXC(F2:F6,2,0.9) |
#NUM! |
=PERCENTRANK.EXC(F2:F6,2,2.5) |
0.33 |
=PERCENTRANK.EXC(F2:F6,2,400) |
#DIV/0! |
=PERCENTRANK.EXC(H2:H6,1) |
1 |
=PERCENTRANK.EXC(F2:F6,2) |
0.333 |
=PERCENTRANK.EXC(F2:F6,2,1) |
0.3 |
=PERCENTRANK.EXC(F2:F6) |
#N/A |
=PERCENTRANK.EXC(F2:F6,2,3,4) |
#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.
Related guides
PERCENTILE, RANK, MEDIAN.