PERCENTRANK Function (Gnumeric)
Rank a value in Gnumeric with PERCENTRANK. Learn n−1 interpolation, duplicate handling, decimal truncation and native singleton and range limits.
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(F2:F6,1) gives 0 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 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 returns
PERCENTRANK places x within the numeric dataset using an n−1 denominator. For distinct observations, the minimum has rank 0 and maximum has rank 1. Between observations it interpolates. The result is a relative rank, not a fitted probability or a hypothesis-test p-value. Versioned function help.
Syntax and arguments
=PERCENTRANK(array,x[,significance])
array: numeric values; referenced text, booleans and blanks are ignored.x: value to rank, within the numeric minimum and maximum.significance: optional precision, default 3. Ordinary integer values specify decimal places after the decimal point; the result is truncated, not 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(F2:F6,1) |
0 |
=PERCENTRANK(F2:F6,3) |
0.5 |
=PERCENTRANK(F2:F6,10) |
1 |
=PERCENTRANK(F2:F6,2.5) |
0.375 |
=PERCENTRANK(F2:F6,7) |
0.875 |
=PERCENTRANK(G2:G6,20) |
0.25 |
=PERCENTRANK(G2:G6,30) |
0.625 |
=PERCENTRANK(G2:G6,40,5) |
0.75 |
Practical worksheet
For F2:F6 containing 1,2,3,4,10, x=2.5 is halfway between the second and third ordered observations. Its rank is 0.375. The median value 3 ranks 0.5; the maximum 10 ranks 1.
For G2:G6 containing 10,20,20,40,50, a tied 20 receives the first tied position, giving 0.25. It does not receive the average tied rank. A value 30 lies between the last 20 and 40, giving 0.625. This distinction matters when comparing tied and interpolated values.
Advanced interpretation and checks
For an exact match in a dataset with n>1, the untruncated rank is number_strictly_smaller/(n−1). Between values, interpolate between the adjacent ordered positions. At one decimal place, the rank 0.25 is truncated to 0.2. Changing the cell’s display format does not recover the precision already discarded by the function.
The native cross-check =PERCENTRANK(F2:F6,PERCENTILE(F2:F6,0.625),6) returns 0.625 for this distinct dataset. Ties can prevent such inverse agreement. A singleton matching x returns 1, and bypasses the usual significance validation; an all-equal five-value set returns 0 at its matching value.
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
Outside-range x produces #N/A, and an empty numeric range gives #NUM!. For more than one value, significance below 1 gives #NUM!. In the tested build 2.5 acts as 2 decimal places, while 400 underflows the decimal scale and produces #DIV/0!. Prefer small positive integer precision settings.
| Formula | Gnumeric 1.12.57 result |
|---|---|
=PERCENTRANK(F2:F6,0) |
#N/A |
=PERCENTRANK(F2:F6,11) |
#N/A |
=PERCENTRANK(F7,1) |
#NUM! |
=PERCENTRANK(F2,1) |
1 |
=PERCENTRANK(F2,1,0) |
1 |
=PERCENTRANK(F2,2,0) |
#N/A |
=PERCENTRANK(L2:L6,5) |
0 |
=PERCENTRANK(F2:F6,2,0) |
#NUM! |
=PERCENTRANK(F2:F6,2,0.9) |
#NUM! |
=PERCENTRANK(F2:F6,2,2.5) |
0.25 |
=PERCENTRANK(F2:F6,2,400) |
#DIV/0! |
=PERCENTRANK(H2:H6,1) |
1 |
=PERCENTRANK(F2:F6,2) |
0.25 |
=PERCENTRANK(F2:F6,2,1) |
0.2 |
=PERCENTRANK(F2:F6) |
#N/A |
=PERCENTRANK(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.