Google Sheets formulas for data analysis: the 10 you actually need
most people use 5% of Google Sheets’ formula capability and do the other 95% manually.
this guide covers the formulas that eliminate the most manual work for solopreneurs doing business data analysis — with real examples for revenue tracking, customer data, and reporting.
SUMIF — total values matching a condition
syntax: =SUMIF(range, criteria, sum_range)
what it does: adds up values in one column where a corresponding column matches your condition.
business example: total revenue from “North America” region.
=SUMIF(B:B, "North America", E:E)
adds up all values in column E where column B = “North America.”
SUMIFS for multiple conditions:
=SUMIFS(E:E, B:B, "North America", C:C, "Enterprise")
total revenue from North America AND Enterprise tier customers.
COUNTIF — count rows matching a condition
syntax: =COUNTIF(range, criteria)
business example: how many orders came from “Australia”?
=COUNTIF(B:B, "Australia")
COUNTIFS for multiple conditions:
=COUNTIFS(B:B, "Australia", D:D, "2026")
count orders from Australia in 2026.
AVERAGEIF — average for rows matching a condition
syntax: =AVERAGEIF(range, criteria, average_range)
business example: average order value for the Enterprise tier.
=AVERAGEIF(C:C, "Enterprise", E:E)
VLOOKUP — find a value in another table
syntax: =VLOOKUP(lookup_value, table_range, column_number, FALSE)
what it does: searches the first column of a range for your value and returns the corresponding value from another column.
business example: you have an order table with Product IDs and a product table with Product ID + Name. to add the product name to each order:
=VLOOKUP(A2, ProductTable, 2, FALSE)
searches ProductTable for the value in A2, returns column 2 (the product name).
important: always use FALSE as the last argument for exact match. TRUE gives approximate match and produces wrong results in most business contexts.
XLOOKUP (modern replacement):
=XLOOKUP(A2, ProductTable[ID], ProductTable[Name], "Not Found")
XLOOKUP is more flexible: searches in any column (not just the first), handles the “not found” case cleanly, and is not broken by inserting new columns in the lookup table.
INDEX MATCH — more flexible than VLOOKUP
syntax: =INDEX(return_range, MATCH(lookup_value, lookup_range, 0))
use INDEX MATCH when you need to look up a value based on a column that is not the first column of your table.
business example: you have a table with Customer Name in column B, ID in column C, and Revenue in column D. find the revenue for customer “Acme Corp”:
=INDEX(D:D, MATCH("Acme Corp", B:B, 0))
QUERY — SQL-style queries inside Google Sheets
syntax: =QUERY(data_range, "SELECT A, B WHERE C > 1000 ORDER BY D DESC")
QUERY is the most powerful Google Sheets formula. it lets you write SQL-like queries against any range.
filter and sort:
=QUERY(A1:G1000, "SELECT A, B, E WHERE C = 'North America' ORDER BY E DESC")
returns columns A, B, E where column C = “North America”, sorted by column E descending.
aggregate with GROUP BY:
=QUERY(A1:G1000, "SELECT B, SUM(E) GROUP BY B LABEL SUM(E) 'Total Revenue'")
revenue by region — same as a pivot table, but refreshes dynamically.
date filters:
=QUERY(A1:G1000, "SELECT A, E WHERE D >= DATE '2026-01-01'")
QUERY is the formula to learn if you want to replace manual filtering and pivot tables with formulas that update automatically.
ARRAYFORMULA — apply a formula to the whole column at once
syntax: =ARRAYFORMULA(formula)
without ARRAYFORMULA, a formula in B2 calculates for row 2 only. you copy it down to B3, B4, B5… which breaks when new rows are added above.
ARRAYFORMULA applies the formula to the entire column in one cell:
=ARRAYFORMULA(IF(A2:A<>"", A2:A * 1.1, ""))
multiplies every non-blank value in column A by 1.1, across all rows, from a single formula in B2.
use for calculated columns: instead of dragging a formula down 1,000 rows, one ARRAYFORMULA in the header row handles all current and future rows.
FILTER — dynamic filtered views
syntax: =FILTER(range, condition1, [condition2...])
FILTER returns a subset of rows from a range matching your conditions. unlike hiding rows manually, the output updates automatically when the source data changes.
business example: show only orders over $1,000 from column A-E:
=FILTER(A1:E1000, E1:E1000>1000)
multiple conditions:
=FILTER(A1:E1000, E1:E1000>1000, C1:C1000="Enterprise")
FILTER is the formula equivalent of slicing a pivot table — you get a clean, automatically updating view of a subset without modifying the source data.
IMPORTRANGE — pull data from another Google Sheet
syntax: =IMPORTRANGE("spreadsheet_url", "Sheet1!A1:E1000")
IMPORTRANGE connects two Sheets. pull data from your team’s master data sheet into your analysis sheet without copy-pasting.
use case: a central data collection Sheet (where the team enters data) and a separate analysis Sheet (your dashboard). IMPORTRANGE keeps them synchronized without manual exports.
UNIQUE and SORT — deduplicate and rank lists
UNIQUE: returns the unique values from a column.
=UNIQUE(B2:B1000) — returns a deduplicated list of regions.
SORT: sorts a range dynamically.
=SORT(UNIQUE(B2:B1000), 1, TRUE) — sorted unique list of regions.
combine with COUNTIF to get a distribution table:
A: =SORT(UNIQUE(B2:B1000))
B: =ARRAYFORMULA(COUNTIF(B2:B1000, A2:A100))
this gives you a count of each unique category, sorted — in two formulas, without a pivot table.
combining formulas for real analysis
revenue and order count by region (without a pivot table):
A1: =SORT(UNIQUE(Data!C:C)) — unique regions
B1: =ARRAYFORMULA(SUMIF(Data!C:C, A1:A20, Data!E:E)) — revenue
C1: =ARRAYFORMULA(COUNTIF(Data!C:C, A1:A20)) — order count
D1: =ARRAYFORMULA(B1:B20/C1:C20) — average order value
this four-formula block creates a dynamic region summary that updates automatically as new orders are added to the Data sheet.
for more on building dashboards from this kind of formula output: how to build a business dashboard without code.
for the pivot table approach: Google Sheets pivot table tutorial for beginners.
for comparison with Excel’s formula ecosystem: Excel vs Google Sheets for data analysis 2026.