Compatibility

FINV

Known larger differences on 32 of 37 recorded answers

Of 37 recorded answers (32 in the answer bank and 5 workbook cells), 32 do not match: 3 differ by more than 16 ULP, 29 differ by at most 16 ULP. How we measure this · See the Rust code

Local names in 40 languages
LanguageName in Excel
ArabicFINV
BulgarianFINV
CzechFINV
DanishFINV
GermanFINV
GreekFINV
English (Australia)FINV
English (United Kingdom)FINV
English (United States)FINV
SpanishDISTR.F.INV
EstonianFINV
FinnishFJAKAUMA.KÄÄNT
FrenchINVERSE.LOI.F
HebrewFINV
CroatianFINV
HungarianINVERZ.F
IndonesianFINV
ItalianFINV
JapaneseFINV
KoreanFINV
LithuanianFINV
LatvianFINV
NorwegianFINV
DutchF.INVERSE
PolishROZKŁAD.F.ODW
Portuguese (Brazil)FINV
Portuguese (Portugal)INVF
RomanianFINV
RussianFРАСПОБР
SlovakFINV
SlovenianFINV
Serbian (Latin)FINV
SwedishFINV
ThaiFINV
TurkishFTERS işlevi
UkrainianFINV
VietnameseFINV
Chinese (Simplified)FINV
Chinese (Hong Kong)FINV
Chinese (Traditional)FINV

Names from Microsoft's support site.

What it does

FINV(probability, deg_freedom1, deg_freedom2)

FINV(probability, deg_freedom1, deg_freedom2) finds an F-distribution value from a right-tail probability. The first degree count belongs to the numerator and the second to the denominator. This is a compatibility spelling.

Try it

Input cells (optional)

Example: {"B2": 3, "B3": 4}. A1 holds the formula. Other cells need values before a formula can read them.

Enter a formula, then calculate.

Runs locally in your browser with OneCalc. Its answer may differ from Excel. Use English function names and commas between arguments.

=FINV(0.25,2,2) is about 3. With both degree counts two, the mathematical left CDF is x/(1+x) and the right tail is 1/(1+x).

Quirks

Degree counts are truncated. Nonnumeric arguments give #VALUE!; invalid counts or probabilities give #NUM!. The current shared inverse admits each truncated degree from one through 10^10 and requires an open probability interval 0<p<1.

The Microsoft FINV page documents degree counts strictly below 10^10 and #N/A after 100 unsuccessful iterations. Keep the documentation and the current code’s boundary tests distinct: a source guard alone is not an additional Excel measurement.

A left-CDF probability and a right-tail probability select different quantiles. Subtracting an extremely small right-tail probability from one can round to one and lose the target entirely.

How to implement

The current right-tail candidate uses an accurate pair of beta arguments and solves the decreasing tail directly. Let D mean ordinary binary64 storage and I_z(a,b) the regularized lower beta ratio.

  1. Truncate and validate numerator degrees d1 and denominator degrees d2; require 0<p<1.
  2. At each nonnegative trial x, form num=D(d1*x) and den=D(d2+num). Compute z=D(d2/den) and w=D(num/den) separately, then the paired beta helper bratio(d2/2,d1/2,z,w).first. Do not construct w as 1-z.
  3. Negate that tail to obtain an increasing function H and set target to -p. Start with lo=0,hi=1; double hi until H(hi) reaches the target, with at most 200 expansion checks.
  4. Use the ordered-binary64 search: bisect the endpoint encodings until adjacent, and return the upper endpoint. The search is over the stored forward surface, not an exact real beta function.

For d1=d2=2 the mathematical tail is 1/(1+x). At p=0.25, solving 1/(1+x)=0.25 yields three.

The beta routine, its complement pair and the adjacent-value return are separate numerical stages. A beta-quantile transform x=d2*z/(d1*(1-z)) is another mathematical route with different stores. The source’s problem report retains unresolved distribution mismatches; neither route identifies every Excel approximation or certifies the full function.

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.

FINV · 4 lines · calc-func/src/catalogue/distributions.rs on GitHub
35 finv "FINV" (3, 3) [V "probability", V "deg_freedom1", V "deg_freedom2"] |s, a, sv| {
    let [p, d1, d2] = nums::<3>(s, a)?;
    out(s, cft::f_inv_rt_kernel(p, d1, d2))
}

Kernels shared with other functions

Argument and result plumbing

  • num catalogue/kit
  • out catalogue/kit

No implementation has been published with a Handbook test suite for this function.

Version differences

The recorded environments below distinguish a reading from a same-input comparison. Counts describe captured inputs in each environment; overlapping captures and comparisons are not totals of unique worksheet calls.

Excel 16.0 buildPlatform and CPUCaptured inputs
19929Windows, bitness not recorded, CPU not recorded80
20131Windows, bitness not recorded, AMD Ryzen 7 4800H with Radeon Graphics32

The record contains no same-input comparison between these environments. Reading different inputs on different builds does not establish either a version change or cross-build agreement.

Recorded environments and comparison details.

Excel 16.0 build 19929

Windows, bitness not recorded, CPU not recorded

80 captured inputs are indexed for this environment. Capture dates are not recorded. This is a reading count, not a comparison with another build.

Excel 16.0 build 20131

Windows, bitness not recorded, AMD Ryzen 7 4800H with Radeon Graphics

32 captured inputs are indexed for this environment. Capture dates: 2026-07-17 to 2026-07-17. This is a reading count, not a comparison with another build.

Alternatives

F.DIST.RT gives a forward probability; F.INV.RT gives a critical value; F.TEST starts from samples.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents