Excel & Sheets
Formula Library & Practice
Browse every formula, solve guided drills, work through case studies, and test spreadsheet logic on real datasets.
This is the reference layer and the practice layer in one place: use the library when you need syntax, jump into targeted exercises, switch to randomized test mode, tackle a case study, or experiment in the sandbox.
Choose a Path
Browse Formula Library
Definitions, syntax, worked examples, and targeted Try It drills.
Test Me
Randomized prompts where you pick the right formula without clues.
Browse Challenges
3 guided business scenarios with time, difficulty, and skill tags.
Formula Sandbox
Experiment freely against real datasets before you commit to an answer.
Practice Datasets
12 months of vendor invoices for a growing company. Tracks payments, departments, approvers, and invoice status.
What you'll practice
100+ exercises total
Formula Library
42 formulas - click any card to see full syntax, examples, and exercises
AVERAGE
Returns the arithmetic mean of a set of numbers.
=AVERAGE(number1, [number2], ...)Sheets: same syntax
AVERAGEIF
Calculates the average of values that meet a condition.
=AVERAGEIF(range, criteria, [average_range])Sheets: same syntax
AVERAGEIFS
Calculates the average of values that meet multiple conditions.
=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)Sheets: same syntax
COUNTA
Counts the number of non-empty cells in a range.
=COUNTA(value1, [value2], ...)Sheets: same syntax
COUNTIF
Counts the number of cells in a range that meet a condition.
=COUNTIF(range, criteria)Sheets: same syntax
COUNTIFS
Counts cells that meet multiple conditions simultaneously.
=COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)Sheets: same syntax
MAX
Returns the largest value in a range.
=MAX(number1, [number2], ...)Sheets: same syntax
MIN
Returns the smallest value in a range.
=MIN(number1, [number2], ...)Sheets: same syntax
ROUND
Rounds a number to a specified number of decimal places.
=ROUND(number, num_digits)Sheets: same syntax
SUM
Adds up all numbers in a range.
=SUM(number1, [number2], ...)Sheets: same syntax
SUMIF
Adds up values in a range that meet a single condition.
=SUMIF(range, criteria, [sum_range])Sheets: same syntax
SUMIFS
Adds up values that meet multiple conditions simultaneously.
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)Sheets: same syntax
UNIQUE
Returns a list of unique values from a range, removing duplicates.
=UNIQUE(array, [by_col], [exactly_once])HLOOKUP
Searches for a value in the first row of a range and returns a value from a specified row below it.
=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])INDEX
Returns the value at a specific row and column position within a range.
=INDEX(array, row_num, [column_num])Sheets: same syntax
MATCH
Returns the position of a value within a range.
=MATCH(lookup_value, lookup_array, [match_type])Sheets: same syntax
VLOOKUP
Searches for a value in the first column of a range and returns a value from another column in the same row.
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])Sheets: same syntax
XLOOKUP
Searches a range for a value and returns a corresponding value from another range. The modern replacement for VLOOKUP.
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])Sheets: same syntax
AND
Returns TRUE only if ALL conditions are true.
=AND(logical1, [logical2], ...)Sheets: same syntax
IF
Returns one value if a condition is true and another if it's false.
=IF(logical_test, value_if_true, value_if_false)Sheets: same syntax
IFERROR
Returns a custom value if a formula results in an error, otherwise returns the formula's result.
=IFERROR(value, value_if_error)Sheets: same syntax
IFS
Evaluates multiple conditions in order and returns the value for the first true condition.
=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)Sheets: same syntax
NOT
Reverses a logical value by turning TRUE to FALSE and FALSE to TRUE.
=NOT(logical)OR
Returns TRUE if ANY condition is true.
=OR(logical1, [logical2], ...)Sheets: same syntax
SWITCH
Evaluates an expression against a list of values and returns the result for the first match.
=SWITCH(expression, value1, result1, [value2, result2], ..., [default])CONCATENATE / CONCAT
Joins two or more text strings into one.
=CONCATENATE(text1, text2, ...) or =CONCAT(text1, text2, ...) or =text1 & text2Sheets: same syntax
FIND
Returns the position of a text string within another string (case-sensitive).
=FIND(find_text, within_text, [start_num])LEFT
Extracts a specified number of characters from the start of a text string.
=LEFT(text, [num_chars])Sheets: same syntax
LEN
Returns the number of characters in a text string.
=LEN(text)Sheets: same syntax
SUBSTITUTE
Replaces specific text within a string with different text.
=SUBSTITUTE(text, old_text, new_text, [instance_num])Sheets: same syntax
TEXT
Formats a number or date as text using a specified format code.
=TEXT(value, format_text)Sheets: same syntax
TRIM
Removes extra spaces from text, leaving only single spaces between words.
=TRIM(text)Sheets: same syntax
UPPER / LOWER / PROPER
Converts text to uppercase, lowercase, or title case.
=UPPER(text) / =LOWER(text) / =PROPER(text)DATEDIF
Calculates the difference between two dates in days, months, or years.
=DATEDIF(start_date, end_date, unit)EOMONTH
Returns the last day of a month a specified number of months before or after a date.
=EOMONTH(start_date, months)MONTH
Extracts the month number (1-12) from a date.
=MONTH(serial_number)Sheets: same syntax
NETWORKDAYS
Returns the number of working days (excluding weekends) between two dates.
=NETWORKDAYS(start_date, end_date, [holidays])YEAR
Extracts the year from a date.
=YEAR(serial_number)Sheets: same syntax
LARGE
Returns the Nth largest value from a range.
=LARGE(array, k)MEDIAN
Returns the middle value in a set of numbers.
=MEDIAN(number1, [number2], ...)Sheets: same syntax
RANK
Returns the rank of a number within a list of numbers.
=RANK(number, ref, [order])SMALL
Returns the Nth smallest value from a range.
=SMALL(array, k)