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
XLOOKUPto 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 + MATCHto lookup commission rates based on sales tiers. - Combine
INDEX + MATCHwithIFERRORto 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
FILTERcombined withISNUMBERto 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
QUERYto 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
ARRAYFORMULAwithIFandISBLANKto 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
TEXTwithCONCATENATEto 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
IFSto include an "Exceptional" category for amounts greater than 3000. - Combine
IFSwithANDandORfor 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
SPLITwithJOINto 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
UNIQUEwithFILTERto 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
ISBLANKwithCOUNTIFto 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
IFERRORto clean up VLOOKUP errors when a lookup value is missing. - Combine
IFERRORwith 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
VLOOKUPwithIFERRORto 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
HLOOKUPto pull forecast values based on quarter headers. - Combine
HLOOKUPwithIFto 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
OFFSETto 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
OFFSETin 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
INDIRECTto reference a cell dynamically using row number in another cell. - Link to a named range or cell on another sheet using
INDIRECT. - Combine
INDIRECTwithR1C1referencing 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
LETto define variables for intermediate calculations. - Improve readability by replacing repeated expressions with
LETvariables. - Combine
LETwithLAMBDAfor 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