FormulaCamp
Completed
Google Sheets function reference

Google Sheets functions with live examples

36 functions with Google Sheets notes, plus 124 more with live examples. Every example is checked by our engine.

SUM

Math
SUM(number1, [number2], …)

Select a block of numbers in Google Sheets and the status area at the bottom right shows their sum without any formula.

SUMIF

Math
SUMIF(range, criteria, [sum_range])

Google Sheets also has QUERY, which can total by group in one formula, for example a select with sum and group by clauses.

SUMPRODUCT(array1, [array2], …)

SUMPRODUCT works on arrays natively in Google Sheets, so it needs neither ARRAYFORMULA nor a special key combination.

RANDBETWEEN(bottom, top)

In Google Sheets the bounds of RANDBETWEEN are both inclusive, and the value changes whenever the sheet recalculates.

RAND

Math
RAND()

RAND in Google Sheets is volatile: it gives a new number on every recalculation, and the Calculation setting under File, Settings decides whether that also happens every minute or every hour.

COUNTIF

Statistics
COUNTIF(range, criteria)

COUNTUNIQUE is a Google Sheets function with no Excel counterpart of the same name, and it counts distinct values in one step.

IF

Logic
IF(logical_test, [value_if_true], [value_if_false])

To apply IF to every row from one cell in Google Sheets, wrap it: ARRAYFORMULA(IF(B2:B10>=70,"Pass","Fail")).

AND

Logic
AND(logical1, logical2, …)

AND returns a single TRUE or FALSE for a range even inside ARRAYFORMULA, so it cannot test row by row.

OR

Logic
OR(logical1, logical2, …)

OR also collapses a range into a single answer in Google Sheets, even when it sits inside ARRAYFORMULA.

IFERROR

Logic

In Google Sheets the second argument of IFERROR is optional, and leaving it out returns a blank instead of an error.

TEXTJOIN(delimiter, ignore_empty, text1, …)

TEXTJOIN accepts arrays in Google Sheets, so you can feed it the result of FILTER, UNIQUE or ARRAYFORMULA directly.

LEN

Text
LEN(text)

In Google Sheets, LEN over a range returns a single number unless it is wrapped in ARRAYFORMULA, which gives one length per row.

FIND

Text
FIND(find_text, within_text, [start_num])

Google Sheets has SPLIT, which cuts text at a delimiter into separate cells and often replaces a FIND and MID combination.

CHAR

Text
CHAR(number)

CHAR in Google Sheets accepts Unicode code points beyond 255, so CHAR(8364) returns the euro sign.

UPPER

Text
UPPER(text)

UPPER handles one cell at a time, so ARRAYFORMULA(UPPER(A2:A)) is the Google Sheets way to convert the entire column from one formula.

TEXT

Text
TEXT(value, format_text)

TEXT format codes in Google Sheets are read according to the spreadsheet locale (File, Settings), which affects separators and month names.

DATE

Date & time
DATE(year, month, day)

Google Sheets counts date serial numbers from 30 December 1899, so serial 0 is that day, while Excel shows its serial 0 as 0 January 1900.

TODAY

Date & time
TODAY()

TODAY follows the time zone of the spreadsheet (File, Settings), not the time zone of the person who opens it.

NOW

Date & time
NOW()

NOW returns the current date and time in the time zone set under File, Settings, General.

DATEDIF

Date & time
DATEDIF(start_date, end_date, unit)

DATEDIF is documented in Google Sheets and appears in its function help, unlike Excel where it is a hidden legacy function.

NETWORKDAYS

Date & time
NETWORKDAYS(start_date, end_date, [holidays])

NETWORKDAYS counts Monday to Friday; for a different weekend pattern Google Sheets offers NETWORKDAYS.INTL.

WORKDAY

Date & time
WORKDAY(start_date, days, [holidays])

WORKDAY skips Saturday and Sunday only; Google Sheets has WORKDAY.INTL for other weekends.

VLOOKUP

Lookup & reference
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

In Google Sheets the table of VLOOKUP can come from another file: wrap the source in IMPORTRANGE with its URL and range as the second argument.

XLOOKUP

Lookup & reference
XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

XLOOKUP is built into Google Sheets, with the same argument order as the Excel version shown here.

INDIRECT

Lookup & reference

Google Sheets INDIRECT takes an optional second argument: FALSE makes the text be read as an R1C1 reference.

TRANSPOSE

Lookup & reference
TRANSPOSE(array)

TRANSPOSE spills its result in Google Sheets without ARRAYFORMULA, swapping rows and columns of a range.

UNIQUE

Dynamic arrays
UNIQUE(array, [by_col], [exactly_once])

UNIQUE spills its result natively in Google Sheets, so one formula in the top cell fills the cells below it.

SEQUENCE

Dynamic arrays
SEQUENCE(rows, [columns], [start], [step])

SEQUENCE fills a block of cells from one formula in Google Sheets with no ARRAYFORMULA wrapper.

LET

Dynamic arrays
LET(name1, value1, …, calculation)

LET is supported in Google Sheets, where it can name an intermediate result such as a tax rate or a total.

LAMBDA

Dynamic arrays
LAMBDA(parameter1, …, calculation)

Google Sheets supports LAMBDA together with the helper functions MAP, REDUCE, SCAN, BYROW, BYCOL and MAKEARRAY.

REDUCE

Dynamic arrays
REDUCE(initial_value, array, LAMBDA(total, x))

REDUCE is a built-in helper in Google Sheets, and it returns a single value from the whole range.

SCAN

Dynamic arrays
SCAN(initial_value, array, LAMBDA(total, x))

SCAN returns all the running results as an array, which spills natively in Google Sheets.

BYROW

Dynamic arrays
BYROW(array, LAMBDA(row))

BYROW passes each row of a range to your LAMBDA in Google Sheets and returns one value per row.

BYCOL

Dynamic arrays
BYCOL(array, LAMBDA(column))

BYCOL hands each column of a range to your LAMBDA in Google Sheets and gives back a row of results.

Google Sheets REGEXREPLACE takes exactly three arguments: the text, the regular expression and the replacement.

ISBLANK

Information
ISBLANK(value)

ISBLANK is FALSE for a cell whose formula returns an empty string, although the cell looks empty.

More functions to try

Open one for examples and a live grid; the Excel guide explains its arguments.

PRODUCT, ROUND, ROUNDUP, ROUNDDOWN, MROUND, CEILING.MATH, FLOOR.MATH, CEILING, FLOOR, INT, TRUNC, QUOTIENT, MOD, ABS, POWER, SQRT, SUMIFS, SUMSQ, SUBTOTAL, ISEVEN, ISODD, AVERAGE, AVERAGEIF, AVERAGEIFS, MIN, MAX, MINIFS, MAXIFS, COUNT, COUNTA, COUNTBLANK, COUNTIFS, MEDIAN, MODE, LARGE, SMALL, RANK, STDEV.S, STDEV.P, VAR.S, PERCENTILE.INC, QUARTILE.INC, PERCENTRANK.INC, PERCENTILE.EXC, QUARTILE.EXC, STANDARDIZE, NORM.S.INV, NORM.DIST, NORM.INV, T.DIST, T.DIST.2T, T.DIST.RT, T.INV, T.INV.2T, T.TEST, CONFIDENCE.NORM, CONFIDENCE.T, F.DIST.RT, F.INV.RT, CORREL, SLOPE, INTERCEPT, FORECAST.LINEAR, TREND, IFS, SWITCH, NOT, XOR, IFNA, CHOOSE, CONCATENATE, LEFT, RIGHT, MID, SEARCH, SUBSTITUTE, REPLACE, CODE, UNICHAR, UNICODE, LOWER, PROPER, TRIM, CLEAN, REPT, EXACT, VALUE, YEAR, MONTH, DAY, DATEVALUE, DAYS, WEEKDAY, EDATE, EOMONTH, TIME, HOUR, MINUTE, HLOOKUP, MATCH, XMATCH, INDEX, OFFSET, ROW, COLUMN, ROWS, CHOOSECOLS, CHOOSEROWS, HSTACK, TOCOL, TOROW, PMT, PV, FV, RATE, NPER, NPV, IRR, XNPV, XIRR, ISNUMBER, ISTEXT, ISERROR, ISNA