F.DIST function

PRO

The F.DIST function in Jspreadsheet Formulas Pro returns the left-tailed F probability distribution, which describes the ratio of two variances. It is used to evaluate the diversity between two data sets. Unlike the compatibility function FDIST, which returns the right-tailed probability, F.DIST returns the probability that the statistic is less than or equal to x, or the probability density when cumulative is FALSE.

Documentation

Returns the cumulative distribution function of the F-distribution.

Category

Statistical

Syntax

F.DIST(x, degrees_freedom1, degrees_freedom2, cumulative)

Parameter Description
x The value at which to evaluate the function. Must be greater than or equal to 0.
degrees_freedom1 The numerator degrees of freedom. Must be at least 1.
degrees_freedom2 The denominator degrees of freedom. Must be at least 1.
cumulative TRUE returns the cumulative distribution function. FALSE returns the probability density function.

Behavior

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

  • x must be 0 or positive and both degrees of freedom must be at least 1. Otherwise the function returns #NUM!.
  • Non-integer degrees of freedom are truncated, so F.DIST(2, 3.9, 5, TRUE) equals F.DIST(2, 3, 5, TRUE).
  • The compatibility function FDIST returns the right-tailed probability, which equals 1 - F.DIST(x, df1, df2, TRUE).
  • Text arguments return #VALUE!.

Common Errors

Error Description
#NUM! Returned when x is negative or when either degrees of freedom is less than 1.
#VALUE! Returned when an argument is text that cannot be interpreted as a number.

Best practices

  • Pass integer degrees of freedom. Decimal values are truncated silently, which can hide a wrong input.
  • Keep x non-negative, or wrap the call with IFERROR when it comes from calculated statistics.
  • Pass cumulative explicitly as TRUE or FALSE so the intent is clear when reading the formula.
  • Use absolute references for the degrees of freedom cells when copying the formula down a column of x values, for example $B$1.

Usage

A few examples using the F.DIST function.

F.DIST(15.206, 3, 5, FALSE)
// Returns 0.000879, the density at x = 15.206

F.DIST(15.206, 3, 5, TRUE)
// Returns 0.993978, the left-tailed probability

1 - F.DIST(15.206, 3, 5, TRUE)
// Returns 0.006022, the same as F.DIST.RT(15.206, 3, 5) and FDIST(15.206, 3, 5)

F.DIST(-1, 3, 5, TRUE)
// Returns #NUM! because x is negative

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('YTY1MjYxNTAzYmQ5MjU3ZDM0ODBhOWJiMTc4MWI2ODc2Mzk2MjEzMmEwMjNmNDAwMDU1N2E0Y2E2M2I4MWQ3ZTVhZjQxZDFkM2UwMGIyODg4MWIxNTIwZmQ2MWUzMWExZjcxNDcxNmU3ODRhZmJhNDE0OTYzYWJhNTE1MTg0ZmUsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpreE1ESTRNekl6TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW5ZeE15SXNJbU5vWVhKMGN5SXNJbVp2Y20xeklpd2labTl5YlhWc1lTSXNJbkJoY25ObGNpSXNJbkpsYm1SbGNpSXNJbU52YlcxbGJuUnpJaXdpYVcxd2IzSjBaWElpTENKaVlYSWlMQ0oyWVd4cFpHRjBhVzl1Y3lJc0luTmxZWEpqYUNJc0luQnlhVzUwSWl3aWMyaGxaWFJ6SWl3aVkyeHBaVzUwSWl3aWMyVnlkbVZ5SWl3aWMyaGhjR1Z6SWl3aVptOXliV0YwSWl3aWNHbDJiM1FpWFN3aVpHVnRieUk2ZEhKMVpYMD0=');

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

// Create a new spreadsheet
jspreadsheet(document.getElementById('spreadsheet'), {
  worksheets: [{
    data: [
    [
        "x",
        "df1",
        "df2",
        "cumulative",
        "F.DIST"
    ],
    [
        15.206,
        3,
        5,
        true,
        "=F.DIST(A2, B2, C2, D2)"
    ],
    [
        15.206,
        3,
        5,
        false,
        "=F.DIST(A3, B3, C3, D3)"
    ],
    [
        2,
        3,
        5,
        true,
        "=F.DIST(A4, B4, C4, D4)"
    ],
    [
        20,
        5,
        10,
        false,
        "=F.DIST(A5, B5, C5, D5)"
    ]
]
  }]
});
</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('YTY1MjYxNTAzYmQ5MjU3ZDM0ODBhOWJiMTc4MWI2ODc2Mzk2MjEzMmEwMjNmNDAwMDU1N2E0Y2E2M2I4MWQ3ZTVhZjQxZDFkM2UwMGIyODg4MWIxNTIwZmQ2MWUzMWExZjcxNDcxNmU3ODRhZmJhNDE0OTYzYWJhNTE1MTg0ZmUsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpreE1ESTRNekl6TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW5ZeE15SXNJbU5vWVhKMGN5SXNJbVp2Y20xeklpd2labTl5YlhWc1lTSXNJbkJoY25ObGNpSXNJbkpsYm1SbGNpSXNJbU52YlcxbGJuUnpJaXdpYVcxd2IzSjBaWElpTENKaVlYSWlMQ0oyWVd4cFpHRjBhVzl1Y3lJc0luTmxZWEpqYUNJc0luQnlhVzUwSWl3aWMyaGxaWFJ6SWl3aVkyeHBaVzUwSWl3aWMyVnlkbVZ5SWl3aWMyaGhjR1Z6SWl3aVptOXliV0YwSWl3aWNHbDJiM1FpWFN3aVpHVnRieUk2ZEhKMVpYMD0=');

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

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

    // Worksheet data
    const data = [
    [
        "x",
        "df1",
        "df2",
        "cumulative",
        "F.DIST"
    ],
    [
        15.206,
        3,
        5,
        true,
        "=F.DIST(A2, B2, C2, D2)"
    ],
    [
        15.206,
        3,
        5,
        false,
        "=F.DIST(A3, B3, C3, D3)"
    ],
    [
        2,
        3,
        5,
        true,
        "=F.DIST(A4, B4, C4, D4)"
    ],
    [
        20,
        5,
        10,
        false,
        "=F.DIST(A5, B5, C5, D5)"
    ]
];

    // 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('YTY1MjYxNTAzYmQ5MjU3ZDM0ODBhOWJiMTc4MWI2ODc2Mzk2MjEzMmEwMjNmNDAwMDU1N2E0Y2E2M2I4MWQ3ZTVhZjQxZDFkM2UwMGIyODg4MWIxNTIwZmQ2MWUzMWExZjcxNDcxNmU3ODRhZmJhNDE0OTYzYWJhNTE1MTg0ZmUsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpreE1ESTRNekl6TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW5ZeE15SXNJbU5vWVhKMGN5SXNJbVp2Y20xeklpd2labTl5YlhWc1lTSXNJbkJoY25ObGNpSXNJbkpsYm1SbGNpSXNJbU52YlcxbGJuUnpJaXdpYVcxd2IzSjBaWElpTENKaVlYSWlMQ0oyWVd4cFpHRjBhVzl1Y3lJc0luTmxZWEpqYUNJc0luQnlhVzUwSWl3aWMyaGxaWFJ6SWl3aVkyeHBaVzUwSWl3aWMyVnlkbVZ5SWl3aWMyaGhjR1Z6SWl3aVptOXliV0YwSWl3aWNHbDJiM1FpWFN3aVpHVnRieUk2ZEhKMVpYMD0=');

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

export default {
    components: {
        Spreadsheet,
        Worksheet,
    },
    data() {
        // Worksheet data
        const data = [
    [
        "x",
        "df1",
        "df2",
        "cumulative",
        "F.DIST"
    ],
    [
        15.206,
        3,
        5,
        true,
        "=F.DIST(A2, B2, C2, D2)"
    ],
    [
        15.206,
        3,
        5,
        false,
        "=F.DIST(A3, B3, C3, D3)"
    ],
    [
        2,
        3,
        5,
        true,
        "=F.DIST(A4, B4, C4, D4)"
    ],
    [
        20,
        5,
        10,
        false,
        "=F.DIST(A5, B5, C5, D5)"
    ]
]

        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('YTY1MjYxNTAzYmQ5MjU3ZDM0ODBhOWJiMTc4MWI2ODc2Mzk2MjEzMmEwMjNmNDAwMDU1N2E0Y2E2M2I4MWQ3ZTVhZjQxZDFkM2UwMGIyODg4MWIxNTIwZmQ2MWUzMWExZjcxNDcxNmU3ODRhZmJhNDE0OTYzYWJhNTE1MTg0ZmUsZXlKamJHbGxiblJKWkNJNklpSXNJbTVoYldVaU9pSktjM0J5WldGa2MyaGxaWFFpTENKa1lYUmxJam94TnpreE1ESTRNekl6TENKa2IyMWhhVzRpT2xzaWFuTndjbVZoWkhOb1pXVjBMbU52YlNJc0ltTnZaR1Z6WVc1a1ltOTRMbWx2SWl3aWFuTm9aV3hzTG01bGRDSXNJbU56WWk1aGNIQWlMQ0p6ZEdGamEySnNhWFI2TG1sdklpd2lkMlZpWTI5dWRHRnBibVZ5TG1sdklpd2liRzlqWVd4b2IzTjBJbDBzSW5Cc1lXNGlPaUl6TkNJc0luTmpiM0JsSWpwYkluWTNJaXdpZGpnaUxDSjJPU0lzSW5ZeE1DSXNJbll4TVNJc0luWXhNaUlzSW5ZeE15SXNJbU5vWVhKMGN5SXNJbVp2Y20xeklpd2labTl5YlhWc1lTSXNJbkJoY25ObGNpSXNJbkpsYm1SbGNpSXNJbU52YlcxbGJuUnpJaXdpYVcxd2IzSjBaWElpTENKaVlYSWlMQ0oyWVd4cFpHRjBhVzl1Y3lJc0luTmxZWEpqYUNJc0luQnlhVzUwSWl3aWMyaGxaWFJ6SWl3aVkyeHBaVzUwSWl3aWMyVnlkbVZ5SWl3aWMyaGhjR1Z6SWl3aVptOXliV0YwSWl3aWNHbDJiM1FpWFN3aVpHVnRieUk2ZEhKMVpYMD0=');

// 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",
        "df1",
        "df2",
        "cumulative",
        "F.DIST"
    ],
    [
        15.206,
        3,
        5,
        true,
        "=F.DIST(A2, B2, C2, D2)"
    ],
    [
        15.206,
        3,
        5,
        false,
        "=F.DIST(A3, B3, C3, D3)"
    ],
    [
        2,
        3,
        5,
        true,
        "=F.DIST(A4, B4, C4, D4)"
    ],
    [
        20,
        5,
        10,
        false,
        "=F.DIST(A5, B5, C5, D5)"
    ]
]
            }]
        });
    }
}