Free - No login required

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.

Practice Datasets

150 rowsDownload CSV

12 months of vendor invoices for a growing company. Tracks payments, departments, approvers, and invoice status.

invoice_idvendor_namecategoryinvoice_dateamountdepartmentstatuspayment_dateapprover

What you'll practice

->SUM & SUMIF
->VLOOKUP
->IF logic
->COUNTIF & more

100+ exercises total

Formula Library

42 formulas - click any card to see full syntax, examples, and exercises

AVERAGE

Try It ->

Returns the arithmetic mean of a set of numbers.

=AVERAGE(number1, [number2], ...)

Sheets: same syntax

Math & Aggregation

AVERAGEIF

Try It ->

Calculates the average of values that meet a condition.

=AVERAGEIF(range, criteria, [average_range])

Sheets: same syntax

Math & Aggregation

AVERAGEIFS

Try It ->

Calculates the average of values that meet multiple conditions.

=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

Sheets: same syntax

Math & Aggregation

COUNTA

Try It ->

Counts the number of non-empty cells in a range.

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

Sheets: same syntax

Math & Aggregation

COUNTIF

Try It ->

Counts the number of cells in a range that meet a condition.

=COUNTIF(range, criteria)

Sheets: same syntax

Math & Aggregation

COUNTIFS

Try It ->

Counts cells that meet multiple conditions simultaneously.

=COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)

Sheets: same syntax

Math & Aggregation

MAX

Try It ->

Returns the largest value in a range.

=MAX(number1, [number2], ...)

Sheets: same syntax

Math & Aggregation

MIN

Try It ->

Returns the smallest value in a range.

=MIN(number1, [number2], ...)

Sheets: same syntax

Math & Aggregation

ROUND

Try It ->

Rounds a number to a specified number of decimal places.

=ROUND(number, num_digits)

Sheets: same syntax

Math & Aggregation

SUM

Try It ->

Adds up all numbers in a range.

=SUM(number1, [number2], ...)

Sheets: same syntax

Math & Aggregation

SUMIF

Try It ->

Adds up values in a range that meet a single condition.

=SUMIF(range, criteria, [sum_range])

Sheets: same syntax

Math & Aggregation

SUMIFS

Try It ->

Adds up values that meet multiple conditions simultaneously.

=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

Sheets: same syntax

Math & Aggregation

UNIQUE

Try It ->

Returns a list of unique values from a range, removing duplicates.

=UNIQUE(array, [by_col], [exactly_once])
Math & Aggregation

HLOOKUP

Try It ->

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])
Lookup & Reference

INDEX

Try It ->

Returns the value at a specific row and column position within a range.

=INDEX(array, row_num, [column_num])

Sheets: same syntax

Lookup & Reference

MATCH

Try It ->

Returns the position of a value within a range.

=MATCH(lookup_value, lookup_array, [match_type])

Sheets: same syntax

Lookup & Reference

VLOOKUP

Try It ->

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

Lookup & Reference

XLOOKUP

Try It ->

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

Lookup & Reference

AND

Try It ->

Returns TRUE only if ALL conditions are true.

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

Sheets: same syntax

Logical

IF

Try It ->

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

Logical

IFERROR

Try It ->

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

Logical

IFS

Try It ->

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

Logical

NOT

Try It ->

Reverses a logical value by turning TRUE to FALSE and FALSE to TRUE.

=NOT(logical)
Logical

OR

Try It ->

Returns TRUE if ANY condition is true.

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

Sheets: same syntax

Logical

SWITCH

Try It ->

Evaluates an expression against a list of values and returns the result for the first match.

=SWITCH(expression, value1, result1, [value2, result2], ..., [default])
Logical

CONCATENATE / CONCAT

Try It ->

Joins two or more text strings into one.

=CONCATENATE(text1, text2, ...) or =CONCAT(text1, text2, ...) or =text1 & text2

Sheets: same syntax

Text

FIND

Try It ->

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

=FIND(find_text, within_text, [start_num])
Text

LEFT

Try It ->

Extracts a specified number of characters from the start of a text string.

=LEFT(text, [num_chars])

Sheets: same syntax

Text

LEN

Try It ->

Returns the number of characters in a text string.

=LEN(text)

Sheets: same syntax

Text

SUBSTITUTE

Try It ->

Replaces specific text within a string with different text.

=SUBSTITUTE(text, old_text, new_text, [instance_num])

Sheets: same syntax

Text

TEXT

Try It ->

Formats a number or date as text using a specified format code.

=TEXT(value, format_text)

Sheets: same syntax

Text

TRIM

Try It ->

Removes extra spaces from text, leaving only single spaces between words.

=TRIM(text)

Sheets: same syntax

Text

UPPER / LOWER / PROPER

Try It ->

Converts text to uppercase, lowercase, or title case.

=UPPER(text) / =LOWER(text) / =PROPER(text)
Text

DATEDIF

Try It ->

Calculates the difference between two dates in days, months, or years.

=DATEDIF(start_date, end_date, unit)
Date & Time

EOMONTH

Try It ->

Returns the last day of a month a specified number of months before or after a date.

=EOMONTH(start_date, months)
Date & Time

MONTH

Try It ->

Extracts the month number (1-12) from a date.

=MONTH(serial_number)

Sheets: same syntax

Date & Time

NETWORKDAYS

Try It ->

Returns the number of working days (excluding weekends) between two dates.

=NETWORKDAYS(start_date, end_date, [holidays])
Date & Time

YEAR

Try It ->

Extracts the year from a date.

=YEAR(serial_number)

Sheets: same syntax

Date & Time

LARGE

Try It ->

Returns the Nth largest value from a range.

=LARGE(array, k)
Statistical

MEDIAN

Try It ->

Returns the middle value in a set of numbers.

=MEDIAN(number1, [number2], ...)

Sheets: same syntax

Statistical

RANK

Try It ->

Returns the rank of a number within a list of numbers.

=RANK(number, ref, [order])
Statistical

SMALL

Try It ->

Returns the Nth smallest value from a range.

=SMALL(array, k)
Statistical