Master Advanced Google Sheets and Excel Formulas: Complete Guide with Practice Exercises and Sample Data
Advanced Google Sheets Practice Exercises for Data Analysts
This guide contains practice exercises to master advanced Google Sheets formulas. Each formula is explained with multiple practice tasks progressing from basic to advanced, plus examples on how to combine formulas for powerful data analysis. Click the links to open ready-to-use Google Sheets for hands-on practice.
1. Advanced SUMIFS with Multiple Criteria & Date Ranges
Formula Syntax:
=SUMIFS(AmountRange, RegionRange, "North", CategoryRange, "Electronics", DateRange, ">=2025-07-01", DateRange, "<=2025-07-31")
Practice Questions:
- Sum all sales where Region is "North" and Category is "Electronics" in July 2025.
- Sum sales for Region "South" or "East" in the first quarter of 2025.
- Calculate total sales for "Furniture" category where sale date is before 2025-06-01 and amount is greater than 1000.
SUMIFS
with TEXT
to sum sales by month name dynamically:
=SUMIFS(AmountRange, RegionRange, "North", TEXT(DateRange, "MMMM"), "July")
2. COUNTIFS with Partial Text Matching & Dates
Formula Syntax:
=COUNTIFS(RegionRange, "South", ProductRange, "*Phone*", DateRange, ">2025-07-05")
Practice Questions:
- Count sales where Region is "South" and Product contains "Phone" after July 5, 2025.
- Count how many orders were placed in "West" region for products starting with "T" in August 2025.
- Count the number of sales with amount greater than 2000 where the product name contains either "Laptop" or "Tablet".
COUNTIFS
with REGEXMATCH
inside ARRAYFORMULA
to count cells matching complex patterns.
=SUM(ARRAYFORMULA(REGEXMATCH(ProductRange, "Phone|Tablet") * (RegionRange="South")))
3. XLOOKUP with Multiple Return Values (Spill Array)
Formula Syntax:
=XLOOKUP("Product B", ProductRange, CHOOSE({1,2}, PriceRange, CategoryRange), "Not Found")
Practice Questions:
- Find price and category of "Product B".
- Lookup "Product C" and return price, category, and supplier name.
- Use
XLOOKUP
to return all details (multiple columns) for a product, and handle cases where product is missing by returning a default message.
XLOOKUP
with IFERROR
to prevent errors and return clean outputs:
=IFERROR(XLOOKUP(ProductID, ProductList, PriceList), "Price Not Found")
4. INDEX + MATCH with Approximate Match for Tiered Pricing
Formula Syntax:
=INDEX(DiscountsRange, MATCH(SalesVolume, VolumeThresholds, 1))
Practice Questions:
- Find discount percentage for a sales volume using approximate match.
- Use
INDEX + MATCH
to lookup commission rates based on sales tiers. - Combine
INDEX + MATCH
withIFERROR
to provide default discount when volume is below thresholds.
INDEX + MATCH
with ARRAYFORMULA
to apply tiered discounts to a list of sales volumes in one formula:
=ARRAYFORMULA(IFERROR(INDEX(DiscountsRange, MATCH(SalesVolumesRange, VolumeThresholds, 1)), 0))
5. FILTER with Multiple OR Conditions
Formula Syntax:
=FILTER(DataRange, ((RegionRange = "North") + (RegionRange = "West")) * (AmountRange > 1000))
Practice Questions:
- Filter rows where Region is "North" or "West" and sales amount is greater than 1000.
- Filter data for Region "East" or products starting with "S" and amount less than 500.
- Use
FILTER
combined withISNUMBER
to get only numeric sales amounts from mixed data.
FILTER
with ARRAYFORMULA
and REGEXMATCH
for advanced filtering based on text patterns:
=FILTER(DataRange, ARRAYFORMULA(REGEXMATCH(ProductRange, "TV|Laptop")) * (AmountRange > 1000))
6. QUERY with Date Filtering and Aggregation
Formula Syntax:
=QUERY(DataRange, "SELECT B, SUM(A) WHERE C > date '2025-07-10' GROUP BY B", 1)
Practice Questions:
- Get total sales per region for sales after July 10, 2025.
- Retrieve all rows where sales amount is above 1000 and product category is "Electronics".
- Use
QUERY
to list distinct products and their average sales.
QUERY
output as input for FILTER
or VLOOKUP
for multi-step data analysis:
=FILTER(OriginalDataRange, OriginalDataRange[Product] = QUERY(DataRange, "SELECT Product WHERE ...", 1))
7. ARRAYFORMULA with Conditional Logic
Formula Syntax:
=ARRAYFORMULA(IF(AmountRange > 1000, "High", "Low"))
Practice Questions:
- Label sales as "High" if amount > 1000, otherwise "Low".
- Create a new column that shows "Yes" if product category is "Electronics" and amount > 1500, else "No".
- Combine
ARRAYFORMULA
withIF
andISBLANK
to handle empty cells gracefully.
ARRAYFORMULA
with VLOOKUP
to apply lookups across entire columns without dragging formulas:
=ARRAYFORMULA(IF(ISBLANK(ProductRange), "", VLOOKUP(ProductRange, PriceTable, 2, FALSE)))
8. TEXT & DATE Functions for Custom Reports
Formula Syntax:
=TEXT(DateCell, "MMMM YYYY")
Practice Questions:
- Convert date to "July 2025" format.
- Extract day of week from a date.
- Combine
TEXT
withCONCATENATE
to create a full report title with dynamic month and year.
TEXT
inside QUERY
or FILTER
to dynamically filter by month:
=QUERY(DataRange, "SELECT * WHERE TEXT(DateColumn, 'MMMM') = 'July'")
9. IFS with Multiple Conditions and Default
Formula Syntax:
=IFS(Amount < 500, "Low", Amount <= 1500, "Medium", TRUE, "High")
Practice Questions:
- Categorize sales amounts as "Low", "Medium", or "High" based on thresholds.
- Extend
IFS
to include an "Exceptional" category for amounts greater than 3000. - Combine
IFS
withAND
andOR
for complex conditions.
IFS
inside ARRAYFORMULA
to categorize an entire column dynamically:
=ARRAYFORMULA(IFS(AmountRange < 500, "Low", AmountRange <= 1500, "Medium", TRUE, "High"))
10. SPLIT + TRIM to Clean & Separate Names
Formula Syntax:
=ARRAYFORMULA(TRIM(SPLIT(FullNameRange, " ")))
Practice Questions:
- Split full names into first and last names and remove extra spaces.
- Extract middle names where available.
- Combine
SPLIT
withJOIN
to reformat names as "Last, First".
SPLIT
and ARRAYFORMULA
to clean a list of full names and then use VLOOKUP
on first names.
11. UNIQUE + SORTN to Find Top N Values Without Duplicates
Formula Syntax:
=SORTN(UNIQUE(SalesRange), 3, 0, 1, FALSE)
Practice Questions:
- Get top 3 unique sales amounts.
- Find top 5 selling products without duplicates.
- Combine
UNIQUE
withFILTER
to find top values in specific regions.
UNIQUE
inside QUERY
to create dynamic dropdowns of distinct product names for data validation.
12. IS Functions to Identify and Count Data Types
Formula Syntax:
=COUNTIF(ARRAYFORMULA(ISNUMBER(Range)), TRUE)
Practice Questions:
- Count how many cells contain numbers.
- Count non-empty text cells.
- Use
ISBLANK
withCOUNTIF
to count empty cells.
ISNUMBER
with FILTER
to extract only numeric entries from mixed data sets.
13. IFERROR to Avoid #DIV/0! Errors
Formula Syntax:
=IFERROR(SalesCell / UnitsCell, "N/A")
Practice Questions:
- Calculate sales per unit and display "N/A" if units sold is zero or blank.
- Use
IFERROR
to clean up VLOOKUP errors when a lookup value is missing. - Combine
IFERROR
with nested formulas to handle multiple error types gracefully.
IFERROR
to maintain clean dashboards and reports without error clutter.
14. VLOOKUP for Vertical Lookup
Formula Syntax:
=VLOOKUP("Product A", A2:C10, 2, FALSE)
Practice Questions:
- Find the price of "Product A" using
VLOOKUP
. - Lookup the category of a product using its name.
- Use
VLOOKUP
withIFERROR
to display "Not Found" if product doesn't exist.
ARRAYFORMULA
with VLOOKUP
to apply lookup across a full column:
=ARRAYFORMULA(IF(A2:A="", "", VLOOKUP(A2:A, ProductTable, 2, FALSE)))
15. HLOOKUP for Horizontal Lookup
Formula Syntax:
=HLOOKUP("Q2", A1:D3, 2, FALSE)
Practice Questions:
- Get revenue value from Q2 row.
- Use
HLOOKUP
to pull forecast values based on quarter headers. - Combine
HLOOKUP
withIF
to choose between actual and forecasted values.
HLOOKUP
with MATCH
to dynamically locate row numbers based on headers.
16. OFFSET + MATCH for Dynamic Range Selection
Formula Syntax:
=SUM(OFFSET(B2, MATCH("Region B", A2:A10, 0)-1, 1, 1, 3))
Practice Questions:
- Use
OFFSET
to dynamically sum a row of quarterly data based on region name. - Create a dynamic reference that shifts 2 rows down and 1 column right.
- Use
OFFSET
in data validation to create expandable dropdowns.
OFFSET
with COUNTA
for dynamic ranges that grow with data.
=OFFSET(A1, 0, 0, COUNTA(A:A), 1)
17. INDIRECT for Dynamic Cell References
Formula Syntax:
=INDIRECT("B" & A1)
Practice Questions:
- Use
INDIRECT
to reference a cell dynamically using row number in another cell. - Link to a named range or cell on another sheet using
INDIRECT
. - Combine
INDIRECT
withR1C1
referencing style.
INDIRECT
with DATA VALIDATION
to create dynamic dependent dropdowns.
18. LET Function for Named Variables in Formulas (Excel Only)
Formula Syntax:
=LET(x, A1*2, y, A2+3, x+y)
Practice Questions:
- Use
LET
to define variables for intermediate calculations. - Improve readability by replacing repeated expressions with
LET
variables. - Combine
LET
withLAMBDA
for custom reusable functions (Excel only).
LET
inside large formulas like XLOOKUP
or IF
to simplify structure and improve performance.
14. VLOOKUP – Search Vertically in a Table
Formula Syntax:
=VLOOKUP("Product A", A2:C10, 2, FALSE)
Explanation:
VLOOKUP
searches for a value in the **first column** of a table and returns a value from the same row in a different column.
Practice Questions:
- Find the price of "Product A" using VLOOKUP.
- Look up a product's category using its name.
- Use VLOOKUP with IFERROR to avoid showing errors if data is missing.
ARRAYFORMULA
to search through multiple rows at once:
=ARRAYFORMULA(IF(A2:A="", "", VLOOKUP(A2:A, ProductTable, 2, FALSE)))
15. HLOOKUP – Search Horizontally in a Row
Formula Syntax:
=HLOOKUP("Q2", A1:D3, 2, FALSE)
Explanation:
HLOOKUP
searches for a value in the **top row** of a table and returns data from a row underneath.
Practice Questions:
- Get Q2 revenue from a horizontal table of quarters.
- Pull monthly targets based on quarter names.
- Use HLOOKUP with IF to show forecast if actual is missing.
HLOOKUP
with CHOOSE
to create flexible row lookups for reports.
16. XLOOKUP – Modern & Flexible Lookup
Formula Syntax:
=XLOOKUP("Product B", ProductRange, PriceRange, "Not Found")
Explanation:
XLOOKUP
searches for a value in one column and returns a value from another column — left or right, top or bottom. It's easier and more flexible than VLOOKUP.
Practice Questions:
- Find price and category of "Product B".
- Return multiple columns like price, category, and supplier.
- Use XLOOKUP with a default message for missing data.
CHOOSE
inside XLOOKUP
to return multiple values in one formula:
=XLOOKUP("Product B", A2:A10, CHOOSE({1,2}, B2:B10, C2:C10), "Not Found")
17. LOOKUP – Simple Lookup & Last Value Finder
Formula Syntax:
=LOOKUP(500, SalesRange, DiscountRange)
Explanation:
LOOKUP
is used to find the **closest match** in a sorted range, or to return the **last non-empty value** in a list.
Practice Questions:
- Find discount for a sale of $500 using approximate match.
- Get the last value in a column using LOOKUP.
- Compare LOOKUP with VLOOKUP or INDEX+MATCH for better control.
=LOOKUP(2,1/(A:A<>""),A:A)
Practice these exercises by clicking the links to the Google Sheets datasets where you can see sample data and formulas pre-built. You can make copies to modify and extend for your own learning.
Comments
Post a Comment