T.INV
Quirk foundCategory: Statistical · Last tested 2026-09-01
Real compatibility results for the T.INV function: executed in Excel for the web, Google Sheets and LibreOffice Calc, with desktop Excel behavior from Microsoft’s official documentation (we do not run desktop Excel — Excel for the web is a different application and is executed separately). Syntax and links to that documentation are below.
Support matrix
| Engine | Documented | Live-tested | Verdict |
|---|---|---|---|
| Excel (desktop) | Yes | No — documented only | n/a |
| Excel for the web | — | Yes (recalc, 2026-09-01) | Supported, behaves as documented |
| Google Sheets | Yes | Yes (Drive import, 2026-08-31) | Supported, behaves as documented |
| LibreOffice Calc | Yes | Yes (25.8.7.3, 2026-08-31) | Quirk found |
LibreOffice version history
We executed the same test cases under each LibreOffice release to show exactly when T.INV’s support changed — not documentation claims, real results.
| LibreOffice version | Verdict | Tested |
|---|---|---|
| 24.2.0.3 | Quirk found | 2026-08-31 |
| 24.8.7.2 | Quirk found | 2026-08-31 |
| 25.2.0.3 | Quirk found | 2026-08-31 |
| 25.8.7.3 | Quirk found | 2026-08-31 |
Why isn't T.INV working in LibreOffice?
T.INV exists in LibreOffice 25.8.7.3, but it is not a drop-in match for
Excel — our executed tests found real behavioral differences (detailed in the test results on this
page). If a formula that works in Excel or Google Sheets misbehaves in LibreOffice, compare your usage
against the failing cases above before assuming your data is wrong.
Discovered quirks
-
=T.INV(0,2) on
LibreOffice Calc returned
#VALUE!, but the documented/expected
result is #NUM!.
Provenance
The Remarks publish: "If probability <= 0 or if probability > 1, T.INV returns the #NUM! error value." Note the asymmetry, which is Microsoft's: zero is excluded and ONE IS NOT, so probability = 1 is not listed as an error even though the left-tailed inverse there is unbounded.; MISMATCH vs expected: expected '#NUM!', got '#VALUE!'
-
=T.INV(0.75,0) on
LibreOffice Calc returned
#VALUE!, but the documented/expected
result is #NUM!.
Provenance
The Remarks publish: "If deg_freedom < 1, T.INV returns the #NUM! error value."; MISMATCH vs expected: expected '#NUM!', got '#VALUE!'
Executed test cases
Excel for the web (executed 2026-09-01 via OneDrive recalculation)
These values come from Excel for the web, not from desktop Excel. They are two different implementations of the calculation engine, and this run measured only the web one: the corpus was uploaded to OneDrive as .xlsx, recalculated by Excel for the web on open, and downloaded again for readback. Excel for the web is a rolling service with no pinnable version, so the run is identified by its date. Where a value here disagrees with the Expected column — which is Microsoft’s documentation of the desktop product — we cannot tell you whether the web engine diverges from the desktop one or the documentation is wrong about both, because we do not run desktop Excel.
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =ROUND(T.INV(0.75,2),7) | Microsoft's only documented example, at the seven decimals it publishes | 0.8164966 | 0.8164966ProvenanceMicrosoft publishes =T.INV(0.75,2) = 0.8164966 ("The left-tailed inverse of the Student's t-distribution with a probability of 75% and 2 degrees of freedom"). DERIVATION, AND THIS ONE IS EXACT: at two degrees of freedom the t CDF has the elementary closed form F(t) = 1/2 + t/(2*sqrt(2+t^2)), so F(t) = 3/4 solves to t/(2*sqrt(2+t^2)) = 1/4, i.e. 4t^2 = 2 + t^2 and t = sqrt(2/3) = 0.8164965809277260327324 -- an exact surd, no iteration and no library. The general root find on the cross-checked CDF used by the rest of this family lands on the same digits, and so does scipy.stats.t.ppf(0.75, 2). Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/t-inv-function. FETCH NOTE FOR THIS BATCH: batch F recorded every /en-us/office/<name>-function-<guid> URL returning Microsoft's 'Sorry, the page you're looking for can't be found' body; today BOTH paths serve the article again -- the GUID form redirects to /en-us/excel/functions/<slug>-function -- and every page cited in this batch came back complete (217-223 KB) in one or two attempts, with no 87 KB stub responses. Nothing here is sourced from a search snippet or a mirror. |
Matched |
| =ROUND(T.INV(0.75,2),12) | The same example carried to twelve decimals | 0.816496580928 | 0.816496580928ProvenanceAsserted at twelve places from the exact surd sqrt(2/3): 0.816496580928. Seven published decimals cannot see an iterative inverse that stops one iteration early. |
Matched |
| =ROUND(T.INV(0.5,7),12) | The median of a symmetric distribution is exactly zero | 0 | 0ProvenanceThe t distribution is symmetric about zero, so its 50th percentile is exactly 0 for every degrees of freedom. A structural assertion with no derived constant, and the sharpest single test of an inverse's centring: an engine whose root finder is biased returns a small non-zero number here. |
Matched |
| =ROUND(T.DIST(T.INV(0.3,9),9,TRUE),12) | The inverse fed back through the distribution must return the probability it started from | 0.3 | 0.3ProvenanceT.DIST(T.INV(p, v), v, TRUE) = p by definition of an inverse. A structural round trip with no derived constant, run at a probability below one half so it exercises the negative-x branch of both functions. It is the strongest available check that the two are inverses OF EACH OTHER in the same engine, which no single published value can establish. |
Matched |
| =ROUND(T.INV(0.95,10),9) | A probability where the left-tailed and two-tailed conventions give visibly different answers | 1.812461123 | 1.812461123ProvenanceT.INV IS LEFT-TAILED AND T.INV.2T IS TWO-TAILED, and this case makes the difference impossible to pass by accident. The left-tailed 95th percentile at 10 degrees of freedom is 1.812461122811676413626, derived by root find on the cross-checked CDF; the two-tailed T.INV.2T(0.95,10) is 0.0642981 and T.INV.2T(0.05,10) is 2.2281389. Microsoft publishes no figure for T.INV(0.95,10) -- the value is ours -- but it is the same number the T.INV.2T and TINV pages MEANT to publish for TINV(2*0.05,10), which is exactly the documented relationship between the two conventions and is why this probability was chosen. Those pages print 1.812462; the correctly rounded value is 1.812461, and the error is recorded in T.INV.2T.json and TINV.json. |
Matched |
| =T.INV(0,2) | A probability of zero, which the page excludes | #NUM! | #NUM!ProvenanceThe Remarks publish: "If probability <= 0 or if probability > 1, T.INV returns the #NUM! error value." Note the asymmetry, which is Microsoft's: zero is excluded and ONE IS NOT, so probability = 1 is not listed as an error even though the left-tailed inverse there is unbounded. |
Matched |
| =T.INV(0.75,0) | Zero degrees of freedom, which the page excludes | #NUM! | #NUM!ProvenanceThe Remarks publish: "If deg_freedom < 1, T.INV returns the #NUM! error value." |
Matched |
Google Sheets (executed 2026-08-31 via Drive import)
Google Sheets is a rolling service with no pinnable version, so this run is identified by its date. The corpus was imported to Drive as .xlsx, recalculated by Sheets, and exported back for readback.
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =ROUND(T.INV(0.75,2),7) | Microsoft's only documented example, at the seven decimals it publishes | 0.8164966 | 0.8164966ProvenanceMicrosoft publishes =T.INV(0.75,2) = 0.8164966 ("The left-tailed inverse of the Student's t-distribution with a probability of 75% and 2 degrees of freedom"). DERIVATION, AND THIS ONE IS EXACT: at two degrees of freedom the t CDF has the elementary closed form F(t) = 1/2 + t/(2*sqrt(2+t^2)), so F(t) = 3/4 solves to t/(2*sqrt(2+t^2)) = 1/4, i.e. 4t^2 = 2 + t^2 and t = sqrt(2/3) = 0.8164965809277260327324 -- an exact surd, no iteration and no library. The general root find on the cross-checked CDF used by the rest of this family lands on the same digits, and so does scipy.stats.t.ppf(0.75, 2). Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/t-inv-function. FETCH NOTE FOR THIS BATCH: batch F recorded every /en-us/office/<name>-function-<guid> URL returning Microsoft's 'Sorry, the page you're looking for can't be found' body; today BOTH paths serve the article again -- the GUID form redirects to /en-us/excel/functions/<slug>-function -- and every page cited in this batch came back complete (217-223 KB) in one or two attempts, with no 87 KB stub responses. Nothing here is sourced from a search snippet or a mirror. |
Matched |
| =ROUND(T.INV(0.75,2),12) | The same example carried to twelve decimals | 0.8164965809 | 0.816496580928ProvenanceAsserted at twelve places from the exact surd sqrt(2/3): 0.816496580928. Seven published decimals cannot see an iterative inverse that stops one iteration early. |
Matched |
| =ROUND(T.INV(0.5,7),12) | The median of a symmetric distribution is exactly zero | 0 | 0ProvenanceThe t distribution is symmetric about zero, so its 50th percentile is exactly 0 for every degrees of freedom. A structural assertion with no derived constant, and the sharpest single test of an inverse's centring: an engine whose root finder is biased returns a small non-zero number here. |
Matched |
| =ROUND(T.DIST(T.INV(0.3,9),9,TRUE),12) | The inverse fed back through the distribution must return the probability it started from | 0.3 | 0.3ProvenanceT.DIST(T.INV(p, v), v, TRUE) = p by definition of an inverse. A structural round trip with no derived constant, run at a probability below one half so it exercises the negative-x branch of both functions. It is the strongest available check that the two are inverses OF EACH OTHER in the same engine, which no single published value can establish. |
Matched |
| =ROUND(T.INV(0.95,10),9) | A probability where the left-tailed and two-tailed conventions give visibly different answers | 1.812461123 | 1.812461123ProvenanceT.INV IS LEFT-TAILED AND T.INV.2T IS TWO-TAILED, and this case makes the difference impossible to pass by accident. The left-tailed 95th percentile at 10 degrees of freedom is 1.812461122811676413626, derived by root find on the cross-checked CDF; the two-tailed T.INV.2T(0.95,10) is 0.0642981 and T.INV.2T(0.05,10) is 2.2281389. Microsoft publishes no figure for T.INV(0.95,10) -- the value is ours -- but it is the same number the T.INV.2T and TINV pages MEANT to publish for TINV(2*0.05,10), which is exactly the documented relationship between the two conventions and is why this probability was chosen. Those pages print 1.812462; the correctly rounded value is 1.812461, and the error is recorded in T.INV.2T.json and TINV.json. |
Matched |
| =T.INV(0,2) | A probability of zero, which the page excludes | #NUM! | #NUM!ProvenanceThe Remarks publish: "If probability <= 0 or if probability > 1, T.INV returns the #NUM! error value." Note the asymmetry, which is Microsoft's: zero is excluded and ONE IS NOT, so probability = 1 is not listed as an error even though the left-tailed inverse there is unbounded. |
Matched |
| =T.INV(0.75,0) | Zero degrees of freedom, which the page excludes | #NUM! | #NUM!ProvenanceThe Remarks publish: "If deg_freedom < 1, T.INV returns the #NUM! error value." |
Matched |
LibreOffice Calc 25.8.7.3 (tested 2026-08-31)
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =ROUND(T.INV(0.75,2),7) | Microsoft's only documented example, at the seven decimals it publishes | 0.8164966 | 0.8164966ProvenanceMicrosoft publishes =T.INV(0.75,2) = 0.8164966 ("The left-tailed inverse of the Student's t-distribution with a probability of 75% and 2 degrees of freedom"). DERIVATION, AND THIS ONE IS EXACT: at two degrees of freedom the t CDF has the elementary closed form F(t) = 1/2 + t/(2*sqrt(2+t^2)), so F(t) = 3/4 solves to t/(2*sqrt(2+t^2)) = 1/4, i.e. 4t^2 = 2 + t^2 and t = sqrt(2/3) = 0.8164965809277260327324 -- an exact surd, no iteration and no library. The general root find on the cross-checked CDF used by the rest of this family lands on the same digits, and so does scipy.stats.t.ppf(0.75, 2). Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/t-inv-function. FETCH NOTE FOR THIS BATCH: batch F recorded every /en-us/office/<name>-function-<guid> URL returning Microsoft's 'Sorry, the page you're looking for can't be found' body; today BOTH paths serve the article again -- the GUID form redirects to /en-us/excel/functions/<slug>-function -- and every page cited in this batch came back complete (217-223 KB) in one or two attempts, with no 87 KB stub responses. Nothing here is sourced from a search snippet or a mirror. |
Matched |
| =ROUND(T.INV(0.75,2),12) | The same example carried to twelve decimals | 0.816496580928 | 0.816496580928ProvenanceAsserted at twelve places from the exact surd sqrt(2/3): 0.816496580928. Seven published decimals cannot see an iterative inverse that stops one iteration early. |
Matched |
| =ROUND(T.INV(0.5,7),12) | The median of a symmetric distribution is exactly zero | 0 | 0ProvenanceThe t distribution is symmetric about zero, so its 50th percentile is exactly 0 for every degrees of freedom. A structural assertion with no derived constant, and the sharpest single test of an inverse's centring: an engine whose root finder is biased returns a small non-zero number here. |
Matched |
| =ROUND(T.DIST(T.INV(0.3,9),9,TRUE),12) | The inverse fed back through the distribution must return the probability it started from | 0.3 | 0.3ProvenanceT.DIST(T.INV(p, v), v, TRUE) = p by definition of an inverse. A structural round trip with no derived constant, run at a probability below one half so it exercises the negative-x branch of both functions. It is the strongest available check that the two are inverses OF EACH OTHER in the same engine, which no single published value can establish. |
Matched |
| =ROUND(T.INV(0.95,10),9) | A probability where the left-tailed and two-tailed conventions give visibly different answers | 1.812461123 | 1.812461123ProvenanceT.INV IS LEFT-TAILED AND T.INV.2T IS TWO-TAILED, and this case makes the difference impossible to pass by accident. The left-tailed 95th percentile at 10 degrees of freedom is 1.812461122811676413626, derived by root find on the cross-checked CDF; the two-tailed T.INV.2T(0.95,10) is 0.0642981 and T.INV.2T(0.05,10) is 2.2281389. Microsoft publishes no figure for T.INV(0.95,10) -- the value is ours -- but it is the same number the T.INV.2T and TINV pages MEANT to publish for TINV(2*0.05,10), which is exactly the documented relationship between the two conventions and is why this probability was chosen. Those pages print 1.812462; the correctly rounded value is 1.812461, and the error is recorded in T.INV.2T.json and TINV.json. |
Matched |
| =T.INV(0,2) | A probability of zero, which the page excludes | #VALUE! | #NUM!ProvenanceThe Remarks publish: "If probability <= 0 or if probability > 1, T.INV returns the #NUM! error value." Note the asymmetry, which is Microsoft's: zero is excluded and ONE IS NOT, so probability = 1 is not listed as an error even though the left-tailed inverse there is unbounded. |
Mismatch |
| =T.INV(0.75,0) | Zero degrees of freedom, which the page excludes | #VALUE! | #NUM!ProvenanceThe Remarks publish: "If deg_freedom < 1, T.INV returns the #NUM! error value." |
Mismatch |
Docs & syntax
- Excel (desktop): official documentation
- Google Sheets: official documentation
- LibreOffice Calc: official documentation