T.DIST
Quirk foundCategory: Statistical · Last tested 2026-09-01
Real compatibility results for the T.DIST 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) | Quirk found |
| Google Sheets | Yes | Yes (Drive import, 2026-08-31) | Quirk found |
| 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.DIST’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.DIST working in LibreOffice?
T.DIST 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.
Why isn’t T.DIST working in Google Sheets?
T.DIST runs in Google Sheets, but our executed cases show it does not match
Excel’s documented behavior on every input (the failing cases are listed on this page). If a
formula that behaves one way in Excel gives you a different answer in Sheets, compare your usage
against those cases before assuming your data is wrong.
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.DIST(60,1,TRUE),8) | Microsoft's first documented example: the cumulative distribution at 60 with one degree of freedom | 0.99469533 | 0.99469533ProvenanceMicrosoft publishes =T.DIST(60,1,TRUE) = 0.99469533 ("Student's left-tailed t-distribution for 60, returned as the cumulative distribution function, using 1 degree of freedom"). DERIVATION -- and this batch derived the whole t family TWICE, along two paths that share no code: (1) the Student t CDF as the regularized incomplete beta 1 - I_{v/(v+x^2)}(v/2, 1/2)/2, and (2) NUMERICAL QUADRATURE of the t density gamma((v+1)/2)/(sqrt(v*pi)*gamma(v/2)) * (1+x^2/v)^(-(v+1)/2), integrated as a TAIL from x to infinity so the heavy tail carries the error rather than the answer. The two agree to 25 significant digits on every point asserted in this batch, and scipy.stats.t reproduces each of them to double precision as a third check. Inverses are ROOT-FOUND on that cross-checked CDF, never taken from a statistics library's own inverse. The value is 0.9946953263673767294563 at 50 digits, i.e. 0.99469533 at the published precision. With v = 1 the t distribution is Cauchy and the CDF has the closed form 1/2 + arctan(x)/pi, which gives the same digits -- a fourth, exact check available only at this one degree of freedom. Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/t-dist-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.DIST(8,3,FALSE),8) | Microsoft's second documented example: the probability density at 8 with three degrees of freedom | 0.00073691 | 0.00073691ProvenanceMicrosoft publishes =T.DIST(8,3,FALSE) = 0.00073691 ("...returned as the probability density function, using 3 degrees of freedom"). Derived from the density formula above at 50 digits: 0.0007369065209469263303782, i.e. 0.00073691 at the published precision. This is the case that pins the cumulative flag down: an engine ignoring FALSE and returning the CDF would give 0.99796, three orders of magnitude away. |
Matched |
| =ROUND(T.DIST(60,1,TRUE),12) | The cumulative example carried to twelve decimals | 0.994695326367 | 0.994695326367ProvenanceAsserted at twelve places from the derivation: 0.994695326367. Eight published decimals are not enough to separate a correct heavy-tail integration from an approximation that is good to 1e-9. |
Matched |
| =ROUND(T.DIST(1.5,7,TRUE)+T.DIST(-1.5,7,TRUE),12) | The t distribution is symmetric, so the two tails must sum to exactly one | 1 | 1ProvenanceF(x) + F(-x) = 1 for any symmetric distribution. A structural assertion with no derived constant, and a sharp one for the CDF: it fails for an engine whose incomplete-beta branch is wrong on one side of zero, which is exactly the failure mode a single positive-x example cannot see. |
Matched |
| =ROUND(T.DIST(2.5,9,FALSE)-T.DIST(-2.5,9,FALSE),15) | The density is an even function, so a sign flip must change nothing | 0 | 0ProvenanceThe t density depends on x only through x^2, so it is exactly even. A structural assertion with no derived constant. |
Matched |
| =T.DIST(1,0,TRUE) | Zero degrees of freedom, which the page excludes but does NOT assign a code to | #NUM! | ProvenanceDELIBERATELY ASSERTS NOTHING, AND THE REASON IS A GAP IN THE PAGE. The T.DIST Remarks publish "If deg_freedom < 1, T.DIST returns an error value. Deg_freedom needs to be at least 1" -- an ERROR VALUE, unnamed. Every sibling page in this family (T.DIST.2T, T.DIST.RT, T.INV, T.INV.2T) names #NUM! for the same condition, so #NUM! is the obvious guess, but it IS a guess and this corpus does not assert guesses about which of Excel's eight error codes appears. The case records what each engine returns without scoring it. |
Error |
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.DIST(60,1,TRUE),8) | Microsoft's first documented example: the cumulative distribution at 60 with one degree of freedom | 0.99469533 | 0.99469533ProvenanceMicrosoft publishes =T.DIST(60,1,TRUE) = 0.99469533 ("Student's left-tailed t-distribution for 60, returned as the cumulative distribution function, using 1 degree of freedom"). DERIVATION -- and this batch derived the whole t family TWICE, along two paths that share no code: (1) the Student t CDF as the regularized incomplete beta 1 - I_{v/(v+x^2)}(v/2, 1/2)/2, and (2) NUMERICAL QUADRATURE of the t density gamma((v+1)/2)/(sqrt(v*pi)*gamma(v/2)) * (1+x^2/v)^(-(v+1)/2), integrated as a TAIL from x to infinity so the heavy tail carries the error rather than the answer. The two agree to 25 significant digits on every point asserted in this batch, and scipy.stats.t reproduces each of them to double precision as a third check. Inverses are ROOT-FOUND on that cross-checked CDF, never taken from a statistics library's own inverse. The value is 0.9946953263673767294563 at 50 digits, i.e. 0.99469533 at the published precision. With v = 1 the t distribution is Cauchy and the CDF has the closed form 1/2 + arctan(x)/pi, which gives the same digits -- a fourth, exact check available only at this one degree of freedom. Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/t-dist-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.DIST(8,3,FALSE),8) | Microsoft's second documented example: the probability density at 8 with three degrees of freedom | 0.00073691 | 0.00073691ProvenanceMicrosoft publishes =T.DIST(8,3,FALSE) = 0.00073691 ("...returned as the probability density function, using 3 degrees of freedom"). Derived from the density formula above at 50 digits: 0.0007369065209469263303782, i.e. 0.00073691 at the published precision. This is the case that pins the cumulative flag down: an engine ignoring FALSE and returning the CDF would give 0.99796, three orders of magnitude away. |
Matched |
| =ROUND(T.DIST(60,1,TRUE),12) | The cumulative example carried to twelve decimals | 0.9946953264 | 0.994695326367ProvenanceAsserted at twelve places from the derivation: 0.994695326367. Eight published decimals are not enough to separate a correct heavy-tail integration from an approximation that is good to 1e-9. |
Matched |
| =ROUND(T.DIST(1.5,7,TRUE)+T.DIST(-1.5,7,TRUE),12) | The t distribution is symmetric, so the two tails must sum to exactly one | 1 | 1ProvenanceF(x) + F(-x) = 1 for any symmetric distribution. A structural assertion with no derived constant, and a sharp one for the CDF: it fails for an engine whose incomplete-beta branch is wrong on one side of zero, which is exactly the failure mode a single positive-x example cannot see. |
Matched |
| =ROUND(T.DIST(2.5,9,FALSE)-T.DIST(-2.5,9,FALSE),15) | The density is an even function, so a sign flip must change nothing | 0 | 0ProvenanceThe t density depends on x only through x^2, so it is exactly even. A structural assertion with no derived constant. |
Matched |
| =T.DIST(1,0,TRUE) | Zero degrees of freedom, which the page excludes but does NOT assign a code to | #NUM! | ProvenanceDELIBERATELY ASSERTS NOTHING, AND THE REASON IS A GAP IN THE PAGE. The T.DIST Remarks publish "If deg_freedom < 1, T.DIST returns an error value. Deg_freedom needs to be at least 1" -- an ERROR VALUE, unnamed. Every sibling page in this family (T.DIST.2T, T.DIST.RT, T.INV, T.INV.2T) names #NUM! for the same condition, so #NUM! is the obvious guess, but it IS a guess and this corpus does not assert guesses about which of Excel's eight error codes appears. The case records what each engine returns without scoring it. |
Error |
LibreOffice Calc 25.8.7.3 (tested 2026-08-31)
| Formula | Description | Result | Expected | Verdict |
|---|---|---|---|---|
| =ROUND(T.DIST(60,1,TRUE),8) | Microsoft's first documented example: the cumulative distribution at 60 with one degree of freedom | 0.99469533 | 0.99469533ProvenanceMicrosoft publishes =T.DIST(60,1,TRUE) = 0.99469533 ("Student's left-tailed t-distribution for 60, returned as the cumulative distribution function, using 1 degree of freedom"). DERIVATION -- and this batch derived the whole t family TWICE, along two paths that share no code: (1) the Student t CDF as the regularized incomplete beta 1 - I_{v/(v+x^2)}(v/2, 1/2)/2, and (2) NUMERICAL QUADRATURE of the t density gamma((v+1)/2)/(sqrt(v*pi)*gamma(v/2)) * (1+x^2/v)^(-(v+1)/2), integrated as a TAIL from x to infinity so the heavy tail carries the error rather than the answer. The two agree to 25 significant digits on every point asserted in this batch, and scipy.stats.t reproduces each of them to double precision as a third check. Inverses are ROOT-FOUND on that cross-checked CDF, never taken from a statistics library's own inverse. The value is 0.9946953263673767294563 at 50 digits, i.e. 0.99469533 at the published precision. With v = 1 the t distribution is Cauchy and the CDF has the closed form 1/2 + arctan(x)/pi, which gives the same digits -- a fourth, exact check available only at this one degree of freedom. Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/t-dist-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.DIST(8,3,FALSE),8) | Microsoft's second documented example: the probability density at 8 with three degrees of freedom | 0.00073691 | 0.00073691ProvenanceMicrosoft publishes =T.DIST(8,3,FALSE) = 0.00073691 ("...returned as the probability density function, using 3 degrees of freedom"). Derived from the density formula above at 50 digits: 0.0007369065209469263303782, i.e. 0.00073691 at the published precision. This is the case that pins the cumulative flag down: an engine ignoring FALSE and returning the CDF would give 0.99796, three orders of magnitude away. |
Matched |
| =ROUND(T.DIST(60,1,TRUE),12) | The cumulative example carried to twelve decimals | 0.994695326367 | 0.994695326367ProvenanceAsserted at twelve places from the derivation: 0.994695326367. Eight published decimals are not enough to separate a correct heavy-tail integration from an approximation that is good to 1e-9. |
Matched |
| =ROUND(T.DIST(1.5,7,TRUE)+T.DIST(-1.5,7,TRUE),12) | The t distribution is symmetric, so the two tails must sum to exactly one | 1 | 1ProvenanceF(x) + F(-x) = 1 for any symmetric distribution. A structural assertion with no derived constant, and a sharp one for the CDF: it fails for an engine whose incomplete-beta branch is wrong on one side of zero, which is exactly the failure mode a single positive-x example cannot see. |
Matched |
| =ROUND(T.DIST(2.5,9,FALSE)-T.DIST(-2.5,9,FALSE),15) | The density is an even function, so a sign flip must change nothing | 0 | 0ProvenanceThe t density depends on x only through x^2, so it is exactly even. A structural assertion with no derived constant. |
Matched |
| =T.DIST(1,0,TRUE) | Zero degrees of freedom, which the page excludes but does NOT assign a code to | #VALUE! | ProvenanceDELIBERATELY ASSERTS NOTHING, AND THE REASON IS A GAP IN THE PAGE. The T.DIST Remarks publish "If deg_freedom < 1, T.DIST returns an error value. Deg_freedom needs to be at least 1" -- an ERROR VALUE, unnamed. Every sibling page in this family (T.DIST.2T, T.DIST.RT, T.INV, T.INV.2T) names #NUM! for the same condition, so #NUM! is the obvious guess, but it IS a guess and this corpus does not assert guesses about which of Excel's eight error codes appears. The case records what each engine returns without scoring it. |
Error |
Docs & syntax
- Excel (desktop): official documentation
- Google Sheets: official documentation
- LibreOffice Calc: official documentation