# Built-in functions

# Overview

HyperFormula comes with an extensive library of pre-built functions. You can use them to create complex formulas for any business application. Formula syntax and logic of function are similar to what is considered the standard in modern spreadsheet software. That is because a spreadsheet is probably the most universal software ever created. We wanted the same flexibility for HyperFormula but without the constraints of the spreadsheet UI.

Each of HyperFormula's built-in function names is available in 17 languages and custom language packs can be added.

The latest version of HyperFormula has an extensive collection of 423 functions grouped into categories:

Some categories such as compatibility and cube are yet to be supported.

TIP

You can modify the built-in functions or create your own, by adding a custom function.

# List of available functions

Total number of functions: 423

# Array manipulation

Function ID Description Syntax
ARRAY_CONSTRAIN Truncates an array to given dimensions. ARRAY_CONSTRAIN(array, height, width)
ARRAYFORMULA Enables the array arithmetic mode for a single formula. ARRAYFORMULA(formula)
FILTER Filters an array, based on multiple conditions (boolean arrays). FILTER(source_array, bool_array1, ...)
HSTACK Stacks arrays horizontally into a single array. HSTACK(array1, ...)
SEQUENCE Returns an array of sequential numbers. SEQUENCE(rows, [cols], [start], [step])
SORT Sorts the rows or columns of an array. SORT(array, [sort_index], [sort_order], [by_col])
UNIQUE Returns the unique rows or columns of an array. UNIQUE(array, [by_col], [exactly_once])
VSTACK Stacks arrays vertically into a single array. VSTACK(array1, ...)

# Database

Function ID Description Syntax
DAVERAGE Returns the average of all values in a database field that match the given criteria. DAVERAGE(database, field, criteria)
DCOUNT Counts the cells containing numbers in a database field that match the given criteria. DCOUNT(database, field, criteria)
DCOUNTA Counts the non-empty cells in a database field that match the given criteria. DCOUNTA(database, field, criteria)
DGET Returns the single value from a database field that matches the given criteria. Returns #VALUE! if no records match, and #NUM! if more than one record matches. DGET(database, field, criteria)
DMAX Returns the maximum value in a database field that matches the given criteria. DMAX(database, field, criteria)
DMIN Returns the minimum value in a database field that matches the given criteria. DMIN(database, field, criteria)
DPRODUCT Returns the product of all values in a database field that match the given criteria. DPRODUCT(database, field, criteria)
DSTDEV Returns the sample standard deviation of all values in a database field that match the given criteria. DSTDEV(database, field, criteria)
DSTDEVP Returns the population standard deviation of all values in a database field that match the given criteria. DSTDEVP(database, field, criteria)
DSUM Returns the sum of all values in a database field that match the given criteria. DSUM(database, field, criteria)
DVAR Returns the sample variance of all values in a database field that match the given criteria. DVAR(database, field, criteria)
DVARP Returns the population variance of all values in a database field that match the given criteria. DVARP(database, field, criteria)

# Date and time

Function ID Description Syntax
DATE Returns the specified date as the number of full days since nullDate (opens new window). DATE(year, month, day)
DATEDIF Calculates distance between two dates.
Supported units: "D" (days), "M" (months), "Y" (years), "MD" (days ignoring months and years), "YM" (months ignoring years), or "YD" (days ignoring years).
DATEDIF(start_date, end_date, unit)
DATEVALUE Parses date_string and returns it as the number of full days since nullDate (opens new window).
Accepts formats set by the dateFormats (opens new window) option.
DATEVALUE(date_string)
DAY Returns the day of the given date value. DAY(number)
DAYS Calculates the difference between two date values. DAYS(end_date, start_date)
DAYS360 Calculates the difference between two date values in days, in 360-day basis. DAYS360(start_date, end_date, [format])
EDATE Shifts start_date by the given number of months and returns it as the number of full days since nullDate (opens new window).
The return value complies with the OpenDocument standard, but the return type does not; see the compatibility notes (opens new window).
EDATE(start_date, months)
EOMONTH Returns the date of the last day of the month that falls the given number of months away from start_date. Returns the value in the form of number of full days since nullDate (opens new window).
The return value complies with the OpenDocument standard, but the return type does not; see the compatibility notes (opens new window).
EOMONTH(start_date, months)
HOUR Returns hour component of given time. HOUR(time)
INTERVAL Returns interval string from given number of seconds. INTERVAL(seconds)
ISOWEEKNUM Returns an ISO week number that corresponds to the week of year. ISOWEEKNUM(date)
MINUTE Returns minute component of given time. MINUTE(time)
MONTH Returns the month for the given date value. MONTH(number)
NETWORKDAYS Returns the number of working days between two given dates. NETWORKDAYS(date1, date2, [holidays])
NETWORKDAYS.INTL Returns the number of working days between two given dates, with a configurable set of weekend days. NETWORKDAYS.INTL(date1, date2, [mode], [holidays])
NOW Returns current date + time as a number of days since nullDate (opens new window). NOW()
SECOND Returns second component of given time. SECOND(time)
TIME Returns the number that represents a given time as a fraction of full day. TIME(hour, minute, second)
TIMEVALUE Parses time_string and returns a number that represents it as a fraction of a full day.
Accepts formats set by the timeFormats (opens new window) option.
TIMEVALUE(time_string)
TODAY Returns an integer representing the current date as the number of full days since nullDate (opens new window). TODAY()
WEEKDAY Computes a number between 1-7 representing the day of week. WEEKDAY(date, [type])
WEEKNUM Returns a week number that corresponds to the week of year. WEEKNUM(date, [type])
WORKDAY Returns the date a given number of working days after the start date, skipping Saturdays and Sundays. WORKDAY(date, shift, [holidays])
WORKDAY.INTL Returns the date a given number of working days after the start date, with a configurable set of weekend days. WORKDAY.INTL(date, shift, [mode], [holidays])
YEAR Returns the year as a number according to the internal calculation rules. YEAR(number)
YEARFRAC Computes the difference between two date values, in fraction of years. YEARFRAC(start_date, end_date, [format])

# Engineering

Function ID Description Syntax
BESSELI Returns the value of the modified Bessel function of the first kind, In(x). BESSELI(x, n)
BESSELJ Returns the value of the Bessel function of the first kind, Jn(x). BESSELJ(x, n)
BESSELK Returns the value of the modified Bessel function of the second kind, Kn(x). BESSELK(x, n)
BESSELY Returns the value of the Bessel function of the second kind, Yn(x). BESSELY(x, n)
BIN2DEC The result is the decimal number for the binary number entered. BIN2DEC(number)
BIN2HEX The result is the hexadecimal number for the binary number entered. BIN2HEX(number, [places])
BIN2OCT The result is the octal number for the binary number entered. BIN2OCT(number, [places])
BITAND Returns a bitwise logical "and" of the parameters. BITAND(number1, number2)
BITLSHIFT Shifts a number left by n bits. BITLSHIFT(number, shift)
BITOR Returns a bitwise logical "or" of the parameters. BITOR(number1, number2)
BITRSHIFT Shifts a number right by n bits. BITRSHIFT(number, shift)
BITXOR Returns a bitwise logical "exclusive or" of the parameters. BITXOR(number1, number2)
COMPLEX Returns a complex number built from its real and imaginary parts. COMPLEX(re, im, [symbol])
DEC2BIN Returns the binary number for the decimal number entered between –512 and 511. DEC2BIN(number, [places])
DEC2HEX Returns the hexadecimal number for the decimal number entered. DEC2HEX(number, [places])
DEC2OCT Returns the octal number for the decimal number entered. DEC2OCT(number, [places])
DELTA Returns TRUE (1) if both numbers are equal, otherwise returns FALSE (0). DELTA(number1, [number2])
ERF Returns values of the Gaussian error integral. ERF(lower_limit, [upper_limit])
ERFC Returns complementary values of the Gaussian error integral between x and infinity. ERFC(lower_limit)
HEX2BIN The result is the binary number for the hexadecimal number entered. HEX2BIN(number, [places])
HEX2DEC The result is the decimal number for the hexadecimal number entered. HEX2DEC(number)
HEX2OCT The result is the octal number for the hexadecimal number entered. HEX2OCT(number, [places])
IMABS Returns modulus of a complex number. IMABS(complex)
IMAGINARY Returns imaginary part of a complex number. IMAGINARY(complex)
IMARGUMENT Returns argument of a complex number. IMARGUMENT(complex)
IMCONJUGATE Returns conjugate of a complex number. IMCONJUGATE(complex)
IMCOS Returns cosine of a complex number. IMCOS(complex)
IMCOSH Returns hyperbolic cosine of a complex number. IMCOSH(complex)
IMCOT Returns cotangent of a complex number. IMCOT(complex)
IMCSC Returns cosecant of a complex number. IMCSC(complex)
IMCSCH Returns hyperbolic cosecant of a complex number. IMCSCH(complex)
IMDIV Divides two complex numbers. IMDIV(complex1, complex2)
IMEXP Returns exponent of a complex number. IMEXP(complex)
IMLN Returns natural logarithm of a complex number. IMLN(complex)
IMLOG10 Returns base-10 logarithm of a complex number. IMLOG10(complex)
IMLOG2 Returns binary logarithm of a complex number. IMLOG2(complex)
IMPOWER Returns a complex number raised to a given power. IMPOWER(complex, number)
IMPRODUCT Multiplies complex numbers. IMPRODUCT(complex1, ...)
IMREAL Returns real part of a complex number. IMREAL(complex)
IMSEC Returns the secant of a complex number. IMSEC(complex)
IMSECH Returns the hyperbolic secant of a complex number. IMSECH(complex)
IMSIN Returns sine of a complex number. IMSIN(complex)
IMSINH Returns hyperbolic sine of a complex number. IMSINH(complex)
IMSQRT Returns a square root of a complex number. IMSQRT(complex)
IMSUB Subtracts two complex numbers. IMSUB(complex1, complex2)
IMSUM Adds complex numbers. IMSUM(complex1, ...)
IMTAN Returns the tangent of a complex number. IMTAN(complex)
OCT2BIN The result is the binary number for the octal number entered. OCT2BIN(number, [places])
OCT2DEC The result is the decimal number for the octal number entered. OCT2DEC(number)
OCT2HEX The result is the hexadecimal number for the octal number entered. OCT2HEX(number, [places])

# Financial

Function ID Description Syntax
CUMIPMT Returns the cumulative interest paid on a loan between a start period and an end period. CUMIPMT(rate, nper, pv, start, end, type)
CUMPRINC Returns the cumulative principal paid on a loan between a start period and an end period. CUMPRINC(rate, nper, pv, start, end, type)
DB Returns the depreciation of an asset for a period using the fixed-declining balance method. DB(cost, salvage, life, period, [month])
DDB Returns the depreciation of an asset for a period using the double-declining balance method. DDB(cost, salvage, life, period, [factor])
DOLLARDE Converts a price entered with a special notation to a price displayed as a decimal number. DOLLARDE(price, fraction)
DOLLARFR Converts a price displayed as a decimal number to a price entered with a special notation. DOLLARFR(price, fraction)
EFFECT Calculates the effective annual interest rate from a nominal interest rate and the number of compounding periods per year. EFFECT(nominal_rate, npery)
FV Returns the future value of an investment. FV(rate, nper, pmt, [pv], [type])
FVSCHEDULE Returns the future value of an investment based on a rate schedule. FVSCHEDULE(pv, schedule)
IPMT Returns the interest portion of a given loan payment in a given payment period. IPMT(rate, per, nper, pv, [fv], [type])
IRR Returns the internal rate of return for a series of cash flows. IRR(values, [guess])
ISPMT Returns the interest paid for a given period of an investment with equal principal payments. ISPMT(rate, per, nper, value)
MIRR Returns the modified internal rate of return for a series of cash flows. MIRR(flows, f_rate, r_rate)
NOMINAL Returns the nominal interest rate. NOMINAL(effect_rate, npery)
NPER Returns the number of periods for an investment assuming periodic, constant payments and a constant interest rate. NPER(rate, pmt, pv, [fv], [type])
NPV Returns net present value. NPV(rate, value1, ...)
PDURATION Returns number of periods to reach specific value. PDURATION(rate, pv, fv)
PMT Returns the periodic payment for a loan. PMT(rate, nper, pv, [fv], [type])
PPMT Calculates the principal portion of a given loan payment. PPMT(rate, per, nper, pv, [fv], [type])
PV Returns the present value of an investment. PV(rate, nper, pmt, [fv], [type])
RATE Returns the interest rate per period of an annuity. RATE(nper, pmt, pv, [fv], [type], [guess])
RRI Returns an equivalent interest rate for the growth of an investment. RRI(nper, pv, fv)
SLN Returns the depreciation of an asset for one period, based on a straight-line method. SLN(cost, salvage, life)
SYD Returns the "sum-of-years" depreciation for an asset in a period. SYD(cost, salvage, life, period)
TBILLEQ Returns the bond-equivalent yield for a Treasury bill. TBILLEQ(settlement, maturity, discount)
TBILLPRICE Returns the price per $100 face value for a Treasury bill. TBILLPRICE(settlement, maturity, discount)
TBILLYIELD Returns the yield for a Treasury bill. TBILLYIELD(settlement, maturity, price)
XIRR Returns the internal rate of return for a schedule of cash flows that is not necessarily periodic. XIRR(values, dates, [guess])
XNPV Returns the net present value for a schedule of cash flows that is not necessarily periodic. XNPV(rate, payments, dates)

# Information

Function ID Description Syntax
ISBINARY Returns TRUE if provided value is a valid binary number. ISBINARY(value)
ISBLANK Returns TRUE if the reference to a cell is blank. ISBLANK(value)
ISERR Returns TRUE if the value is error value except #N/A!. ISERR(value)
ISERROR Returns TRUE if the value is general error value. ISERROR(value)
ISEVEN Returns TRUE if the value is an even integer, or FALSE otherwise. A value with a fractional part is neither even nor odd, so it returns FALSE. ISEVEN(value)
ISFORMULA Checks whether referenced cell is a formula. ISFORMULA(value)
ISLOGICAL Tests for a logical value (TRUE or FALSE). ISLOGICAL(value)
ISNA Returns TRUE if the value is #N/A! error. ISNA(value)
ISNONTEXT Tests if the cell contents are text or numbers, and returns FALSE if the contents are text. ISNONTEXT(value)
ISNUMBER Returns TRUE if the value refers to a number. ISNUMBER(value)
ISODD Returns TRUE if the value is an odd integer, or FALSE otherwise. A value with a fractional part is neither odd nor even, so it returns FALSE. ISODD(value)
ISREF Returns TRUE if provided value is #REF! error. ISREF(value)
ISTEXT Returns TRUE if the cell contents reference text. ISTEXT(value)
N Converts a value to a number. N(value)
NA Returns #N/A! error value. NA()
SHEET Returns sheet number of a given value or a formula sheet number if no argument is provided. SHEET([value])
SHEETS Returns number of sheet of a given reference or number of all sheets in workbook when no argument is provided. SHEETS([value])
VERSION Returns the HyperFormula version and the license key status as a single text value, e.g. "HyperFormula v3.0.0, 1" (a status code, or the last five characters of the license key). VERSION()

# Logical

Function ID Description Syntax
AND Returns TRUE if all arguments are TRUE. AND(logical_value1, ...)
FALSE Returns the logical value FALSE. FALSE()
IF Specifies a logical test to be performed. IF(test, then_value, [otherwise_value])
IFERROR Returns the value if the cell does not contains an error value, or the alternative value if it does. IFERROR(value, alternate_value)
IFNA Returns the value if the cell does not contains the #N/A (value not available) error value, or the alternative value if it does. IFNA(value, alternate_value)
IFS Evaluates multiple logical tests and returns a value that corresponds to the first true condition. IFS(condition1, value1, [condition2, value2], ...)
NOT Complements (inverts) logical_value. NOT(logical_value)
OR Returns TRUE if at least one argument is TRUE. OR(logical_value1, ...)
SWITCH Compares expression against value1, value2, ... in order and returns the paired result1, result2, ...; a candidate value that is an error is skipped rather than matched. SWITCH(expression, value1, result1, ...)
TRUE Returns the logical value TRUE. TRUE()
XOR Returns true if an odd number of arguments evaluates to TRUE. XOR(logical_value1, ...)

# Lookup and reference

Function ID Description Syntax
ADDRESS Returns a cell reference as a string. ADDRESS(row, column, [absolute_relative_mode], [use_a1_notation], [sheet])
CHOOSE Uses an index to return a value from a list of values. CHOOSE(index, value1, ...)
COLUMN Returns column number of a given reference or formula reference if argument not provided. COLUMN([reference])
COLUMNS Returns the number of columns in the given reference. COLUMNS(array)
FORMULATEXT Returns a formula in a given cell as a string. FORMULATEXT(reference)
HLOOKUP Searches horizontally with reference to adjacent cells to the bottom. HLOOKUP(search_criterion, array, index, [sort_order])
HYPERLINK Stores the url in the cell's metadata. It can be read using method getCellHyperlink (opens new window) HYPERLINK(url, [link_label])
INDEX Returns the contents of a cell specified by row and column number. The column number is optional and defaults to 1. INDEX(range, row, [column])
MATCH Returns the relative position of an item in an array that matches a specified value. MATCH(search_criterion, lookup_array, [match_type])
OFFSET Returns the value of a cell offset by a certain number of rows and columns from a given reference point. OFFSET(reference, rows, columns, [height], [width])
ROW Returns row number of a given reference or formula reference if argument not provided. ROW([reference])
ROWS Returns the number of rows in the given reference. ROWS(array)
VLOOKUP Searches vertically with reference to adjacent cells to the right. VLOOKUP(search_criterion, array, index, [sort_order])
XLOOKUP Searches for a key in a range and returns the item corresponding to the match it finds. If no match exists, then XLOOKUP can return the closest (approximate) match. XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

# Math and trigonometry

Function ID Description Syntax
ABS Returns the absolute value of a number. ABS(number)
ACOS Returns the inverse trigonometric cosine of a number. ACOS(number)
ACOSH Returns the inverse hyperbolic cosine of a number. ACOSH(number)
ACOT Returns the inverse trigonometric cotangent of a number. ACOT(number)
ACOTH Returns the inverse hyperbolic cotangent of a number. ACOTH(number)
ARABIC Converts number from roman form. ARABIC(string)
ASIN Returns the inverse trigonometric sine of a number. ASIN(number)
ASINH Returns the inverse hyperbolic sine of a number. ASINH(number)
ATAN Returns the inverse trigonometric tangent of a number. ATAN(number)
ATAN2 Returns the inverse trigonometric tangent of the specified x and y coordinates. ATAN2(number_x, number_y)
ATANH Returns the inverse hyperbolic tangent of a number. ATANH(number)
BASE Converts a non-negative integer to a specified base into a text from the numbering system. BASE(number, radix, [minimum_length])
CEILING Rounds a number up to the nearest multiple of significance, toward positive infinity when significance is positive and toward negative infinity when it is negative. CEILING(number, significance)
CEILING.MATH Rounds a number up to the nearest multiple of significance, ignoring the sign of significance; for a negative number, mode selects whether it rounds toward or away from zero. CEILING.MATH(number, [significance], [mode])
CEILING.PRECISE Rounds a number up toward positive infinity to the nearest multiple of significance, whatever the sign of significance. CEILING.PRECISE(number, [significance])
COMBIN Returns number of combinations (without repetitions). COMBIN(number1, number2)
COMBINA Returns number of combinations (with repetitions). COMBINA(number1, number2)
COS Returns the cosine of the given angle (in radians). COS(number)
COSH Returns the hyperbolic cosine of the given value. COSH(number)
COT Returns the cotangent of the given angle (in radians). COT(number)
COTH Returns the hyperbolic cotangent of the given value. COTH(number)
CSC Returns the cosecant of the given angle (in radians). CSC(number)
CSCH Returns the hyperbolic cosecant of the given value. CSCH(number)
DECIMAL Converts text with characters from a number system to a non-negative integer in the base radix given. DECIMAL(text, radix)
DEGREES Converts radians into degrees. DEGREES(number)
EVEN Rounds a positive number up to the next even integer and a negative number down to the next even integer. EVEN(number)
EXP Returns constant e raised to the power of a number. EXP(number)
FACT Returns a factorial of a number. FACT(number)
FACTDOUBLE Returns a double factorial of a number. FACTDOUBLE(number)
FLOOR Rounds a number down to the nearest multiple of significance, toward negative infinity when significance is positive and toward positive infinity when it is negative. FLOOR(number, significance)
FLOOR.MATH Rounds a number down to the nearest multiple of significance, ignoring the sign of significance; for a negative number, mode selects whether it rounds toward or away from zero. FLOOR.MATH(number, [significance], [mode])
FLOOR.PRECISE Rounds a number down toward negative infinity to the nearest multiple of significance, whatever the sign of significance. FLOOR.PRECISE(number, [significance])
GCD Computes greatest common divisor of numbers. GCD(number1, ...)
INT Returns the integer part of a number by discarding its fractional part. INT(number)
ISO.CEILING Rounds a number up toward positive infinity to the nearest multiple of significance, whatever the sign of significance. ISO.CEILING(number, [significance])
LCM Computes least common multiple of numbers. LCM(number1, ...)
LN Returns the natural logarithm based on the constant e of a number. LN(number)
LOG Returns the logarithm of a number to the specified base. LOG(number, [base])
LOG10 Returns the base-10 logarithm of a number. LOG10(number)
MOD Returns the remainder when one number is divided by another. MOD(dividend, divisor)
MROUND Rounds a number to the nearest multiple. MROUND(number, base)
MULTINOMIAL Returns number of multiset combinations. MULTINOMIAL(number1, ...)
ODD Rounds a positive number up to the nearest odd integer and a negative number down to the nearest odd integer. ODD(number)
PI Returns 3.14159265358979, the value of the mathematical constant PI to 14 decimal places. PI()
POWER Returns a number raised to another number. POWER(base, exponent)
PRODUCT Returns product of numbers. PRODUCT(number1, ...)
QUOTIENT Returns integer part of a division. QUOTIENT(dividend, divisor)
RADIANS Converts degrees to radians. RADIANS(number)
RAND Returns a random number between 0 and 1. RAND()
RANDBETWEEN Returns a random integer between two numbers. RANDBETWEEN(lower_bound, upper_bound)
ROMAN Converts number to roman form. ROMAN(number, [mode])
ROUND Rounds a number to a certain number of decimal places. ROUND(number, [count])
ROUNDDOWN Rounds a number down, toward zero, to a certain precision. ROUNDDOWN(number, [count])
ROUNDUP Rounds a number up, away from zero, to a certain precision. ROUNDUP(number, [count])
SEC Returns the secant of the given angle (in radians). SEC(number)
SECH Returns the hyperbolic secant of the given value. SECH(number)
SERIESSUM Evaluates series at a point. SERIESSUM(x, n, m, coefficients)
SIGN Returns sign of a number. SIGN(number)
SIN Returns the sine of the given angle (in radians). SIN(number)
SINH Returns the hyperbolic sine of the given value. SINH(number)
SQRT Returns the positive square root of a number. SQRT(number)
SQRTPI Returns sqrt of number times pi. SQRTPI(number)
SUBTOTAL Computes aggregation using function specified by number. SUBTOTAL(function, number1, ...)
SUM Sums up the values of the specified cells. SUM(number1, ...)
SUMIF Sums up the values of cells that belong to the specified range and meet the specified condition. SUMIF(range, criteria, [sum_range])
SUMIFS Sums up the values of cells that belong to the specified range and meet the specified sets of conditions. SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
SUMPRODUCT Multiplies corresponding elements in the given arrays, and returns the sum of those products. SUMPRODUCT(array1, ...)
SUMSQ Returns the sum of the squares of the arguments. SUMSQ(number1, ...)
SUMX2MY2 Returns the sum of the differences of the squares of paired values, that is the sum of x squared minus y squared over all pairs. SUMX2MY2(array_x, array_y)
SUMX2PY2 Returns the sum of the sums of the squares of paired values, that is the sum of x squared plus y squared over all pairs. SUMX2PY2(array_x, array_y)
SUMXMY2 Returns the sum of the squares of the differences of paired values, that is the sum of x minus y, squared, over all pairs. SUMXMY2(array_x, array_y)
TAN Returns the tangent of the given angle (in radians). TAN(number)
TANH Returns the hyperbolic tangent of the given value. TANH(number)
TRUNC Rounds a number down, toward zero, to a certain precision. TRUNC(number, [count])

# Matrix functions

Function ID Description Syntax
MAXPOOL Calculates a smaller range which is a maximum of a window_size, in a given range, for every stride element. MAXPOOL(range, window_size, [stride])
MEDIANPOOL Calculates a smaller range which is a median of a window_size, in a given range, for every stride element. MEDIANPOOL(range, window_size, [stride])
MMULT Calculates the array product of two arrays. MMULT(array1, array2)
TRANSPOSE Transposes the rows and columns of an array. TRANSPOSE(array)

# Operator

Function ID Description Syntax
HF.ADD Adds two values. HF.ADD(number1, number2)
HF.CONCAT Concatenates two strings. HF.CONCAT(string1, string2)
HF.DIVIDE Divides two values. HF.DIVIDE(number1, number2)
HF.EQ Tests two values for equality. HF.EQ(value1, value2)
HF.GT Tests two values for greater-than relation. HF.GT(value1, value2)
HF.GTE Tests two values for greater-equal relation. HF.GTE(value1, value2)
HF.LT Tests two values for less-than relation. HF.LT(value1, value2)
HF.LTE Tests two values for less-equal relation. HF.LTE(value1, value2)
HF.MINUS Subtracts two values. HF.MINUS(number1, number2)
HF.MULTIPLY Multiplies two values. HF.MULTIPLY(number1, number2)
HF.NE Tests two values for inequality. HF.NE(value1, value2)
HF.POW Computes power of two values. HF.POW(number1, number2)
HF.UMINUS Negates the value. HF.UMINUS(number)
HF.UNARY_PERCENT Applies percent operator. HF.UNARY_PERCENT(number)
HF.UPLUS Applies unary plus. HF.UPLUS(number)

# Statistical

Function ID Description Syntax
AVEDEV Returns the average deviation of the arguments. AVEDEV(number1, ...)
AVERAGE Returns the average of the arguments. AVERAGE(number1, ...)
AVERAGEA Returns the average of the arguments, counting text and logical values found in ranges. AVERAGEA(value1, ...)
AVERAGEIF Returns the arithmetic mean of all cells in a range that satisfy a given condition. AVERAGEIF(range, criteria, [average_range])
BETA.DIST Returns the density of the beta distribution. BETA.DIST(x, alpha, beta, cumulative, [lower_bound], [upper_bound])
BETA.INV Returns the inverse of the beta distribution value. BETA.INV(probability, alpha, beta, [lower_bound], [upper_bound])
BETADIST Returns the density of the beta distribution. BETADIST(x, alpha, beta, cumulative, [lower_bound], [upper_bound])
BETAINV Returns the inverse of the beta distribution value. BETAINV(probability, alpha, beta, [lower_bound], [upper_bound])
BINOM.DIST Returns density of binomial distribution. BINOM.DIST(number_s, trials, probability_s, cumulative)
BINOM.INV Returns inverse binomial distribution value. BINOM.INV(trials, probability_s, alpha)
BINOMDIST Returns density of binomial distribution. BINOMDIST(number_s, trials, probability_s, cumulative)
CHIDIST Returns probability of chi-square right-side distribution. CHIDIST(x, degrees)
CHIDISTRT Returns probability of chi-square right-side distribution. CHIDISTRT(x, degrees)
CHIINV Returns inverse of chi-square right-side distribution. CHIINV(p, degrees)
CHIINVRT Returns inverse of chi-square right-side distribution. CHIINVRT(p, degrees)
CHISQ.DIST Returns value of chi-square distribution. CHISQ.DIST(x, degrees, cumulative)
CHISQ.DIST.RT Returns probability of chi-square right-side distribution. CHISQ.DIST.RT(x, degrees)
CHISQ.INV Returns inverse of chi-square distribution. CHISQ.INV(p, degrees)
CHISQ.INV.RT Returns inverse of chi-square right-side distribution. CHISQ.INV.RT(p, degrees)
CHISQ.TEST Returns chisquared-test value for a dataset. CHISQ.TEST(array1, array2)
CHITEST Returns chisquared-test value for a dataset. CHITEST(array1, array2)
CONFIDENCE Returns upper confidence bound for normal distribution. CONFIDENCE(alpha, stdev, size)
CONFIDENCE.NORM Returns upper confidence bound for normal distribution. CONFIDENCE.NORM(alpha, stdev, size)
CONFIDENCE.T Returns upper confidence bound for T distribution. CONFIDENCE.T(alpha, stdev, size)
CORREL Returns the correlation coefficient between two data sets. CORREL(data1, data2)
COUNT Counts how many numbers are in the list of arguments. COUNT(value1, ...)
COUNTA Counts how many values are in the list of arguments. COUNTA(value1, ...)
COUNTBLANK Returns the number of empty cells. COUNTBLANK(range, ...)
COUNTIF Returns the number of cells that meet with certain criteria within a cell range. COUNTIF(range, criteria)
COUNTIFS Returns the count of rows or columns that meet criteria in multiple ranges. COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)
COUNTUNIQUE Counts the number of unique values in a list of specified values and ranges. COUNTUNIQUE(value1, ...)
COVAR Returns the covariance between two data sets, population normalized. COVAR(data1, data2)
COVARIANCE.P Returns the covariance between two data sets, population normalized. COVARIANCE.P(data1, data2)
COVARIANCE.S Returns the covariance between two data sets, sample normalized. COVARIANCE.S(data1, data2)
COVARIANCEP Returns the covariance between two data sets, population normalized. COVARIANCEP(data1, data2)
COVARIANCES Returns the covariance between two data sets, sample normalized. COVARIANCES(data1, data2)
CRITBINOM Returns inverse binomial distribution value. CRITBINOM(trials, probability_s, alpha)
DEVSQ Returns sum of squared deviations. DEVSQ(number1, ...)
EXPON.DIST Returns density of a exponential distribution. EXPON.DIST(x, lambda, cumulative)
EXPONDIST Returns density of a exponential distribution. EXPONDIST(x, lambda, cumulative)
F.DIST Returns value of F distribution. F.DIST(x, degree1, degree2, cumulative)
F.DIST.RT Returns probability of F right-side distribution. F.DIST.RT(x, degree1, degree2)
F.INV Returns inverse of F distribution. F.INV(p, degree1, degree2)
F.INV.RT Returns inverse of F right-side distribution. F.INV.RT(p, degree1, degree2)
F.TEST Returns f-test value for a dataset. F.TEST(array1, array2)
FDIST Returns probability of F right-side distribution. FDIST(x, degree1, degree2)
FDISTRT Returns probability of F right-side distribution. FDISTRT(x, degree1, degree2)
FINV Returns inverse of F right-side distribution. FINV(p, degree1, degree2)
FINVRT Returns inverse of F right-side distribution. FINVRT(p, degree1, degree2)
FISHER Returns Fisher transformation value. FISHER(number)
FISHERINV Returns inverse Fisher transformation value. FISHERINV(number)
FTEST Returns f-test value for a dataset. FTEST(array1, array2)
GAMMA Returns value of Gamma function. GAMMA(number)
GAMMA.DIST Returns density of Gamma distribution. GAMMA.DIST(x, alpha, beta, cumulative)
GAMMA.INV Returns inverse Gamma distribution value. GAMMA.INV(probability, alpha, beta)
GAMMADIST Returns density of Gamma distribution. GAMMADIST(x, alpha, beta, cumulative)
GAMMAINV Returns inverse Gamma distribution value. GAMMAINV(probability, alpha, beta)
GAMMALN Returns natural logarithm of Gamma function. GAMMALN(number)
GAMMALN.PRECISE Returns natural logarithm of Gamma function. GAMMALN.PRECISE(number)
GAUSS Returns the probability that a member of a standard normal population falls between the mean and number standard deviations from the mean. GAUSS(number)
GEOMEAN Returns the geometric average. GEOMEAN(number1, ...)
HARMEAN Returns the harmonic average. HARMEAN(number1, ...)
HYPGEOM.DIST Returns density of hypergeometric distribution. HYPGEOM.DIST(sample_s, number_sample, population_s, number_population, cumulative)
HYPGEOMDIST Returns density of hypergeometric distribution. HYPGEOMDIST(sample_s, number_sample, population_s, number_population, cumulative)
LARGE Returns k-th largest value in a range. LARGE(range, k)
LOGINV Returns value of inverse lognormal distribution. LOGINV(p, mean, stddev)
LOGNORM.DIST Returns density of lognormal distribution. LOGNORM.DIST(x, mean, stddev, cumulative)
LOGNORM.INV Returns value of inverse lognormal distribution. LOGNORM.INV(p, mean, stddev)
LOGNORMDIST Returns density of lognormal distribution. LOGNORMDIST(x, mean, stddev, cumulative)
LOGNORMINV Returns value of inverse lognormal distribution. LOGNORMINV(p, mean, stddev)
MAX Returns the maximum value in a list of arguments. MAX(number1, ...)
MAXA Returns the maximum value in a list of arguments, counting text and logical values found in ranges. MAXA(value1, ...)
MAXIFS Returns the maximum value of the cells in a range that meet a set of criteria. MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
MEDIAN Returns the median of a set of numbers. MEDIAN(number1, ...)
MIN Returns the minimum value in a list of arguments. MIN(number1, ...)
MINA Returns the minimum value in a list of arguments, counting text and logical values found in ranges. MINA(value1, ...)
MINIFS Returns the minimum value of the cells in a range that meet a set of criteria. MINIFS(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
NEGBINOM.DIST Returns density of negative binomial distribution. NEGBINOM.DIST(number_f, number_s, probability_s, cumulative)
NEGBINOMDIST Returns density of negative binomial distribution. NEGBINOMDIST(number_f, number_s, probability_s, cumulative)
NORM.DIST Returns density of normal distribution. NORM.DIST(x, mean, stddev, cumulative)
NORM.INV Returns value of inverse normal distribution. NORM.INV(p, mean, stddev)
NORM.S.DIST Returns density of the standard normal distribution (mean 0, standard deviation 1). NORM.S.DIST(x, cumulative)
NORM.S.INV Returns value of the inverse standard normal distribution (mean 0, standard deviation 1). NORM.S.INV(p)
NORMDIST Returns density of normal distribution. NORMDIST(x, mean, stddev, cumulative)
NORMINV Returns value of inverse normal distribution. NORMINV(p, mean, stddev)
NORMSDIST Returns density of the standard normal distribution (mean 0, standard deviation 1). NORMSDIST(x, cumulative)
NORMSINV Returns value of the inverse standard normal distribution (mean 0, standard deviation 1). NORMSINV(p)
PEARSON Returns the correlation coefficient between two data sets. PEARSON(data1, data2)
PERCENTILE Returns the k-th percentile of values in a range, inclusive of 0 and 1. PERCENTILE(data, k)
PERCENTILE.EXC Returns the k-th percentile of values in a range, exclusive of 0 and 1. PERCENTILE.EXC(data, k)
PERCENTILE.INC Returns the k-th percentile of values in a range, inclusive of 0 and 1. PERCENTILE.INC(data, k)
PHI Returns probability density of normal distribution. PHI(x)
POISSON Returns density of Poisson distribution. POISSON(x, mean, cumulative)
POISSON.DIST Returns density of Poisson distribution. POISSON.DIST(x, mean, cumulative)
POISSONDIST Returns density of Poisson distribution. POISSONDIST(x, mean, cumulative)
QUARTILE Returns the quartile of a data set, based on inclusive percentile values. QUARTILE(data, quart)
QUARTILE.EXC Returns the quartile of a data set, based on exclusive percentile values. QUARTILE.EXC(data, quart)
QUARTILE.INC Returns the quartile of a data set, based on inclusive percentile values. QUARTILE.INC(data, quart)
RSQ Returns the squared correlation coefficient between two data sets. RSQ(data1, data2)
SKEW Returns skewness of a sample. SKEW(number1, ...)
SKEW.P Returns skewness of a population. SKEW.P(number1, ...)
SKEWP Returns skewness of a population. SKEWP(number1, ...)
SLOPE Returns the slope of a linear regression line. SLOPE(array1, array2)
SMALL Returns k-th smallest value in a range. SMALL(range, k)
STANDARDIZE Returns normalized value wrt expected value and standard deviation. STANDARDIZE(x, mean, stddev)
STDEV Returns standard deviation of a sample. STDEV(value1, ...)
STDEV.P Returns standard deviation of a population. STDEV.P(value1, ...)
STDEV.S Returns standard deviation of a sample. STDEV.S(value1, ...)
STDEVA Returns standard deviation of a sample, counting text and logical values found in ranges. STDEVA(value1, ...)
STDEVP Returns standard deviation of a population. STDEVP(value1, ...)
STDEVPA Returns standard deviation of a population, counting text and logical values found in ranges. STDEVPA(value1, ...)
STDEVS Returns standard deviation of a sample. STDEVS(value1, ...)
STEYX Returns standard error for predicted of the predicted y value for each x value. STEYX(array1, array2)
T.DIST Returns density of Student-t distribution. T.DIST(x, degrees, cumulative)
T.DIST.2T Returns density of Student-t distribution, both-sided. T.DIST.2T(x, degrees)
T.DIST.RT Returns density of Student-t distribution, right-tailed. T.DIST.RT(x, degrees)
T.INV Returns inverse Student-t distribution. T.INV(p, degrees)
T.INV.2T Returns inverse Student-t distribution, both-sided. T.INV.2T(p, degrees)
T.TEST Returns t-test value for a dataset. T.TEST(array1, array2, tails, type)
TDIST Returns density of Student-t distribution, both-sided or right-tailed. TDIST(x, degrees, tails)
TDIST2T Returns density of Student-t distribution, both-sided. TDIST2T(x, degrees)
TDISTRT Returns density of Student-t distribution, right-tailed. TDISTRT(x, degrees)
TINV Returns inverse Student-t distribution, both-sided. TINV(p, degrees)
TINV2T Returns inverse Student-t distribution, both-sided. TINV2T(p, degrees)
TTEST Returns t-test value for a dataset. TTEST(array1, array2, tails, type)
VAR Returns variance of a sample. VAR(value1, ...)
VAR.P Returns variance of a population. VAR.P(value1, ...)
VAR.S Returns variance of a sample. VAR.S(value1, ...)
VARA Returns variance of a sample, counting text and logical values found in ranges. VARA(value1, ...)
VARP Returns variance of a population. VARP(value1, ...)
VARPA Returns variance of a population, counting text and logical values found in ranges. VARPA(value1, ...)
VARS Returns variance of a sample. VARS(value1, ...)
WEIBULL Returns density of Weibull distribution. WEIBULL(x, alpha, beta, cumulative)
WEIBULL.DIST Returns density of Weibull distribution. WEIBULL.DIST(x, alpha, beta, cumulative)
WEIBULLDIST Returns density of Weibull distribution. WEIBULLDIST(x, alpha, beta, cumulative)
Z.TEST Returns z-test value for a dataset. Z.TEST(array, x, [sigma])
ZTEST Returns z-test value for a dataset. ZTEST(array, x, [sigma])

# Text

Function ID Description Syntax
CHAR Converts a number into a character according to the current code table. CHAR(number)
CLEAN Returns text that has been "cleaned" of line breaks and other non-printable characters. CLEAN(text)
CODE Returns a numeric code for the first character in a text string. CODE(text)
CONCATENATE Combines several text strings into one string. CONCATENATE(text1, ...)
EXACT Returns TRUE if both text strings are exactly the same. EXACT(text1, text2)
FIND Returns the location of one text string inside another. FIND(search_string, text, [start_position])
LEFT Extracts a given number of characters from the left side of a text string. LEFT(text, [number])
LEN Returns length of a given text. LEN(text)
LOWER Returns text converted to lowercase. LOWER(text)
MID Returns a substring of a given length starting from start_position. MID(text, start_position, length)
PROPER Capitalizes words given text string. PROPER(text)
REPLACE Replaces substring of a text of a given length that starts at given position. REPLACE(text, start_position, length, new_text)
REPT Repeats text a given number of times. REPT(text, number)
RIGHT Extracts a given number of characters from the right side of a text string. RIGHT(text, [number])
SEARCH Returns the location of search_string inside text. Case-insensitive. Allows the use of wildcards. SEARCH(search_string, text, [start_position])
SPLIT Divides the provided text using the space character as a separator and returns the substring at the zero-based position specified by the second argument. For example, SPLIT("Lorem ipsum", 0) returns "Lorem" and SPLIT("Lorem ipsum", 1) returns "ipsum". SPLIT(text, index)
SUBSTITUTE Returns a string where occurrences of old_text are replaced by new_text. Replaces only specific occurrence if last parameter is provided. SUBSTITUTE(text, old_text, new_text, [occurrence])
T Returns text if given value is text, empty string otherwise. T(value)
TEXT Converts a number into text according to a given format. By default it accepts the same formats as the dateFormats (opens new window) option, and can be further customized with the stringifyDateTime (opens new window) and stringifyCurrency (opens new window) options. TEXT(number, format)
TEXTJOIN Joins text from multiple strings and/or ranges with a delimiter. Supports array/range delimiters that cycle through gaps. When ignore_empty is TRUE, empty strings are skipped. Returns #VALUE! if result exceeds 32,767 characters. TEXTJOIN(delimiter, ignore_empty, text1, ...)
TRIM Strips extra spaces from text. TRIM(text)
UNICHAR Returns the character created by using provided code point. UNICHAR(number)
UNICODE Returns the Unicode code point of a first character of a text. UNICODE(text)
UPPER Returns text converted to uppercase. UPPER(text)
VALUE Parses a number, date, time, datetime, currency, or percentage from a text string. VALUE(text)