T.DIST function

PRO

The T.DIST function in Jspreadsheet Formulas Pro returns the left-tailed Student's t-distribution, used for inference on means when the sample is small or the population standard deviation is unknown. With cumulative TRUE it returns the probability that the t statistic is less than or equal to x; with FALSE it returns the density at x. Use T.DIST.RT for the right tail and T.DIST.2T for the two-tailed probability.

Documentation

Returns the left-tailed Student's t-distribution.

Category

Statistical

Syntax

T.DIST(x, degrees_freedom, cumulative)

Parameter Description
x The value at which to evaluate the distribution. Negative values are allowed.
degrees_freedom The number of degrees of freedom. Must be an integer of at least 1.
cumulative TRUE returns the cumulative distribution function. FALSE returns the probability density function.

Behavior

The T.DIST function returns the left-tailed probability, so T.DIST(x, df, TRUE) plus T.DIST.RT(x, df) equals 1.

  • degrees_freedom must be an integer of at least 1. A non-integer value such as 10.7 returns #NUM!, unlike Excel, which truncates it.
  • Negative values of x are valid and return probabilities below 0.5 in the cumulative form.
  • The two-tailed probability of x equals 2 * T.DIST(-ABS(x), df, TRUE), the same as T.DIST.2T(ABS(x), df).
  • Text arguments return #VALUE!.

Common Errors

Error Description
#NUM! Returned when degrees_freedom is less than 1 or is not an integer.
#VALUE! Returned when an argument is text that cannot be interpreted as a number.

Best practices

  • Wrap degrees_freedom with INT when it comes from a calculation, because decimal values return #NUM!.
  • Pass cumulative explicitly as TRUE or FALSE so the intent is clear when reading the formula.
  • Use absolute references for the degrees_freedom cells when copying the formula down a column of x values, for example $B$1.
  • Check with ISNUMBER that the input cells hold numbers, because text returns #VALUE!.

Usage

A few examples using the T.DIST function.

T.DIST(1.5, 10, TRUE)
// Returns 0.917746, the left-tailed probability

T.DIST(-1.5, 10, TRUE)
// Returns 0.082254, the same as T.DIST.RT(1.5, 10)

T.DIST(2, 8, FALSE)
// Returns 0.062368, the density at x = 2

T.DIST(1.5, 10.7, TRUE)
// Returns #NUM! because degrees_freedom must be an integer

Interactive Spreadsheet Demo

<html>
<script src="https://jsuites.net/v6/jsuites.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jspreadsheet@13/dist/index.min.js"></script>
<link rel="stylesheet" href="https://jsuites.net/v6/jsuites.css" type="text/css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/jspreadsheet@13/dist/jspreadsheet.min.css" type="text/css" />

<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Material+Icons" />
<script src="https://cdn.jsdelivr.net/npm/@jspreadsheet/formula-pro/dist/index.min.js"></script>

<div id="spreadsheet"></div>

<script>
// You can use the following license for quick testing on localhost, StackBlitz, or CodeSandbox.
// The license is valid for one day, after which the spreadsheet will become read-only.
// For a longer trial period, you can create a free account and generate a demo license with an extended expiration date.
jspreadsheet.setLicense('ZDM3MWEzZjdhYmIxNzk4NjJhOTQzYjVmODYxMWI2MGI2MjEyNmMwNWYxYzBkMDI1NWM4ZDI2MDc0ZTFmZjlhYWFjOWNjZDgyNzJkYjY2ODQ3NjlhMzY2Yzk2ZmIxNzRlY2JkOGQ4NjI4MTM1MjBlN2Q2Yzk3NTQzOGUyMDEzMGUsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpreE1ESTRNelF5TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW5ZeE15SXNJbU5vWVhKMGN5SXNJbVp2Y20xeklpd2labTl5YlhWc1lTSXNJbkJoY25ObGNpSXNJbkpsYm1SbGNpSXNJbU52YlcxbGJuUnpJaXdpYVcxd2IzSjBaWElpTENKaVlYSWlMQ0oyWVd4cFpHRjBhVzl1Y3lJc0luTmxZWEpqYUNJc0luQnlhVzUwSWl3aWMyaGxaWFJ6SWl3aVkyeHBaVzUwSWl3aWMyVnlkbVZ5SWl3aWMyaGhjR1Z6SWl3aVptOXliV0YwSWl3aWNHbDJiM1FpWFN3aVpHVnRieUk2ZEhKMVpYMD0=');

// Set the extensions
jspreadsheet.setExtensions({ formula });

// Create a new spreadsheet
jspreadsheet(document.getElementById('spreadsheet'), {
  worksheets: [{
    data: [
    [
        "x",
        "degrees_freedom",
        "cumulative",
        "T.DIST"
    ],
    [
        -1.5,
        10,
        true,
        "=T.DIST(A2, B2, C2)"
    ],
    [
        0,
        10,
        true,
        "=T.DIST(A3, B3, C3)"
    ],
    [
        1.5,
        10,
        true,
        "=T.DIST(A4, B4, C4)"
    ],
    [
        2,
        8,
        false,
        "=T.DIST(A5, B5, C5)"
    ]
]
  }]
});
</script>
</html>
import React, { useRef } from "react";
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/react";
import formula from "@jspreadsheet/formula-pro";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";

// Set license
jspreadsheet.setLicense('ZDM3MWEzZjdhYmIxNzk4NjJhOTQzYjVmODYxMWI2MGI2MjEyNmMwNWYxYzBkMDI1NWM4ZDI2MDc0ZTFmZjlhYWFjOWNjZDgyNzJkYjY2ODQ3NjlhMzY2Yzk2ZmIxNzRlY2JkOGQ4NjI4MTM1MjBlN2Q2Yzk3NTQzOGUyMDEzMGUsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpreE1ESTRNelF5TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW5ZeE15SXNJbU5vWVhKMGN5SXNJbVp2Y20xeklpd2labTl5YlhWc1lTSXNJbkJoY25ObGNpSXNJbkpsYm1SbGNpSXNJbU52YlcxbGJuUnpJaXdpYVcxd2IzSjBaWElpTENKaVlYSWlMQ0oyWVd4cFpHRjBhVzl1Y3lJc0luTmxZWEpqYUNJc0luQnlhVzUwSWl3aWMyaGxaWFJ6SWl3aVkyeHBaVzUwSWl3aWMyVnlkbVZ5SWl3aWMyaGhjR1Z6SWl3aVptOXliV0YwSWl3aWNHbDJiM1FpWFN3aVpHVnRieUk2ZEhKMVpYMD0=');

// Set the extensions
jspreadsheet.setExtensions({ formula });

export default function App() {
    // Spreadsheet array of worksheets
    const spreadsheet = useRef();

    // Worksheet data
    const data = [
    [
        "x",
        "degrees_freedom",
        "cumulative",
        "T.DIST"
    ],
    [
        -1.5,
        10,
        true,
        "=T.DIST(A2, B2, C2)"
    ],
    [
        0,
        10,
        true,
        "=T.DIST(A3, B3, C3)"
    ],
    [
        1.5,
        10,
        true,
        "=T.DIST(A4, B4, C4)"
    ],
    [
        2,
        8,
        false,
        "=T.DIST(A5, B5, C5)"
    ]
];

    // Render component
    return (
        <Spreadsheet ref={spreadsheet}>
            <Worksheet data={data} />
        </Spreadsheet>
    );
}
<template>
    <Spreadsheet ref="spreadsheet">
        <Worksheet :data="data" />
    </Spreadsheet>
</template>

<script>
import { Spreadsheet, Worksheet, jspreadsheet } from "@jspreadsheet/vue";
import "jsuites/dist/jsuites.css";
import "jspreadsheet/dist/jspreadsheet.css";
import formula from "@jspreadsheet/formula-pro";

// Set license
jspreadsheet.setLicense('ZDM3MWEzZjdhYmIxNzk4NjJhOTQzYjVmODYxMWI2MGI2MjEyNmMwNWYxYzBkMDI1NWM4ZDI2MDc0ZTFmZjlhYWFjOWNjZDgyNzJkYjY2ODQ3NjlhMzY2Yzk2ZmIxNzRlY2JkOGQ4NjI4MTM1MjBlN2Q2Yzk3NTQzOGUyMDEzMGUsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpreE1ESTRNelF5TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW5ZeE15SXNJbU5vWVhKMGN5SXNJbVp2Y20xeklpd2labTl5YlhWc1lTSXNJbkJoY25ObGNpSXNJbkpsYm1SbGNpSXNJbU52YlcxbGJuUnpJaXdpYVcxd2IzSjBaWElpTENKaVlYSWlMQ0oyWVd4cFpHRjBhVzl1Y3lJc0luTmxZWEpqYUNJc0luQnlhVzUwSWl3aWMyaGxaWFJ6SWl3aVkyeHBaVzUwSWl3aWMyVnlkbVZ5SWl3aWMyaGhjR1Z6SWl3aVptOXliV0YwSWl3aWNHbDJiM1FpWFN3aVpHVnRieUk2ZEhKMVpYMD0=');

// Set the extensions
jspreadsheet.setExtensions({ formula });

export default {
    components: {
        Spreadsheet,
        Worksheet,
    },
    data() {
        // Worksheet data
        const data = [
    [
        "x",
        "degrees_freedom",
        "cumulative",
        "T.DIST"
    ],
    [
        -1.5,
        10,
        true,
        "=T.DIST(A2, B2, C2)"
    ],
    [
        0,
        10,
        true,
        "=T.DIST(A3, B3, C3)"
    ],
    [
        1.5,
        10,
        true,
        "=T.DIST(A4, B4, C4)"
    ],
    [
        2,
        8,
        false,
        "=T.DIST(A5, B5, C5)"
    ]
]

        return {
            data
        };
    }
}
</script>
import { Component, ViewChild, ElementRef } from "@angular/core";
import jspreadsheet from "jspreadsheet";
import formula from "@jspreadsheet/formula-pro";

// You can use the following license for quick testing on localhost, StackBlitz, or CodeSandbox.
// The license is valid for one day, after which the spreadsheet will become read-only.
// For a longer trial period, you can create a free account and generate a demo license with an extended expiration date.
jspreadsheet.setLicense('ZDM3MWEzZjdhYmIxNzk4NjJhOTQzYjVmODYxMWI2MGI2MjEyNmMwNWYxYzBkMDI1NWM4ZDI2MDc0ZTFmZjlhYWFjOWNjZDgyNzJkYjY2ODQ3NjlhMzY2Yzk2ZmIxNzRlY2JkOGQ4NjI4MTM1MjBlN2Q2Yzk3NTQzOGUyMDEzMGUsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpreE1ESTRNelF5TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW5ZeE15SXNJbU5vWVhKMGN5SXNJbVp2Y20xeklpd2labTl5YlhWc1lTSXNJbkJoY25ObGNpSXNJbkpsYm1SbGNpSXNJbU52YlcxbGJuUnpJaXdpYVcxd2IzSjBaWElpTENKaVlYSWlMQ0oyWVd4cFpHRjBhVzl1Y3lJc0luTmxZWEpqYUNJc0luQnlhVzUwSWl3aWMyaGxaWFJ6SWl3aVkyeHBaVzUwSWl3aWMyVnlkbVZ5SWl3aWMyaGhjR1Z6SWl3aVptOXliV0YwSWl3aWNHbDJiM1FpWFN3aVpHVnRieUk2ZEhKMVpYMD0=');

// Set the extensions
jspreadsheet.setExtensions({ formula });

@Component({
    standalone: true,
    selector: "app-root",
    template: `<div #spreadsheet></div>`
})
export class AppComponent {
    @ViewChild("spreadsheet") spreadsheet: ElementRef;
    // Worksheets
    worksheets: jspreadsheet.worksheetInstance[];

    // Create a new data grid
    ngAfterViewInit() {
        // Create spreadsheet
        this.worksheets = jspreadsheet(this.spreadsheet.nativeElement, {
            worksheets: [{
                data: [
    [
        "x",
        "degrees_freedom",
        "cumulative",
        "T.DIST"
    ],
    [
        -1.5,
        10,
        true,
        "=T.DIST(A2, B2, C2)"
    ],
    [
        0,
        10,
        true,
        "=T.DIST(A3, B3, C3)"
    ],
    [
        1.5,
        10,
        true,
        "=T.DIST(A4, B4, C4)"
    ],
    [
        2,
        8,
        false,
        "=T.DIST(A5, B5, C5)"
    ]
]
            }]
        });
    }
}