# Statistical Functions

- 15 minutes to read

This document describes statistical functions supported by the WPF Spreadsheet control.

Name | Description | Syntax |
---|---|---|

Returns the average of the absolute deviations of data points from their mean. | AVEDEV(number1, [number2], …) | |

Returns the average (arithmetic mean) of numbers, names, or cell ranges that contain numbers. | AVERAGE(number1, [number2], …) | |

Returns the average (arithmetic mean) of its arguments, including numbers, text, and logical values. | AVERAGEA(value1, [value2], …) | |

Returns the average (arithmetic mean) of all the cells in a range that meet a given criteria. | AVERAGEIF(range, criteria, [average_range]) The range is an array or cell range of values that is tested against the given criteria. If average_range is omitted, values in the initial range are used to calculate the average. Otherwise, cells in the average_range array are used for calculation. | |

Returns the average (arithmetic mean) of all cells that meet multiple criteria. | AVERAGEIFS( average_range, criteria_range1, criteria1, [criteria_range2, criteria2], … ) Average_range is the range for calculation. Criteria_range1, [criteria_range2], … - are the arrays to be tested against the supplied criteria. Criteria1, [criteria2], … - are the respective conditions to be tested. | |

Returns the inverse of the beta cumulative probability density function (BETA.DIST). | BETA.INV(probability,alpha,beta,[A],[B]) | |

Returns the beta distribution. | BETA.DIST(x,alpha,beta,cumulative,[A],[B]) | |

Returns the individual term binomial distribution probability. | BINOM.DIST(number_s,trials,probability_s,cumulative) | |

Returns the smallest value for which the cumulative binomial distribution is greater than or equal to a criterion value. | BINOM.INV(trials,probability_s,alpha) | |

Returns the probability of a trial result using a binomial distribution. | BINOM.DIST.RANGE(trials,probability_s,number_s,[number_s2]) | |

Returns the chi-squared distribution. | CHISQ.DIST(x,deg_freedom,cumulative) X - Required. The value at which you want to evaluate the distribution. Deg_freedom - Required. The number of degrees of freedom. Cumulative - Required. A logical value that determines the form of the function. | |

Returns the right-tailed probability of the chi-squared distribution. | CHISQ.DIST.RT(x,deg_freedom) | |

Returns the inverse of the left-tailed probability of the chi-squared distribution. | CHISQ.INV(probability,deg_freedom) | |

Returns the inverse of the right-tailed probability of the chi-squared distribution. | CHISQ.INV.RT(probability,deg_freedom) | |

Returns the test for independence as the value from the chi-squared distribution for the statistic and the appropriate degrees of freedom. | CHISQ.TEST(actual_range,expected_range) | |

Returns the confidence interval for a population mean, using a normal distribution. | CONFIDENCE.NORM(alpha,standard_dev,size) Alpha is the significance level used to compute the confidence level. The confidence level equals 100*(1 - alpha)%, or in other words, an alpha of 0.05 indicates a 95 percent confidence level. Standard_dev is the population standard deviation for the data range and is assumed to be known. Size is the sample size. | |

Returns the confidence interval for a population mean, using a Student’s t distribution. | CONFIDENCE.T (alpha,standard_dev,size) | |

Returns the correlation coefficient between two data sets. | CORREL(array1, array2) The arrays should be of equal length. | |

Returns the number of numeric values in a set of cells or values. | COUNT(value1, [value2], …) Arguments that are numbers, dates, or a text representation of numbers are counted. Logical values and text representations of numbers that you type directly into the list of arguments are also counted. | |

Returns the number of non-blank cells within a specified range. | COUNTA(value1, [value2], …) | |

Returns the number of empty cells in a range of cells. | COUNTBLANK(range) | |

Returns the number of cells within a range that meet a criterion. | COUNTIF(range, criteria) | |

Counts the number of cells within a range that meet multiple criteria. | COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], …) Each additional range must have the same number of rows and columns as the criteria_range1 argument. The ranges do not have to be adjacent to each other. | |

Returns population covariance, the average of the products of deviations for each data point pair in two data sets. | COVARIANCE.P(array1,array2) | |

Returns the sample covariance, the average of the products of deviations for each data point pair in two data sets. | COVARIANCE.S(array1,array2) | |

Returns the sum of squares of deviations of data points from their sample mean. | DEVSQ(number1, [number2], …) | |

Returns the exponential distribution. | EXPON.DIST(x,lambda,cumulative) | |

Returns the F probability distribution. | F.DIST(x,deg_freedom1,deg_freedom2,cumulative) | |

Returns the (right-tailed) F probability distribution (degree of diversity) for two data sets. | F.DIST.RT(x,deg_freedom1,deg_freedom2) | |

Returns the inverse of the F probability distribution. | F.INV(probability,deg_freedom1,deg_freedom2) | |

Returns the inverse of the (right-tailed) F probability distribution. | F.INV.RT(probability,deg_freedom1,deg_freedom2) | |

Returns the result of an F-test, the two-tailed probability that the variances in array1 and array2 are not significantly different. | F.TEST(array1,array2) | |

Returns the Fisher transformation at x. | FISHER(x) | |

Returns the inverse of the Fisher transformation. | FISHERINV(y) | |

Calculates, or predicts, a future value along a linear trend by using existing values. | FORECAST(x,known_y’s,known_x’s) X is the data point for which you want to predict a value. Known_y’s is the dependent array or range of data. Known_x’s is the independent array or range of data. | |

Calculates how often values occur within a range of values, and then returns a vertical array of numbers. | FREQUENCY(data_array, bins_array) Data_array is an array of or reference to a set of values for which you want to count frequencies. If data_array contains no values, FREQUENCY returns an array of zeros. Bins_array is an array of or reference to intervals into which you want to group the values in data_array. If bins_array contains no values, FREQUENCY returns the number of elements in data_array. | |

Return the gamma function value. | GAMMA(number) | |

Returns the gamma distribution. | GAMMA.DIST(x,alpha,beta,cumulative) | |

Returns the inverse of the gamma cumulative distribution. | GAMMA.INV(probability,alpha,beta) | |

Returns the natural logarithm of the gamma function. | GAMMALN(x) | |

Returns the natural logarithm of the gamma function (new version). | GAMMALN.PRECISE(x) | |

Calculates the probability that a member of a standard normal population will fall between the mean and z standard deviations from the mean. | GAUSS(z) | |

Returns the geometric mean of an array or range of positive data. | GEOMEAN(number1, [number2], …) | |

Calculates an exponential curve that best fits your data based on a number of known X and Y values. Returns the y-values for a series of new x-values. | GROWTH(known_y’s, [known_x’s], [new_x’s], [const]) Known_y’s is the set of y-values for the relationship y = b*m^x. Known_x’s is an optional set of x-values for the relationship; if omitted, it is assumed to be the array {1,2,3,…} that is the same size as known_y’s. New_x’s is an optional set of new x-values for which you want GROWTH to return corresponding y-values. If omitted, it is assumed to be the same as known_x’s. Const is an optional logical value. It is TRUE or omitted, to calculate the b constant; otherwise b is set to 1. GROWTH is the exponential counterpart to the linear regression function TREND. | |

Returns the harmonic mean of a data set. | HARMEAN(number1,number2,…) | |

Returns the hypergeometric distribution. | HYPGEOM.DIST(sample_s,number_sample,population_s,number_pop,cumulative) | |

Calculates the point at which a line will intersect the y-axis by using a best-fit regression line plotted through the known x-values and y-values. | INTERCEPT(known_y’s, known_x’s) Known_y’s is the dependent set of observations or data. Known_x’s is the independent set of observations or data. | |

Returns the kurtosis of a data set. | KURT(number1,number2,…) | |

Returns the k-th largest value in a data set. | LARGE(array, k) The array argument is an array or range of data for which the k-th largest value is determined. The k argument is the position (from the largest) in the array or cell range of data to return. | |

Uses the least squares method to calculate a straight line that best fits your data and returns an array that describes this line. | LINEST(known_y’s,known_x’s,const,stats) Known_y’s is the set of y-values you already know in the relationship y = mx + b. Known_x’s is an optional set of x-values that you may already know in the relationship y = mx + b. Const is a logical value specifying whether to force the constant b to equal 0. Stats is a logical value that specifies whether to return additional regression statistics. | |

Calculates an exponential curve that fits your data and returns an array of values that describes this curve. | LOGEST(known_y’s, [known_x’s], [const], [stats]) Known_y’s is the set of dependent values. Known_x’s is an optional set of independent values. The argument “const” is a logical value that specifies whether to force the constant b to equal 1. The argument “stats” is a logical value that specifies whether to return additional regression statistics. | |

Returns the lognormal distribution of x, where ln(x) is normally distributed with parameters Mean and Standard_dev. | LOGNORM.DIST(x,mean,standard_dev,cumulative) X is the value at which to evaluate the function. Mean is the mean of ln(x). Standard_dev is the standard deviation of ln(x). Cumulative is a logical value that determines the form of the function. If cumulative is TRUE, LOGNORM.DIST returns the cumulative distribution function; otherwise, it returns the probability density function. | |

Returns the inverse of the lognormal cumulative distribution function of x, where ln(x) is normally distributed with parameters Mean and Standard_dev. | LOGNORM.INV(probability,mean,standard_dev) The probability argument specifies a probability associated with the lognormal distribution. Mean is the mean of ln(x). Standard_dev is the standard deviation of ln(x). | |

Returns the largest value in a set of values. | MAX(number1, [number2], …) | |

Returns the maximum value in a list of arguments, including numbers, text, and logical values. | MAXA(value1,[value2],…) | |

Returns the maximum value among cells specified by a given set of conditions or criteria. | MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], …) | |

Returns the statistical median (the middle value) of the given numbers. | MEDIAN(number1, [number2], …) | |

Returns the smallest number in a set of values. | MIN(number1, [number2], …) | |

Returns the smallest value in a list of arguments, including numbers, text, and logical values. | MINA(value1, [value2], …) | |

Returns the minimum value among cells specified by a given set of conditions or criteria. | MINIFS(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], …) | |

Returns a vertical array of the most frequently occurring, or repetitive, values in an array or range of data. | MODE.MULT((number1,[number2],…]) The arguments number1, [number2], … are numerical values, arrays, or references to cells that contain numbers. You can enter up to 255 number arguments. If an array or reference argument contains text, logical values, or empty cells, those values are ignored. If the data set contains no duplicate data points, the #N/A error value is returned. | |

Returns the most frequently occurring, or repetitive, value in an array or range of data. | MODE.SNGL(number1,[number2],…]) The arguments number1, [number2], … are numerical values, arrays, or references to cells that contain numbers. You can enter up to 255 number arguments. If an array or reference argument contains text, logical values, or empty cells, those values are ignored. If the data set contains no duplicate data points, the #N/A error value is returned. | |

Returns the negative binomial distribution. | NEGBINOM.DIST(number_f,number_s,probability_s,cumulative) | |

Returns the normal distribution for the specified mean and standard deviation. | NORM.DIST(x,mean,standard_dev,cumulative) X is the value for which you want the distribution. Mean is the arithmetic mean of the distribution. Standard_dev is the standard deviation of the distribution. Cumulative is a logical value that determines the form of the function. If cumulative is TRUE, NORM.DIST returns the cumulative distribution function; if FALSE, it returns the probability density function. | |

Returns the inverse of the normal cumulative distribution for the specified mean and standard deviation. | NORM.INV(probability,mean,standard_dev) Probability is a probability corresponding to the normal distribution. Mean is the arithmetic mean of the distribution. Standard_dev is the standard deviation of the distribution. | |

Returns the standard normal distribution (has a mean of zero and a standard deviation of one). | NORM.S.DIST(z,cumulative) Z is the value for which you want the distribution. Cumulative is a logical value that determines the form of the function. If cumulative is TRUE, NORMS.DIST returns the cumulative distribution function; otherwise it returns the probability mass function. | |

Returns the inverse of the standard normal cumulative distribution. | NORM.S.INV(probability) Probability is a probability that corresponds to the normal distribution. | |

Returns the Pearson product moment correlation coefficient, a statistical measurement of the correlation between two sets of values. | PEARSON(array1,array2) Array1 is a set of independent values, and array2 is a set of dependent values. | |

Returns the k-th percentile of values in a range, where k is in the range 0..1, exclusive. | PERCENTILE.EXC(array, k) | |

Returns the k-th percentile of values in a range, where k is in the range 0..1, inclusive. | PERCENTILE.INC(array, k) | |

Returns the rank of a value in a data set as a percentage (0..1, exclusive) of the data set. | PERCENTRANK.EXC(array, x, [significance]) | |

Returns the rank of a value in a data set as a percentage (0..1, inclusive) of the data set. | PERCENTRANK.INC(array, x, [significance]) | |

Returns the number of permutations for a given number of objects that can be selected from the total objects. | PERMUT(number, number_chosen) | |

Returns the number of permutations for a given number of objects (with repetitions) that can be selected from the total objects. | PERMUTATIONA(number, number-chosen) | |

Returns the value of the density function for a standard normal distribution. | PHI(x) | |

Returns the Poisson distribution. | POISSON.DIST(x,mean,cumulative) | |

Returns the probability that values in a range are between two limits. | PROB(x_range, prob_range, [lower_limit], [upper_limit]) | |

Returns the quartile of a data set, based on percentile values from 0..1, exclusive. | QUARTILE.EXC(array, quart) | |

Returns the quartile of a data set, based on percentile values from 0..1, inclusive. | QUARTILE.INC(array,quart) | |

Returns the rank of a number in a list of numbers: its size relative to other values in the list. If more than one value has the same rank, the average rank is returned. | RANK.AVG(number,ref,[order]) | |

Returns the rank of a number in a list of numbers. Its size is relative to other values in the list. If more than one value has the same rank, the top rank of that set of values is returned. | RANK.EQ(number,ref,[order]) | |

Returns the square of the Pearson product moment correlation coefficient through data points in known_y’s and known_x’s. | RSQ(known_y’s,known_x’s) | |

Returns the skewness (the degree of asymmetry) of a distribution. | SKEW(number1, [number2], …) Number1 is required, subsequent numbers are optional. You can supply up to 255 arguments for which you want to calculate skewness or use a single array or a reference to an array instead of arguments separated by commas. | |

Returns the skewness of a distribution based on a population: a characterization of the degree of asymmetry of a distribution around its mean. | SKEW.P(number 1, [number 2],…) | |

Returns the slope of the linear regression line through data points in known_y’s and known_x’s. | SLOPE(known_y’s, known_x’s) Known_y’s is an array or cell range of numeric dependent data points. Known_x’s is the set of independent data points. | |

Returns the k-th smallest value in a data set. | SMALL array, k ) The array argument is an array or range of data for which the k-th smallest value is determined. The k argument is the position (from the smallest) in the array or range of data to return. | |

Returns a normalized value from a distribution characterized by mean and standard_dev. | STANDARDIZE(x,mean,standard_dev) | |

Returns the standard error of the predicted y-value for each x in the regression. | STEYX(known_y’s, known_x’s) | |

Calculates standard deviation based on a sample. | STDEVA(value1, [value2], …) The arguments value1, [value2], … are numerical values or references to cells. You can enter up to 255 arguments. Arguments can be the following: numbers, names, arrays, references that contain numbers, text representations of numbers, or logical values. | |

Calculates standard deviation based on the entire population, including numbers, text, and logical values. | STDEVPA(value1,value2,…) | |

Calculates the standard deviation based on the entire population (ignores logical values and text). | STDEV.P(number1,[number2],…]) | |

Calculates the standard deviation based on a sample (ignores logical values and text in the sample). | STDEV.S(number1,[number2],…) | |

Returns the Student’s left-tailed t-distribution. | T.DIST(x,deg_freedom, cumulative) | |

Returns the two-tailed Student’s t-distribution. | T.DIST.2T(x,deg_freedom) | |

Returns the right-tailed Student’s t-distribution. | T.DIST.RT(x,deg_freedom) | |

Returns the left-tailed inverse of the Student’s t-distribution. | T.INV(probability,deg_freedom) | |

Returns the two-tailed inverse of the Student’s t-distribution. | T.INV.2T(probability,deg_freedom) | |

Returns the probability associated with a Student’s t-Test. | T.TEST(array1,array2,tails,type) | |

Returns values along a linear trend. It fits a straight line (using the method of least squares) to the arrays known_y’s and known_x’s. TREND returns the y-values along that line for the specified array of new_x’s. | TREND(known_y’s, [known_x’s], [new_x’s], [const]) Known_y’s is the set of y-values for the relationship y = mx + b. Known_x’s is an optional set of x-values for the relationship. If omitted, it is assumed to be the array {1,2,3,…} that is the same size as known_y’s. New_x’s is an optional set of new x-values for which you want TREND to return corresponding y-values. If omitted, it is assumed to be the same as known_x’s. Const is an optional logical value that specifies whether to force the constant b to equal 0. | |

Returns the mean of the interior of a data set. | TRIMMEAN(array, percent) | |

Estimates variance based on a sample, including numbers, text, and logical values. | VARA(value1, [value2], …) | |

Calculates variance based on the entire population, including numbers, text, and logical values. | VARPA(value1, [value2], …) | |

Calculates variance based on the entire population (ignores logical values and text in the population). | VAR.P(number1,[number2],…]) | |

Estimates variance based on a sample (ignores logical values and text in the sample). | VAR.S(number1,[number2],…]) | |

Returns the Weibull distribution. | WEIBULL.DIST(x,alpha,beta,cumulative) | |

Returns the one-tailed probability-value of a z-test. | Z.TEST(array,x,[sigma]) |