Statistical functions
PERCENTILE.EXC
Matches all 5 recorded answers
Recorded: 5 workbook cells. How we measure this · See the Rust code
Local names in 40 languages
| Language | Name in Excel |
|---|---|
| Arabic | PERCENTILE.EXC |
| Bulgarian | PERCENTILE.EXC |
| Czech | PERCENTIL.EXC |
| Danish | FRAKTIL.UDELAD |
| German | PERCENTILE.EXC |
| Greek | PERCENTILE.EXC |
| English (Australia) | PERCENTILE.EXC |
| English (United Kingdom) | PERCENTILE.EXC |
| English (United States) | PERCENTILE.EXC |
| Spanish | PERCENTIL.EXC |
| Estonian | PERCENTILE.EXC |
| Finnish | PROSENTTIPISTE.ULK |
| French | CENTILE.EXCLURE |
| Hebrew | PERCENTILE.EXC |
| Croatian | PERCENTILE.EXC |
| Hungarian | PERCENTILIS.KIZÁR |
| Indonesian | PERCENTILE.EXC |
| Italian | PERCENTILE.EXC |
| Japanese | PERCENTILE.EXC |
| Korean | PERCENTILE.EXC |
| Lithuanian | PERCENTILE.EXC |
| Latvian | PERCENTILE.EXC |
| Norwegian | PERCENTILE.EXC |
| Dutch | PERCENTIEL.EXC |
| Polish | PERCENTYL.PRZEDZ.OTW |
| Portuguese (Brazil) | PERCENTILE.EXC |
| Portuguese (Portugal) | PERCENTIL.EXC |
| Romanian | PERCENTILE.EXC |
| Russian | ПРОЦЕНТИЛЬ.ИСКЛ |
| Slovak | PERCENTILE.EXC |
| Slovenian | PERCENTILE.EXC |
| Serbian (Latin) | PERCENTILE.EXC |
| Swedish | PERCENTIL.EXK |
| Thai | PERCENTILE.EXC |
| Turkish | YÜZDEBİRLİK.HRC |
| Ukrainian | PERCENTILE.EXC |
| Vietnamese | PERCENTILE.EXC |
| Chinese (Simplified) | PERCENTILE.EXC |
| Chinese (Hong Kong) | PERCENTILE.EXC |
| Chinese (Traditional) | PERCENTILE.EXC |
Names from Microsoft's support site.
What it does
PERCENTILE.EXC(array, k)
PERCENTILE.EXC(array,k) returns the data value at fractional position k in sorted numeric observations. It uses the exclusive convention, whose positions are based on n+1; the endpoints zero and one are excluded.
Try it
=PERCENTILE.EXC({10,20,30,40},0.25) returns 12.5: its one-based position is 5*0.25=1.25, a quarter of the distance from ten to twenty.
For these four observations, k=0.2 reaches the minimum ten and k=0.8 the maximum forty. k=0.1 is below the first supported position and gives #NUM!. Being strictly between zero and one is necessary but does not guarantee an interpolable position.
Quirks
An empty numeric set gives #NUM!; nonnumeric k gives #VALUE!. Zero and one are excluded. In exact arithmetic, n observations support fractions from 1/(n+1) through n/(n+1); outside that interval the function does not extrapolate.
Referenced text, logical values and blanks are not additional numeric observations. Zeros and repeated numbers do count, so deleting them changes the rank positions. The current helper with one observation accepts the middle position k=0.5 and returns that observation; other fractions fall outside its one-position interval. These collection and indexing rules are separate from floating-point boundary rounding.
How to implement
- Collect and sort the admitted numeric observations, keeping duplicates. Reject an empty set.
- Form the one-based rank
h=k*(n+1)in binary64. Reject it ifh<1orh>n; no neighbouring values exist for extrapolation beyond those bounds. - Set
j=floor(h)andu=ceil(h). An integral rank returns sorted observationjdirectly. - Otherwise interpolate
lower+(h-j)*(upper-lower)between observationsjandu, after converting one-based positions to array indices.
With four observations and k=0.25, h=1.25, so the result is 10+0.25*(20-10)=12.5. The inclusive convention uses 1+k*(n-1)=1.75 on the same data and consequently gives 17.5.
This is the current helper’s rank construction, with ordinary binary64 interpolation. Exact floating-point endpoint edges and last-bit agreement for arbitrary Excel data sets are not established by these worked examples. A different percentile convention cannot be repaired merely by changing output formatting.
Rust code
Show the CalcFunc source of this function
Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.
PERCENTILE.EXC · 1 lines · calc-func/src/catalogue/statistics.rs on GitHub16 percentile_exc "PERCENTILE.EXC" (2, 2) [R "array", V "k"] |s, a, sv| { percentile(s, a, sv, true) }
Kernels shared with other functions
listcatalogue/statisticspercentilecatalogue/statisticspercentile_inc_kernelported/percentile_commonpercentile_exc_kernelported/percentile_commoninterpolate_sortedported/percentile_common
Argument and result plumbing
No implementation has been published with a Handbook test suite for this function.
Version differences
No same-input comparison between named Excel builds is recorded for this function here. The documented behaviour below is not a measurement of every Excel release.
Alternatives
PERCENTILE.INC includes the endpoint convention. QUARTILE.EXC selects exclusive quarter positions; PERCENTRANK.EXC maps a value to a fractional standing.
Named variants
No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents