← All functions

T.TEST

Quirk found

Category: Statistical · Last tested 2026-09-01

Real compatibility results for the T.TEST 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

EngineDocumentedLive-testedVerdict
Excel (desktop)Yes No — documented only n/a
Excel for the web— Yes (recalc, 2026-09-01) Supported, behaves as documented
Google SheetsYes Yes (Drive import, 2026-08-31) Supported, behaves as documented
LibreOffice CalcYes 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.TEST’s support changed — not documentation claims, real results.

LibreOffice versionVerdictTested
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.TEST working in LibreOffice?

T.TEST 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

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.

FormulaDescriptionResultExpectedVerdict
=ROUND(T.TEST(A2:A10,B2:B10,2,1),6) Microsoft's documented worked example: a paired, two-tailed test 0.196016 0.196016
Provenance

Microsoft publishes =T.TEST(A2:A10,B2:B10,2,1) = 0.196016 ("Probability associated with a Student's paired t-Test, with a two-tailed distribution"). DERIVATION (nothing here comes from a statistics package's t-test routine): the paired t-statistic is dbar/(sd/sqrt(n)) over the nine pairwise differences -3,-15,2,6,-5,-3,-3,-13,4, whose mean is -30/9 and whose sample standard deviation uses the n-1 divisor; that gives t = -1.4106912317171967 on 8 degrees of freedom. The p-value is then 2*(1 - F(|t|)) evaluated on this batch's doubly-cross-checked Student t CDF -- the regularized incomplete beta AND an independent numerical quadrature of the t density, agreeing to 25 digits -- giving 0.1960157849252821063357. scipy.stats.ttest_rel reproduces both the statistic and the p-value to double precision as a third check. That is 0.196016 at the published precision. Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/t-test-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.TEST(A2:A10,B2:B10,2,1),12) The same example carried to twelve decimals 0.196015784925 0.196015784925
Provenance

Asserted at twelve places from the derivation: 0.196015784925.

Matched
=ROUND(T.TEST(A2:A10,B2:B10,2,1)-2*T.TEST(A2:A10,B2:B10,1,1),15) The documented relationship between the one- and two-tailed forms 0 0
Provenance

The page publishes it outright: "The value returned by T.TEST when tails=2 is double that returned when tails=1." A structural assertion with no derived constant. For the record the one-tailed value derives to 0.09800789246264105316783, exactly half the headline figure.

Matched
=ROUND(T.TEST(A2:A10,B2:B10,2,2),12) The same data as a two-sample equal-variance test, which must give a different answer 0.19199588676 0.19199588676
Provenance

MICROSOFT PUBLISHES ONLY THE type = 1 ROW; this value is entirely ours, derived so that the `type` argument is actually pinned down rather than assumed. Type 2 is documented as "Two-sample equal variance (homoscedastic)": the pooled variance over both samples on n1+n2-2 = 16 degrees of freedom gives t = -1.3622298275610 and a two-tailed p of 0.1919958867603962174402, i.e. 0.19199588676 at twelve places. It sits within 0.005 of the paired figure, which is precisely why a case is needed: an engine that silently ran the wrong type would still look plausible against the published number.

Matched
=ROUND(T.TEST(A2:A10,B2:B10,2,3),12) The same data as a two-sample unequal-variance (Welch) test 0.202293923369 0.202293923369
Provenance

Also ours, not Microsoft's. Type 3 is documented as "Two-sample unequal variance (heteroscedastic)", i.e. Welch's test: the same t = -1.3622298275610 as type 2 (the two samples are the same size, so the statistic coincides) but on the Welch-Satterthwaite degrees of freedom 10.255208532, giving 0.2022939233686778922367. THE t STATISTICS BEING EQUAL WHILE THE p VALUES DIFFER IS THE WHOLE CONTENT OF THIS CASE: it isolates the degrees-of-freedom calculation, which is the only thing separating types 2 and 3 on equal-sized samples, and which no published Microsoft figure exercises anywhere.

Matched
=T.TEST({1,2,3},{1,2},2,1) A paired test whose arrays are different lengths, which the page assigns an error code #N/A #N/A
Provenance

The Remarks publish: "If array1 and array2 have a different number of data points, and type = 1 (paired), T.TEST returns the #N/A error value." The restriction is specific to the paired type -- types 2 and 3 accept unequal sample sizes -- which is why this case names type 1.

Matched
=T.TEST({1,2,3},{4,5,6},3,1) A tails argument of 3, which the page excludes #NUM! #NUM!
Provenance

The Remarks publish: "If tails is any value other than 1 or 2, T.TEST returns the #NUM! error value."

Matched
=T.TEST({1,2,3},{4,5,6},"x",1) A non-numeric tails argument #VALUE! #VALUE!
Provenance

The Remarks publish: "If tails or type is nonnumeric, T.TEST returns the #VALUE! error value." Note the pair of rules together: a non-numeric tails is #VALUE! while a numeric-but-invalid tails is #NUM!, and this corpus asserts both because engines routinely collapse them into one code.

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.

FormulaDescriptionResultExpectedVerdict
=ROUND(T.TEST(A2:A10,B2:B10,2,1),6) Microsoft's documented worked example: a paired, two-tailed test 0.196016 0.196016
Provenance

Microsoft publishes =T.TEST(A2:A10,B2:B10,2,1) = 0.196016 ("Probability associated with a Student's paired t-Test, with a two-tailed distribution"). DERIVATION (nothing here comes from a statistics package's t-test routine): the paired t-statistic is dbar/(sd/sqrt(n)) over the nine pairwise differences -3,-15,2,6,-5,-3,-3,-13,4, whose mean is -30/9 and whose sample standard deviation uses the n-1 divisor; that gives t = -1.4106912317171967 on 8 degrees of freedom. The p-value is then 2*(1 - F(|t|)) evaluated on this batch's doubly-cross-checked Student t CDF -- the regularized incomplete beta AND an independent numerical quadrature of the t density, agreeing to 25 digits -- giving 0.1960157849252821063357. scipy.stats.ttest_rel reproduces both the statistic and the p-value to double precision as a third check. That is 0.196016 at the published precision. Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/t-test-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.TEST(A2:A10,B2:B10,2,1),12) The same example carried to twelve decimals 0.1960157849 0.196015784925
Provenance

Asserted at twelve places from the derivation: 0.196015784925.

Matched
=ROUND(T.TEST(A2:A10,B2:B10,2,1)-2*T.TEST(A2:A10,B2:B10,1,1),15) The documented relationship between the one- and two-tailed forms 0 0
Provenance

The page publishes it outright: "The value returned by T.TEST when tails=2 is double that returned when tails=1." A structural assertion with no derived constant. For the record the one-tailed value derives to 0.09800789246264105316783, exactly half the headline figure.

Matched
=ROUND(T.TEST(A2:A10,B2:B10,2,2),12) The same data as a two-sample equal-variance test, which must give a different answer 0.1919958868 0.19199588676
Provenance

MICROSOFT PUBLISHES ONLY THE type = 1 ROW; this value is entirely ours, derived so that the `type` argument is actually pinned down rather than assumed. Type 2 is documented as "Two-sample equal variance (homoscedastic)": the pooled variance over both samples on n1+n2-2 = 16 degrees of freedom gives t = -1.3622298275610 and a two-tailed p of 0.1919958867603962174402, i.e. 0.19199588676 at twelve places. It sits within 0.005 of the paired figure, which is precisely why a case is needed: an engine that silently ran the wrong type would still look plausible against the published number.

Matched
=ROUND(T.TEST(A2:A10,B2:B10,2,3),12) The same data as a two-sample unequal-variance (Welch) test 0.2022939234 0.202293923369
Provenance

Also ours, not Microsoft's. Type 3 is documented as "Two-sample unequal variance (heteroscedastic)", i.e. Welch's test: the same t = -1.3622298275610 as type 2 (the two samples are the same size, so the statistic coincides) but on the Welch-Satterthwaite degrees of freedom 10.255208532, giving 0.2022939233686778922367. THE t STATISTICS BEING EQUAL WHILE THE p VALUES DIFFER IS THE WHOLE CONTENT OF THIS CASE: it isolates the degrees-of-freedom calculation, which is the only thing separating types 2 and 3 on equal-sized samples, and which no published Microsoft figure exercises anywhere.

Matched
=T.TEST({1,2,3},{1,2},2,1) A paired test whose arrays are different lengths, which the page assigns an error code #N/A #N/A
Provenance

The Remarks publish: "If array1 and array2 have a different number of data points, and type = 1 (paired), T.TEST returns the #N/A error value." The restriction is specific to the paired type -- types 2 and 3 accept unequal sample sizes -- which is why this case names type 1.

Matched
=T.TEST({1,2,3},{4,5,6},3,1) A tails argument of 3, which the page excludes #NUM! #NUM!
Provenance

The Remarks publish: "If tails is any value other than 1 or 2, T.TEST returns the #NUM! error value."

Matched
=T.TEST({1,2,3},{4,5,6},"x",1) A non-numeric tails argument #VALUE! #VALUE!
Provenance

The Remarks publish: "If tails or type is nonnumeric, T.TEST returns the #VALUE! error value." Note the pair of rules together: a non-numeric tails is #VALUE! while a numeric-but-invalid tails is #NUM!, and this corpus asserts both because engines routinely collapse them into one code.

Matched

LibreOffice Calc 25.8.7.3 (tested 2026-08-31)

FormulaDescriptionResultExpectedVerdict
=ROUND(T.TEST(A2:A10,B2:B10,2,1),6) Microsoft's documented worked example: a paired, two-tailed test 0.196016 0.196016
Provenance

Microsoft publishes =T.TEST(A2:A10,B2:B10,2,1) = 0.196016 ("Probability associated with a Student's paired t-Test, with a two-tailed distribution"). DERIVATION (nothing here comes from a statistics package's t-test routine): the paired t-statistic is dbar/(sd/sqrt(n)) over the nine pairwise differences -3,-15,2,6,-5,-3,-3,-13,4, whose mean is -30/9 and whose sample standard deviation uses the n-1 divisor; that gives t = -1.4106912317171967 on 8 degrees of freedom. The p-value is then 2*(1 - F(|t|)) evaluated on this batch's doubly-cross-checked Student t CDF -- the regularized incomplete beta AND an independent numerical quadrature of the t density, agreeing to 25 digits -- giving 0.1960157849252821063357. scipy.stats.ttest_rel reproduces both the statistic and the p-value to double precision as a third check. That is 0.196016 at the published precision. Microsoft's page was read live on 2026-08-31 at https://support.microsoft.com/en-us/excel/functions/t-test-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.TEST(A2:A10,B2:B10,2,1),12) The same example carried to twelve decimals 0.196015784925 0.196015784925
Provenance

Asserted at twelve places from the derivation: 0.196015784925.

Matched
=ROUND(T.TEST(A2:A10,B2:B10,2,1)-2*T.TEST(A2:A10,B2:B10,1,1),15) The documented relationship between the one- and two-tailed forms 0 0
Provenance

The page publishes it outright: "The value returned by T.TEST when tails=2 is double that returned when tails=1." A structural assertion with no derived constant. For the record the one-tailed value derives to 0.09800789246264105316783, exactly half the headline figure.

Matched
=ROUND(T.TEST(A2:A10,B2:B10,2,2),12) The same data as a two-sample equal-variance test, which must give a different answer 0.19199588676 0.19199588676
Provenance

MICROSOFT PUBLISHES ONLY THE type = 1 ROW; this value is entirely ours, derived so that the `type` argument is actually pinned down rather than assumed. Type 2 is documented as "Two-sample equal variance (homoscedastic)": the pooled variance over both samples on n1+n2-2 = 16 degrees of freedom gives t = -1.3622298275610 and a two-tailed p of 0.1919958867603962174402, i.e. 0.19199588676 at twelve places. It sits within 0.005 of the paired figure, which is precisely why a case is needed: an engine that silently ran the wrong type would still look plausible against the published number.

Matched
=ROUND(T.TEST(A2:A10,B2:B10,2,3),12) The same data as a two-sample unequal-variance (Welch) test 0.202293923369 0.202293923369
Provenance

Also ours, not Microsoft's. Type 3 is documented as "Two-sample unequal variance (heteroscedastic)", i.e. Welch's test: the same t = -1.3622298275610 as type 2 (the two samples are the same size, so the statistic coincides) but on the Welch-Satterthwaite degrees of freedom 10.255208532, giving 0.2022939233686778922367. THE t STATISTICS BEING EQUAL WHILE THE p VALUES DIFFER IS THE WHOLE CONTENT OF THIS CASE: it isolates the degrees-of-freedom calculation, which is the only thing separating types 2 and 3 on equal-sized samples, and which no published Microsoft figure exercises anywhere.

Matched
=T.TEST({1,2,3},{1,2},2,1) A paired test whose arrays are different lengths, which the page assigns an error code #VALUE! #N/A
Provenance

The Remarks publish: "If array1 and array2 have a different number of data points, and type = 1 (paired), T.TEST returns the #N/A error value." The restriction is specific to the paired type -- types 2 and 3 accept unequal sample sizes -- which is why this case names type 1.

Mismatch
=T.TEST({1,2,3},{4,5,6},3,1) A tails argument of 3, which the page excludes #VALUE! #NUM!
Provenance

The Remarks publish: "If tails is any value other than 1 or 2, T.TEST returns the #NUM! error value."

Mismatch
=T.TEST({1,2,3},{4,5,6},"x",1) A non-numeric tails argument #VALUE! #VALUE!
Provenance

The Remarks publish: "If tails or type is nonnumeric, T.TEST returns the #VALUE! error value." Note the pair of rules together: a non-numeric tails is #VALUE! while a numeric-but-invalid tails is #NUM!, and this corpus asserts both because engines routinely collapse them into one code.

Matched

Docs & syntax

Where T.TEST behaves differently