Google Sheets Formulas Cheat Sheet

Master Google Sheets with our comprehensive formulas reference guide. From basic math to powerful Google-exclusive functions like QUERY, ARRAYFORMULA, and IMPORTRANGE — find syntax, examples, and expert tips for every essential formula.

Showing 99 Google Sheets formulas across 10 categories

SUM()

Math & Statistical

Adds all numbers in a range

Syntax:

=SUM(value1, [value2], ...)

Examples:

=SUM(A1:A10)

Sum all values in range A1 to A10

=SUM(A1, B1, C1)

Sum specific cells

=SUM(A1:A5, C1:C5)

Sum multiple ranges

Note: Ignores text values and empty cells

AVERAGE()

Math & Statistical

Calculates the arithmetic mean of numbers

Syntax:

=AVERAGE(value1, [value2], ...)

Examples:

=AVERAGE(A1:A10)

Average of range A1 to A10

=AVERAGE(A1, B1, C1)

Average of specific cells

=AVERAGE(A:A)

Average of entire column A

Note: Excludes empty cells and text from calculation

COUNT()

Math & Statistical

Counts the number of numeric values in a range

Syntax:

=COUNT(value1, [value2], ...)

Examples:

=COUNT(A1:A10)

Count numeric cells in range

=COUNT(A:A)

Count numeric cells in entire column

=COUNT(A1, B1, C1)

Count specific numeric cells

Note: Only counts cells with numeric values; use COUNTA for non-empty cells

COUNTIF()

Math & Statistical

Counts cells that meet a single criterion

Syntax:

=COUNTIF(range, criterion)

Examples:

=COUNTIF(A1:A10, ">100")

Count cells greater than 100

=COUNTIF(A1:A10, "Apple")

Count cells equal to 'Apple'

=COUNTIF(A1:A10, "<>"&"")

Count non-empty cells

Note: Use wildcards (* ?) for partial matching

SUMIF()

Math & Statistical

Sums cells that meet a single criterion

Syntax:

=SUMIF(range, criterion, [sum_range])

Examples:

=SUMIF(A1:A10, ">100")

Sum values greater than 100

=SUMIF(A1:A10, "Apple", B1:B10)

Sum B values where A contains 'Apple'

=SUMIF(A1:A10, A12, B1:B10)

Sum B where A equals A12 value

Note: If sum_range is omitted, the range itself is summed

SUMIFS()

Math & Statistical

Sums cells that meet multiple criteria

Syntax:

=SUMIFS(sum_range, criteria_range1, criterion1, ...)

Examples:

=SUMIFS(C1:C10, A1:A10, "Apple", B1:B10, ">100")

Sum C where A='Apple' AND B>100

=SUMIFS(D1:D10, B1:B10, "North", C1:C10, "Q1")

Sum D for North region in Q1

=SUMIFS(C:C, A:A, "*Pro*", B:B, ">0")

Sum C where A contains 'Pro' and B>0

Note: All criteria must be met simultaneously for a cell to be included

AVERAGEIFS()

Math & Statistical

Calculates the average of cells that meet multiple criteria

Syntax:

=AVERAGEIFS(average_range, criteria_range1, criterion1, ...)

Examples:

=AVERAGEIFS(C1:C10, A1:A10, "A", B1:B10, ">50")

Average C where A='A' and B>50

=AVERAGEIFS(D:D, A:A, "North", B:B, 2024)

Average D for North region in 2024

Note: Returns #DIV/0! if no cells match the criteria

MAX()

Math & Statistical

Returns the maximum value in a range

Syntax:

=MAX(value1, [value2], ...)

Examples:

=MAX(A1:A10)

Largest value in range

=MAX(A1:A10, B1:B10)

Largest value across multiple ranges

=MAX(0, A1)

Return A1 if positive, otherwise 0

Note: Ignores text and logical values

MIN()

Math & Statistical

Returns the minimum value in a range

Syntax:

=MIN(value1, [value2], ...)

Examples:

=MIN(A1:A10)

Smallest value in range

=MIN(A1:A10, B1:B10)

Smallest value across multiple ranges

Note: Ignores text and logical values

MEDIAN()

Math & Statistical

Returns the median (middle) value of a dataset

Syntax:

=MEDIAN(value1, [value2], ...)

Examples:

=MEDIAN(A1:A10)

Middle value in a sorted dataset

=MEDIAN(1,2,3,4,5)

Returns 3

Note: If even number of values, averages the two middle values

ROUND()

Math & Statistical

Rounds a number to a specified number of digits

Syntax:

=ROUND(value, places)

Examples:

=ROUND(3.14159, 2)

Returns 3.14

=ROUND(A1, 0)

Round to nearest integer

=ROUND(1234, -2)

Round to nearest 100 → 1200

Note: Negative places rounds to the left of the decimal point

FLOOR()

Math & Statistical

Rounds a number down to the nearest multiple of significance

Syntax:

=FLOOR(value, factor)

Examples:

=FLOOR(3.7, 1)

Returns 3

=FLOOR(7.5, 0.5)

Returns 7.5

=FLOOR(24, 5)

Returns 20

Note: Always rounds toward zero

CEILING()

Math & Statistical

Rounds a number up to the nearest multiple of significance

Syntax:

=CEILING(value, factor)

Examples:

=CEILING(3.2, 1)

Returns 4

=CEILING(6.1, 0.5)

Returns 6.5

=CEILING(23, 5)

Returns 25

Note: Always rounds away from zero

MOD()

Math & Statistical

Returns the remainder after dividing a number

Syntax:

=MOD(dividend, divisor)

Examples:

=MOD(10, 3)

Returns 1 (remainder of 10÷3)

=MOD(A1, 2)

Check if A1 is odd (returns 1) or even (0)

=MOD(ROW(), 2)

Alternate 1 and 0 for striped row logic

Note: Result has the same sign as the divisor

LARGE()

Math & Statistical

Returns the k-th largest value in a dataset

Syntax:

=LARGE(data, n)

Examples:

=LARGE(A1:A10, 1)

Largest value (same as MAX)

=LARGE(A1:A10, 2)

Second largest value

=LARGE(A1:A10, 3)

Third largest value

Note: n=1 returns the largest, n=2 the second largest, etc.

SMALL()

Math & Statistical

Returns the k-th smallest value in a dataset

Syntax:

=SMALL(data, n)

Examples:

=SMALL(A1:A10, 1)

Smallest value (same as MIN)

=SMALL(A1:A10, 2)

Second smallest value

Note: n=1 returns the smallest value

RANK()

Math & Statistical

Returns the rank of a number in a list

Syntax:

=RANK(value, data, [is_ascending])

Examples:

=RANK(A1, A1:A10)

Rank of A1 in descending order

=RANK(A1, A1:A10, 1)

Rank of A1 in ascending order

=RANK(B2, $B$2:$B$11)

Rank with absolute reference

Note: Ties receive the same rank; use RANK.EQ for explicit tie handling

CONCATENATE()

Text

Joins multiple text strings into one

Syntax:

=CONCATENATE(string1, [string2], ...)

Examples:

=CONCATENATE(A1, " ", B1)

Join first and last name with space

=CONCATENATE("Hello, ", A1, "!")

Add greeting around a name

=A1&" "&B1

Alternative using & operator

Note: The & operator is a shorter equivalent; consider TEXTJOIN for delimiter-based joining

TEXTJOIN()

Text

Joins text with a delimiter, optionally ignoring empty cells

Syntax:

=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)

Examples:

=TEXTJOIN(", ", TRUE, A1:A5)

Join A1:A5 with commas, skip blanks

=TEXTJOIN(" - ", FALSE, A1, B1, C1)

Join with dash, include blanks

=TEXTJOIN("", TRUE, A1:A10)

Concatenate all non-empty values

Note: Google Sheets exclusive advantage over older Excel versions

SPLIT()

Text

Splits text around a delimiter and places results in separate cells

Syntax:

=SPLIT(text, delimiter, [split_by_each], [remove_empty_text])

Examples:

=SPLIT(A1, ",")

Split A1 by comma into multiple columns

=SPLIT("Hello World", " ")

Split by space → Hello | World

=SPLIT(A1, "-", FALSE)

Split by the entire delimiter string

Note: Google Sheets exclusive; results spill into adjacent cells automatically

LEFT()

Text

Returns a specified number of characters from the start of a string

Syntax:

=LEFT(string, [number_of_characters])

Examples:

=LEFT(A1, 3)

First 3 characters of A1

=LEFT(A1, FIND(" ", A1)-1)

Extract first word

=LEFT("Hello", 4)

Returns 'Hell'

Note: Default number_of_characters is 1

RIGHT()

Text

Returns a specified number of characters from the end of a string

Syntax:

=RIGHT(string, [number_of_characters])

Examples:

=RIGHT(A1, 4)

Last 4 characters of A1

=RIGHT(A1, LEN(A1)-FIND(" ",A1))

Extract last word

=RIGHT("Invoice-2024", 4)

Returns '2024'

Note: Default number_of_characters is 1

MID()

Text

Returns a substring from the middle of a string

Syntax:

=MID(string, starting_at, extract_length)

Examples:

=MID(A1, 3, 5)

5 characters starting from position 3

=MID("Hello World", 7, 5)

Returns 'World'

=MID(A1, FIND("-",A1)+1, 10)

Extract text after a dash

Note: Positions are 1-indexed

LEN()

Text

Returns the number of characters in a string

Syntax:

=LEN(text)

Examples:

=LEN(A1)

Character count of A1

=LEN(TRIM(A1))

Length after trimming whitespace

=LEN(A1)-LEN(SUBSTITUTE(A1,",",""))

Count commas in a string

Note: Includes spaces and special characters in the count

TRIM()

Text

Removes leading, trailing, and extra internal spaces

Syntax:

=TRIM(text)

Examples:

=TRIM(A1)

Clean up spaces in A1

=TRIM(" Hello World ")

Returns 'Hello World'

=TRIM(LOWER(A1))

Clean and lowercase text

Note: Does not remove non-breaking spaces; use SUBSTITUTE for those

SUBSTITUTE()

Text

Replaces occurrences of a string within text

Syntax:

=SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])

Examples:

=SUBSTITUTE(A1, "Old", "New")

Replace all 'Old' with 'New'

=SUBSTITUTE(A1, " ", "")

Remove all spaces

=SUBSTITUTE(A1, "a", "A", 1)

Replace only the first 'a'

Note: Case-sensitive; omit occurrence_number to replace all instances

FIND()

Text

Returns the position of a string within another string (case-sensitive)

Syntax:

=FIND(search_for, text_to_search, [starting_at])

Examples:

=FIND("@", A1)

Find position of @ in email

=FIND(" ", A1)

Find position of first space

=FIND(".", A1, FIND(".",A1)+1)

Find second period

Note: Returns #VALUE! if not found; SEARCH() is the case-insensitive version

REGEXEXTRACT()

Text

Extracts text matching a regular expression

Syntax:

=REGEXEXTRACT(text, regular_expression)

Examples:

=REGEXEXTRACT(A1, "[0-9]+")

Extract first number from text

=REGEXEXTRACT(A1, "[A-Z]+")

Extract uppercase letters

=REGEXEXTRACT(A1, "\d{4}")

Extract 4-digit year

Note: Google Sheets exclusive; uses RE2 regex syntax

REGEXMATCH()

Text

Tests whether text matches a regular expression

Syntax:

=REGEXMATCH(text, regular_expression)

Examples:

=REGEXMATCH(A1, "^[0-9]+$")

Check if A1 is all digits

=REGEXMATCH(A1, "@.+\.com")

Validate basic email pattern

=REGEXMATCH(A1, "(?i)yes")

Case-insensitive match for 'yes'

Note: Returns TRUE or FALSE; Google Sheets exclusive

REGEXREPLACE()

Text

Replaces text matching a regular expression with new text

Syntax:

=REGEXREPLACE(text, regular_expression, replacement)

Examples:

=REGEXREPLACE(A1, "[0-9]+", "#")

Replace numbers with #

=REGEXREPLACE(A1, "\s+", " ")

Collapse multiple spaces

=REGEXREPLACE(A1, "(\w+)", "[$1]")

Wrap each word in brackets

Note: Replaces all matches; Google Sheets exclusive

IF()

Logical

Returns one value if a condition is true, another if false

Syntax:

=IF(logical_expression, value_if_true, value_if_false)

Examples:

=IF(A1>100, "High", "Low")

Label values above 100 as High

=IF(B1="", "Empty", B1)

Show 'Empty' for blank cells

=IF(A1>90, "A", IF(A1>80, "B", "C"))

Nested IF for grades

Note: Use IFS() for multiple conditions to avoid deep nesting

IFS()

Logical

Tests multiple conditions and returns a value for the first true one

Syntax:

=IFS(condition1, value1, [condition2, value2], ...)

Examples:

=IFS(A1>90,"A",A1>80,"B",A1>70,"C",TRUE,"F")

Grade A/B/C/F from score

=IFS(B1="AM","Morning",B1="PM","Afternoon",TRUE,"Unknown")

Map AM/PM to labels

Note: Add TRUE as final condition as a catch-all default

AND()

Logical

Returns TRUE if all conditions are true

Syntax:

=AND(logical1, [logical2], ...)

Examples:

=AND(A1>0, A1<100)

Check if A1 is between 0 and 100

=IF(AND(A1>50, B1="Yes"), "Pass", "Fail")

Multi-condition IF

=AND(ISNUMBER(A1), A1>=0)

Check positive number

Note: All conditions must be TRUE for AND to return TRUE

OR()

Logical

Returns TRUE if any condition is true

Syntax:

=OR(logical1, [logical2], ...)

Examples:

=OR(A1="Yes", A1="Y")

Check for multiple valid inputs

=IF(OR(A1="", A1=0), "Empty", A1)

Handle blank or zero

=OR(A1>100, B1>100)

Either A1 or B1 exceeds 100

Note: Returns TRUE if at least one condition is TRUE

NOT()

Logical

Reverses the logical value of its argument

Syntax:

=NOT(logical_expression)

Examples:

=NOT(ISBLANK(A1))

Check if A1 is not blank

=NOT(A1=B1)

Equivalent to A1<>B1

=IF(NOT(A1>100), "OK", "Too high")

Invert condition in IF

Note: Converts TRUE to FALSE and FALSE to TRUE

IFERROR()

Logical

Returns a specified value if a formula results in an error

Syntax:

=IFERROR(value, value_if_error)

Examples:

=IFERROR(A1/B1, 0)

Return 0 instead of #DIV/0!

=IFERROR(VLOOKUP(A1,B:C,2,0), "Not found")

Handle missing VLOOKUP result

=IFERROR(VALUE(A1), 0)

Default to 0 if A1 isn't a number

Note: Catches all error types including #N/A, #VALUE!, #REF!, #DIV/0!

IFNA()

Logical

Returns a value only if the formula results in #N/A error

Syntax:

=IFNA(value, value_if_na)

Examples:

=IFNA(VLOOKUP(A1,B:C,2,0), "Not found")

Handle missing lookup

=IFNA(MATCH(A1,B:B,0), "No match")

Handle failed MATCH

Note: More precise than IFERROR — only handles #N/A, not all errors

SWITCH()

Logical

Evaluates an expression against a list of cases and returns matching result

Syntax:

=SWITCH(expression, case1, value1, [case2, value2, ...], [default])

Examples:

=SWITCH(A1,1,"Jan",2,"Feb",3,"Mar","Other")

Map month number to name

=SWITCH(B1,"R","Red","G","Green","B","Blue")

Map code to color

Note: Cleaner alternative to nested IFS for exact-match cases

XOR()

Logical

Returns TRUE if an odd number of conditions are true

Syntax:

=XOR(logical1, [logical2], ...)

Examples:

=XOR(A1>0, B1>0)

TRUE if exactly one of A1,B1 is positive

=XOR(TRUE, FALSE)

Returns TRUE

=XOR(TRUE, TRUE)

Returns FALSE (both true = even count)

Note: Useful for exclusive-or logic where exactly one condition should be true

TODAY()

Date & Time

Returns the current date

Syntax:

=TODAY()

Examples:

=TODAY()

Current date

=TODAY()-A1

Days since date in A1

=TODAY()+30

Date 30 days from now

Note: Updates every time the sheet recalculates

NOW()

Date & Time

Returns the current date and time

Syntax:

=NOW()

Examples:

=NOW()

Current date and time

=NOW()-A1

Time elapsed since A1 timestamp

=TEXT(NOW(), "HH:mm")

Display only current time

Note: Updates every time the sheet recalculates

DATE()

Date & Time

Creates a date value from year, month, and day components

Syntax:

=DATE(year, month, day)

Examples:

=DATE(2024, 12, 31)

Create Dec 31, 2024

=DATE(YEAR(A1), MONTH(A1)+1, 1)

First day of next month

=DATE(A1, B1, C1)

Build date from separate columns

Note: Month and day can overflow — DATE(2024, 13, 1) becomes Jan 1, 2025

DATEDIF()

Date & Time

Calculates the difference between two dates in specified units

Syntax:

=DATEDIF(start_date, end_date, unit)

Examples:

=DATEDIF(A1, TODAY(), "Y")

Age in complete years

=DATEDIF(A1, B1, "M")

Months between two dates

=DATEDIF(A1, B1, "D")

Days between two dates

Note: Units: Y (years), M (months), D (days), YM, YD, MD for partial periods

EDATE()

Date & Time

Returns a date a specified number of months before/after a start date

Syntax:

=EDATE(start_date, months)

Examples:

=EDATE(A1, 3)

3 months after date in A1

=EDATE(TODAY(), -1)

Same day last month

=EDATE(A1, 12)

1 year after A1

Note: Negative months go backward in time

EOMONTH()

Date & Time

Returns the last day of the month a specified number of months away

Syntax:

=EOMONTH(start_date, months)

Examples:

=EOMONTH(TODAY(), 0)

Last day of current month

=EOMONTH(A1, 1)

Last day of next month from A1

=EOMONTH(A1, -1)+1

First day of current month

Note: months=0 returns end of current month

NETWORKDAYS()

Date & Time

Returns the number of working days between two dates

Syntax:

=NETWORKDAYS(start_date, end_date, [holidays])

Examples:

=NETWORKDAYS(A1, B1)

Business days between A1 and B1

=NETWORKDAYS(TODAY(), A1, D1:D10)

Working days to deadline, excluding holidays

Note: Excludes weekends (Sat/Sun) and optionally specified holidays

WORKDAY()

Date & Time

Returns a date a specified number of working days from a start date

Syntax:

=WORKDAY(start_date, num_days, [holidays])

Examples:

=WORKDAY(TODAY(), 5)

5 business days from today

=WORKDAY(A1, -3)

3 business days before A1

=WORKDAY(A1, 10, D1:D5)

10 business days, excluding holidays

Note: Skips weekends automatically; provide holidays list to also skip those

WEEKDAY()

Date & Time

Returns the day of the week as a number

Syntax:

=WEEKDAY(date, [type])

Examples:

=WEEKDAY(TODAY())

Day of week (1=Sun to 7=Sat by default)

=WEEKDAY(A1, 2)

Type 2: 1=Mon to 7=Sun

=IF(WEEKDAY(A1,2)>5, "Weekend", "Weekday")

Classify as weekday or weekend

Note: Type 1 (default): 1=Sunday. Type 2: 1=Monday. Type 3: 0=Monday

ISOWEEKNUM()

Date & Time

Returns the ISO week number of the year for a given date

Syntax:

=ISOWEEKNUM(date)

Examples:

=ISOWEEKNUM(TODAY())

Current ISO week number

=ISOWEEKNUM(DATE(2024, 1, 1))

Week number of Jan 1, 2024

Note: ISO weeks start on Monday; week 1 is the first week with a Thursday in it

VLOOKUP()

Lookup & Reference

Searches a column and returns a value from the same row in another column

Syntax:

=VLOOKUP(search_key, range, index, [is_sorted])

Examples:

=VLOOKUP(A1, B:D, 2, FALSE)

Find A1 in column B, return column C

=VLOOKUP("Smith", A:C, 3, FALSE)

Look up 'Smith' in A, return column C

=IFERROR(VLOOKUP(A1,B:C,2,0),"Not found")

Safe VLOOKUP with fallback

Note: Use FALSE for exact match; searches first column only; prefer XLOOKUP when available

HLOOKUP()

Lookup & Reference

Searches a row and returns a value from the same column in another row

Syntax:

=HLOOKUP(search_key, range, index, [is_sorted])

Examples:

=HLOOKUP("Q1", A1:D5, 3, FALSE)

Find 'Q1' in row 1, return row 3

=HLOOKUP(2024, A1:D1, 2, FALSE)

Lookup year in header row

Note: Horizontal version of VLOOKUP; use XLOOKUP for more flexibility

INDEX()

Lookup & Reference

Returns the value of a cell at a given row and column position in a range

Syntax:

=INDEX(reference, row, [column])

Examples:

=INDEX(A1:C10, 3, 2)

Value at row 3, column 2 of A1:C10

=INDEX(A:A, MATCH("Smith",B:B,0))

Paired with MATCH for flexible lookup

=INDEX(A1:A10, RANDBETWEEN(1, 10))

Random value from range

Note: Often paired with MATCH as a more flexible alternative to VLOOKUP

MATCH()

Lookup & Reference

Searches for a value and returns its relative position in a range

Syntax:

=MATCH(search_key, range, [search_type])

Examples:

=MATCH("Apple", A1:A10, 0)

Find position of 'Apple' in A1:A10

=INDEX(B:B, MATCH(A1, A:A, 0))

INDEX-MATCH combo for lookup

=MATCH(MAX(A:A), A:A, 0)

Row of maximum value

Note: search_type 0=exact, 1=less than (sorted asc), -1=greater than (sorted desc)

XLOOKUP()

Lookup & Reference

Searches a range and returns a matching result with flexible options

Syntax:

=XLOOKUP(search_key, lookup_range, result_range, [missing_value], [match_mode], [search_mode])

Examples:

=XLOOKUP(A1, B:B, C:C)

Look up A1 in B, return from C

=XLOOKUP(A1, B:B, C:C, "Not found")

Custom text if not found

=XLOOKUP(A1, B:B, C:C,, 0, -1)

Exact match, search from last

Note: Available in newer Sheets; supports reverse search and approximate matching

XMATCH()

Lookup & Reference

Returns the position of a match with extended options

Syntax:

=XMATCH(search_key, lookup_array, [match_mode], [search_mode])

Examples:

=XMATCH("Apple", A1:A10)

Position of 'Apple' (exact match)

=XMATCH(100, A1:A10, 1)

Next larger value position

=XMATCH("z*", A1:A10, 2)

Wildcard match

Note: More powerful than MATCH; supports wildcards and binary search modes

OFFSET()

Lookup & Reference

Returns a range offset from a starting cell by rows and columns

Syntax:

=OFFSET(cell_reference, rows, cols, [height], [width])

Examples:

=OFFSET(A1, 2, 1)

Cell 2 rows down, 1 column right from A1

=SUM(OFFSET(A1, 0, 0, 5, 1))

Sum 5 rows starting at A1

=OFFSET(A1, COUNTA(A:A)-1, 0)

Last non-empty cell in column A

Note: Creates a dynamic reference; use with care as it is volatile (recalculates often)

INDIRECT()

Lookup & Reference

Returns a reference specified by a text string

Syntax:

=INDIRECT(cell_reference_as_text)

Examples:

=INDIRECT("A"&B1)

Reference cell A[value in B1]

=SUM(INDIRECT(A1&":"&B1))

Sum dynamic range from text

=INDIRECT("Sheet2!A1")

Reference another sheet dynamically

Note: Volatile function — use sparingly; useful for dynamic range references

IMPORTRANGE()

Lookup & Reference

Imports a range of cells from another Google Sheets spreadsheet

Syntax:

=IMPORTRANGE(spreadsheet_url, range_string)

Examples:

=IMPORTRANGE("https://docs.google.com/...", "Sheet1!A1:D10")

Import A1:D10 from another sheet

=IMPORTRANGE(A1, "Data!B:B")

URL in A1, import column B

Note: ⭐ Google Sheets exclusive; you must authorize the connection the first time

CHOOSE()

Lookup & Reference

Returns a value from a list based on a position index

Syntax:

=CHOOSE(index, value1, [value2], ...)

Examples:

=CHOOSE(A1, "Mon", "Tue", "Wed")

Return day name from number

=CHOOSE(WEEKDAY(TODAY(),2),"Mon","Tue","Wed","Thu","Fri","Sat","Sun")

Today's day name

Note: index must be a number from 1 to 254

ARRAYFORMULA()

Google-Specific ⭐

Enables a formula to return multiple results across a range

Syntax:

=ARRAYFORMULA(array_formula)

Examples:

=ARRAYFORMULA(A1:A10*B1:B10)

Multiply columns element-wise

=ARRAYFORMULA(IF(A2:A100="","",A2:A100*1.2))

Apply formula to entire column

=ARRAYFORMULA(SUM(IF(A1:A10>5,A1:A10,0)))

Conditional sum with array logic

Note: ⭐ Google Sheets exclusive; shortcut Ctrl+Shift+Enter auto-wraps with ARRAYFORMULA

QUERY()

Google-Specific ⭐

Runs a SQL-like query on your data using Google Visualization API query language

Syntax:

=QUERY(data, query, [headers])

Examples:

=QUERY(A1:D100, "SELECT A, B WHERE C > 100")

Select columns where C>100

=QUERY(A:D, "SELECT A, SUM(D) GROUP BY A ORDER BY SUM(D) DESC")

Sum by group, sorted

=QUERY(A:C, "SELECT * WHERE B = '" & E1 & "'")

Dynamic filter using cell value

Note: ⭐ Google Sheets exclusive; one of the most powerful functions for data analysis

FILTER()

Google-Specific ⭐

Returns only the rows in a range that meet specified conditions

Syntax:

=FILTER(range, condition1, [condition2], ...)

Examples:

=FILTER(A1:C10, B1:B10>50)

Rows where column B > 50

=FILTER(A:C, A:A="North", C:C>100)

Multiple conditions (AND)

=FILTER(A:A, (B:B="Y")+(C:C="Y"))

OR condition using addition

Note: ⭐ Google Sheets exclusive; results spill automatically into adjacent cells

UNIQUE()

Google-Specific ⭐

Returns unique rows or values from a range, removing duplicates

Syntax:

=UNIQUE(range, [by_column], [exactly_once])

Examples:

=UNIQUE(A1:A100)

Unique values from column A

=UNIQUE(A1:C100)

Unique rows across three columns

=SORT(UNIQUE(A1:A100))

Sorted unique values

Note: ⭐ Google Sheets exclusive; results spill automatically

SORT()

Google-Specific ⭐

Sorts the rows of a range by one or more columns

Syntax:

=SORT(range, sort_column, is_ascending, [sort_column2, is_ascending2], ...)

Examples:

=SORT(A1:C10, 1, TRUE)

Sort by first column ascending

=SORT(A1:C10, 2, FALSE)

Sort by second column descending

=SORT(A1:C10, 1, TRUE, 2, FALSE)

Sort by column 1 then 2

Note: ⭐ Google Sheets exclusive; spills automatically; pair with FILTER for dynamic tables

GOOGLEFINANCE()

Google-Specific ⭐

Fetches live or historical stock/finance data from Google Finance

Syntax:

=GOOGLEFINANCE(ticker, [attribute], [start_date], [end_date|num_days], [interval])

Examples:

=GOOGLEFINANCE("GOOGL", "price")

Current Google stock price

=GOOGLEFINANCE("AAPL", "volume")

Apple trading volume

=GOOGLEFINANCE("GBPUSD", "price")

GBP to USD exchange rate

Note: ⭐ Google Sheets exclusive; attributes: price, volume, high, low, open, close, pe, eps, marketcap

GOOGLETRANSLATE()

Google-Specific ⭐

Translates text from one language to another using Google Translate

Syntax:

=GOOGLETRANSLATE(text, [source_language], [target_language])

Examples:

=GOOGLETRANSLATE(A1, "en", "fr")

Translate A1 to French

=GOOGLETRANSLATE(A1, "auto", "es")

Auto-detect source, translate to Spanish

=GOOGLETRANSLATE("Hello", "en", "ja")

Translate 'Hello' to Japanese

Note: ⭐ Google Sheets exclusive; use 'auto' for automatic source language detection

DETECTLANGUAGE()

Google-Specific ⭐

Detects the language of text in a cell

Syntax:

=DETECTLANGUAGE(text_or_range)

Examples:

=DETECTLANGUAGE(A1)

Detect language of A1 (returns 'en', 'fr', etc.)

=GOOGLETRANSLATE(A1, DETECTLANGUAGE(A1), "en")

Auto-translate to English

Note: ⭐ Google Sheets exclusive; returns ISO 639-1 language codes

IMPORTDATA()

Google-Specific ⭐

Imports data from a CSV or TSV file at a given URL

Syntax:

=IMPORTDATA(url)

Examples:

=IMPORTDATA("https://example.com/data.csv")

Import CSV from web URL

=IMPORTDATA(A1)

Import CSV from URL stored in A1

Note: ⭐ Google Sheets exclusive; refreshes automatically; supports CSV and TSV formats

IMPORTHTML()

Google-Specific ⭐

Imports data from an HTML table or list on a web page

Syntax:

=IMPORTHTML(url, query, index)

Examples:

=IMPORTHTML("https://en.wikipedia.org/wiki/List_of...", "table", 1)

Import first table from Wikipedia

=IMPORTHTML(A1, "list", 2)

Import second list from URL in A1

Note: ⭐ Google Sheets exclusive; query can be 'table' or 'list'

IMPORTXML()

Google-Specific ⭐

Imports data from any XML, HTML, CSV, TSV, or RSS feed

Syntax:

=IMPORTXML(url, xpath_query)

Examples:

=IMPORTXML("https://feeds.bbci.co.uk/news/rss.xml", "//item/title")

Import BBC news headlines

=IMPORTXML(A1, "//h1")

Extract all H1 headings from a page

Note: ⭐ Google Sheets exclusive; uses XPath syntax for querying

IMAGE()

Google-Specific ⭐

Inserts an image into a cell from a URL

Syntax:

=IMAGE(url, [mode], [height], [width])

Examples:

=IMAGE("https://example.com/logo.png")

Insert image, fit to cell

=IMAGE(A1, 2)

Insert image, stretch to cell size

=IMAGE(A1, 4, 50, 80)

Custom height 50, width 80 pixels

Note: ⭐ Google Sheets exclusive; mode: 1=fit, 2=stretch, 3=original size, 4=custom size

SPARKLINE()

Google-Specific ⭐

Creates a miniature chart inside a single cell

Syntax:

=SPARKLINE(data, [options])

Examples:

=SPARKLINE(A1:A10)

Line sparkline for the range

=SPARKLINE(A1:A10, {"charttype","bar"})

Bar chart sparkline

=SPARKLINE(A1:A10, {"charttype","column";"color","blue"})

Blue column sparkline

Note: ⭐ Google Sheets exclusive; chart types: line, bar, column, winloss

PMT()

Financial

Calculates the periodic payment for a loan or investment

Syntax:

=PMT(rate, number_of_periods, present_value, [future_value], [end_or_beginning])

Examples:

=PMT(0.05/12, 60, -10000)

Monthly payment on £10k loan, 5% annual, 5 years

=PMT(A1/12, B1*12, -C1)

Dynamic loan calculator

Note: Rate must match payment frequency; use monthly rate for monthly payments

PV()

Financial

Calculates the present value of an investment

Syntax:

=PV(rate, number_of_periods, payment, [future_value], [end_or_beginning])

Examples:

=PV(0.08/12, 120, -1500)

PV of 120 monthly payments of £1500 at 8%

=PV(0.05, 10, 0, -10000)

PV of £10k received in 10 years at 5%

Note: Result is negative when representing cash outflows

FV()

Financial

Calculates the future value of an investment

Syntax:

=FV(rate, number_of_periods, payment, [present_value], [end_or_beginning])

Examples:

=FV(0.06/12, 120, -200)

FV of £200/month for 10 years at 6%

=FV(0.05, 5, 0, -1000)

FV of £1000 in 5 years at 5% annual

Note: Payments are negative if cash outflows; result is positive

NPV()

Financial

Calculates net present value of an investment with periodic cash flows

Syntax:

=NPV(discount, cashflow1, [cashflow2], ...)

Examples:

=NPV(0.1, B2:B7)-A1

NPV of future cash flows minus initial investment

=NPV(0.08, 1000, 2000, 3000)

NPV of three yearly cash flows at 8%

Note: First payment occurs at end of period 1; subtract initial investment separately

IRR()

Financial

Calculates the internal rate of return for a series of cash flows

Syntax:

=IRR(cashflow_amounts, [rate_guess])

Examples:

=IRR(A1:A6)

IRR where A1 is initial investment (negative)

=IRR({-10000,2000,3000,4000,5000})

IRR for given cash flow series

Note: First value should be negative (initial investment); result is the break-even rate

RATE()

Financial

Calculates the interest rate per period of an annuity

Syntax:

=RATE(number_of_periods, payment, present_value, [future_value], [end_or_beginning], [rate_guess])

Examples:

=RATE(60, -200, 10000)*12

Annual rate on £10k loan, £200/month, 5 years

=RATE(B1, -C1, A1)*12

Dynamic annual rate calculation

Note: Multiply by periods per year to get annual rate

NPER()

Financial

Calculates the number of payment periods for an investment

Syntax:

=NPER(rate, payment, present_value, [future_value], [end_or_beginning])

Examples:

=NPER(0.05/12, -200, 10000)

Months to repay £10k at 5% annual with £200/month

=NPER(0.07, -2000, 0, 1000000)

Years to reach £1m saving £2k/year at 7%

Note: Result is the number of periods required

ISBLANK()

Information

Returns TRUE if the cell is empty

Syntax:

=ISBLANK(value)

Examples:

=ISBLANK(A1)

TRUE if A1 is empty

=IF(ISBLANK(A1), "No data", A1)

Show 'No data' for empty cells

=COUNTIF(A1:A10, "")

Count blanks (alternative approach)

Note: A cell with a formula returning empty string is not considered blank

ISERROR()

Information

Returns TRUE if the value is any error

Syntax:

=ISERROR(value)

Examples:

=ISERROR(A1/B1)

TRUE if division causes an error

=IF(ISERROR(A1), 0, A1)

Replace errors with 0

=ISERROR(VLOOKUP(A1, B:C, 2, 0))

Check if lookup fails

Note: Detects all error types; prefer IFERROR for cleaner error handling

ISNUMBER()

Information

Returns TRUE if the value is a number

Syntax:

=ISNUMBER(value)

Examples:

=ISNUMBER(A1)

TRUE if A1 contains a number

=IF(ISNUMBER(A1), A1*2, "Not a number")

Conditional calculation

=ISNUMBER(SEARCH("error", A1))

Check if 'error' appears in A1

Note: Dates and times are stored as numbers and return TRUE

ISTEXT()

Information

Returns TRUE if the value is text

Syntax:

=ISTEXT(value)

Examples:

=ISTEXT(A1)

TRUE if A1 is text

=IF(ISTEXT(A1), UPPER(A1), A1)

Uppercase only text cells

Note: Numbers stored as text return TRUE

ISLOGICAL()

Information

Returns TRUE if the value is a logical (TRUE/FALSE) value

Syntax:

=ISLOGICAL(value)

Examples:

=ISLOGICAL(TRUE)

Returns TRUE

=ISLOGICAL(A1>5)

Returns TRUE (expression is logical)

Note: Only returns TRUE for TRUE or FALSE values, not 1 or 0

TYPE()

Information

Returns a number indicating the data type of a value

Syntax:

=TYPE(value)

Examples:

=TYPE(A1)

Return type code for A1

=TYPE("Hello")

Returns 2 (text)

=TYPE(42)

Returns 1 (number)

Note: 1=number, 2=text, 4=logical, 8=formula, 16=error, 64=array

N()

Information

Converts a value to a number

Syntax:

=N(value)

Examples:

=N(TRUE)

Returns 1

=N(FALSE)

Returns 0

=N("5")

Returns 0 (text cannot convert)

Note: TRUE becomes 1, FALSE becomes 0; useful in arithmetic with logical values

BIN2DEC()

Engineering

Converts a binary number to decimal

Syntax:

=BIN2DEC(signed_binary_number)

Examples:

=BIN2DEC("1010")

Returns 10

=BIN2DEC("11111111")

Returns 255

Note: Input can be up to 10 binary digits; supports two's complement negatives

DEC2BIN()

Engineering

Converts a decimal number to binary

Syntax:

=DEC2BIN(decimal_number, [significant_digits])

Examples:

=DEC2BIN(10)

Returns '1010'

=DEC2BIN(255, 8)

Returns '11111111' (8 digits)

Note: significant_digits pads with leading zeros

HEX2DEC()

Engineering

Converts a hexadecimal number to decimal

Syntax:

=HEX2DEC(signed_hexadecimal_number)

Examples:

=HEX2DEC("FF")

Returns 255

=HEX2DEC("1A")

Returns 26

Note: Input can have up to 10 hex characters

CONVERT()

Engineering

Converts a number from one unit to another

Syntax:

=CONVERT(value, start_unit, end_unit)

Examples:

=CONVERT(1, "mi", "km")

Miles to kilometres

=CONVERT(100, "C", "F")

Celsius to Fahrenheit

=CONVERT(5, "lbm", "kg")

Pounds to kilograms

Note: Supports weight, distance, temperature, time, pressure, volume, and more

BITAND()

Engineering

Performs a bitwise AND on two numbers

Syntax:

=BITAND(value1, value2)

Examples:

=BITAND(12, 10)

Returns 8 (1100 AND 1010 = 1000)

=BITAND(255, 15)

Mask to extract lower 4 bits

Note: Both values must be non-negative integers less than 2^48

BITOR()

Engineering

Performs a bitwise OR on two numbers

Syntax:

=BITOR(value1, value2)

Examples:

=BITOR(12, 10)

Returns 14 (1100 OR 1010 = 1110)

=BITOR(8, 4)

Returns 12

Note: Both values must be non-negative integers less than 2^48

BITXOR()

Engineering

Performs a bitwise XOR on two numbers

Syntax:

=BITXOR(value1, value2)

Examples:

=BITXOR(12, 10)

Returns 6 (1100 XOR 1010 = 0110)

=BITXOR(255, 15)

Returns 240

Note: Bits that differ result in 1; identical bits result in 0

DSUM()

Database

Sums values in a column of a database that match specified criteria

Syntax:

=DSUM(database, field, criteria)

Examples:

=DSUM(A1:D100, "Sales", F1:F2)

Sum Sales column where F criteria match

=DSUM(A:D, 3, F1:F2)

Sum 3rd column matching criteria

Note: database includes headers; criteria range must also have matching headers

DAVERAGE()

Database

Averages values in a column that match specified criteria

Syntax:

=DAVERAGE(database, field, criteria)

Examples:

=DAVERAGE(A1:D100, "Score", F1:F2)

Average Score where criteria match

Note: Same structure as DSUM; criteria uses a separate range with headers

DCOUNT()

Database

Counts numeric cells in a column that match specified criteria

Syntax:

=DCOUNT(database, field, criteria)

Examples:

=DCOUNT(A1:D100, "Amount", F1:F2)

Count numeric Amount values matching criteria

Note: Use DCOUNTA to count non-empty cells (including text)

DMAX()

Database

Returns the maximum value in a column that matches specified criteria

Syntax:

=DMAX(database, field, criteria)

Examples:

=DMAX(A1:D100, "Revenue", F1:F2)

Max Revenue for matching rows

Note: Useful when you need a conditional MAX with multiple complex criteria

DMIN()

Database

Returns the minimum value in a column that matches specified criteria

Syntax:

=DMIN(database, field, criteria)

Examples:

=DMIN(A1:D100, "Cost", F1:F2)

Minimum Cost for matching rows

Note: Counterpart to DMAX

DGET()

Database

Extracts a single value from a column matching specified criteria

Syntax:

=DGET(database, field, criteria)

Examples:

=DGET(A1:D100, "Email", F1:F2)

Get Email for the single matching row

Note: Returns #NUM! if multiple rows match; returns #VALUE! if no rows match

Google Sheets Mastery Guide

Beginner

Start with calculations and basic data organisation

Intermediate

Master lookups and Google-specific power features

Advanced

QUERY language, regex, and live data imports

📊 What is Google Sheets?

Google Sheets is a free, cloud-based spreadsheet application from Google, available as part of Google Workspace. First launched in 2006, it has grown into a powerful alternative to Microsoft Excel — and in several areas surpasses it, with unique features like real-time collaboration, built-in QUERY language, live data imports, and formulas for translating text and fetching stock prices directly in a cell.

🚀 Core Capabilities

  • Real-time collaboration: Multiple users edit simultaneously
  • Cloud storage: Auto-saves to Google Drive
  • QUERY formula: SQL-like data analysis in a cell
  • Live data imports: IMPORTHTML, IMPORTXML, GOOGLEFINANCE
  • ARRAYFORMULA: Apply formulas to entire columns instantly
  • Apps Script: JavaScript-based automation and macros

💼 Google Sheets Exclusive Functions

  • QUERY: SQL-like language for filtering and aggregating data
  • ARRAYFORMULA: Array operations without Ctrl+Shift+Enter
  • IMPORTRANGE: Pull data live from another spreadsheet
  • GOOGLETRANSLATE: Translate text between 100+ languages
  • GOOGLEFINANCE: Live stock prices and financial data
  • SPARKLINE: Mini charts directly inside a cell

⚡ Google Sheets vs. Excel

Google Sheets Advantages

  • • Free to use with a Google account
  • • Real-time multi-user collaboration
  • • QUERY, ARRAYFORMULA, FILTER, UNIQUE built-in
  • • Live web data imports (IMPORTHTML, IMPORTXML)
  • • Version history with per-cell tracking
  • • Works in any browser, no install needed

Excel Advantages

  • • More powerful PivotTables and data model
  • • Better performance with very large datasets
  • • VBA macros for complex automation
  • • More chart types and formatting options
  • • Power Query for ETL operations
  • • Industry standard in finance and enterprise

Google Sheets Pro Tips

ARRAYFORMULA shortcut: Press Ctrl+Shift+Enter in a cell to automatically wrap your formula with ARRAYFORMULA — applies it to the entire column instantly.

QUERY SQL-like syntax: Use SELECT, WHERE, GROUP BY, ORDER BY, LIMIT just like SQL — e.g. QUERY(A:D, "SELECT A, SUM(D) GROUP BY A")

IMPORTRANGE cross-sheet tip: Paste the full Google Sheets URL as the first argument. You only need to grant access once — after that, data syncs live between spreadsheets automatically.

FILTER with OR logic: Use + between conditions (not OR()) — e.g. FILTER(A:B, (A:A="X")+(B:B="Y"))

Master Google Sheets formulas with practice. Bookmark this page for quick reference! ⭐ marks Google-exclusive functions.

📊 99 Total Formulas 🏷️ 10 Categories ⭐ Google-Exclusive Functions