Excel Formulas Cheat Sheet
Master Excel with our comprehensive formulas reference guide. From basic math to advanced lookup functions, find syntax, examples, and expert tips for all essential Excel formulas.
Excel Mastery Guide
Beginner
Start with basic calculations and data organization
Intermediate
Master lookup functions and data analysis
Excel Pro Tips
F4 Key: Toggle between absolute and relative references ($A$1, A$1, $A1, A1)
Ctrl + Shift + Enter: Enter array formulas (older Excel versions)
F9 Key: Calculate formulas manually when set to manual calculation mode
Ctrl + `: Toggle between formula view and result view
SUM()
Math & StatisticalAdds all numbers in a range
Syntax:
=SUM(number1, [number2], ...)
Examples:
=SUM(A1:A10)
Sum all values in range A1 to A10
=SUM(A1, B1, C1)
Sum specific cells
=SUM(A1:A5, C1:C5)
Sum multiple ranges
Note: Ignores text values and empty cells
SUBTOTAL()
Math & StatisticalReturns a subtotal in a list or database using specified function
Syntax:
=SUBTOTAL(function_num, ref1, [ref2], ...)
Examples:
=SUBTOTAL(9, A1:A10)
Sum of visible cells (function 9)
=SUBTOTAL(1, A1:A10)
Average of visible cells (function 1)
=SUBTOTAL(109, A1:A10)
Sum ignoring hidden rows and filtered data
Note: Functions 1-11 include hidden cells, 101-111 ignore hidden cells
SUMIF()
Math & StatisticalSums cells that meet a criteria
Syntax:
=SUMIF(range, criteria, [sum_range])
Examples:
=SUMIF(A1:A10, ">100")
Sum values greater than 100
=SUMIF(A1:A10, "Apple", B1:B10)
Sum B values where A contains 'Apple'
=SUMIF(A1:A10, A12, B1:B10)
Sum B values where A equals value in A12
Note: If sum_range is omitted, range is used for both criteria and sum
SUMIFS()
Math & StatisticalSums cells that meet multiple criteria
Syntax:
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Examples:
=SUMIFS(C1:C10, A1:A10, "Apple", B1:B10, ">100")
Sum C where A='Apple' AND B>100
=SUMIFS(D1:D10, A1:A10, ">=" & DATE(2024,1,1), A1:A10, "<" & DATE(2025,1,1))
Sum D for dates in 2024
=SUMIFS(C1:C10, A1:A10, "North", B1:B10, "Q1")
Sum for North region in Q1
Note: All criteria must be met for a cell to be included in sum
AVERAGE()
Math & StatisticalCalculates the average of numbers
Syntax:
=AVERAGE(number1, [number2], ...)
Examples:
=AVERAGE(A1:A10)
Average of range A1 to A10
=AVERAGE(A1, B1, C1)
Average of specific cells
=AVERAGE(A:A)
Average of entire column A
Note: Excludes empty cells and text from calculation
COUNT()
Math & StatisticalCounts cells containing numbers
Syntax:
=COUNT(value1, [value2], ...)
Examples:
=COUNT(A1:A10)
Count numeric cells in range
=COUNT(A:A)
Count numeric cells in column A
=COUNT(A1, B1, C1)
Count specific numeric cells
Note: Only counts cells with numeric values
COUNTA()
Math & StatisticalCounts non-empty cells
Syntax:
=COUNTA(value1, [value2], ...)
Examples:
=COUNTA(A1:A10)
Count non-empty cells in range
=COUNTA(A:A)
Count non-empty cells in column A
=COUNTA(A1:C1)
Count non-empty cells in row
Note: Counts cells with any value (text, numbers, errors)
MAX()
Math & StatisticalReturns the largest value
Syntax:
=MAX(number1, [number2], ...)
Examples:
=MAX(A1:A10)
Find maximum value in range
=MAX(A1, B1, C1)
Find maximum among specific cells
=MAX(A:A)
Find maximum in entire column
Note: Ignores text and logical values
MIN()
Math & StatisticalReturns the smallest value
Syntax:
=MIN(number1, [number2], ...)
Examples:
=MIN(A1:A10)
Find minimum value in range
=MIN(A1, B1, C1)
Find minimum among specific cells
=MIN(A:A)
Find minimum in entire column
Note: Ignores text and logical values
ROUND()
Math & StatisticalRounds a number to specified digits
Syntax:
=ROUND(number, num_digits)
Examples:
=ROUND(3.14159, 2)
Round to 2 decimal places (3.14)
=ROUND(1234.567, 0)
Round to nearest integer (1235)
=ROUND(1234.567, -2)
Round to nearest hundred (1200)
Note: Positive num_digits rounds to right of decimal, negative to left
COUNTIF()
Math & StatisticalCounts cells that meet a criteria
Syntax:
=COUNTIF(range, criteria)
Examples:
=COUNTIF(A1:A10, ">100")
Count cells greater than 100
=COUNTIF(A1:A10, "Apple")
Count cells containing 'Apple'
=COUNTIF(A1:A10, A12)
Count cells equal to value in A12
Note: Supports wildcards: * for multiple characters, ? for single character
COUNTIFS()
Math & StatisticalCounts cells that meet multiple criteria
Syntax:
=COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Examples:
=COUNTIFS(A1:A10, "Apple", B1:B10, ">100")
Count where A='Apple' AND B>100
=COUNTIFS(A1:A10, ">=" & DATE(2024,1,1), A1:A10, "<" & DATE(2025,1,1))
Count dates in 2024
=COUNTIFS(B1:B10, "North", C1:C10, "Q1")
Count North region in Q1
Note: All criteria must be met for a cell to be counted
AVERAGEIF()
Math & StatisticalAverages cells that meet a criteria
Syntax:
=AVERAGEIF(range, criteria, [average_range])
Examples:
=AVERAGEIF(A1:A10, ">100")
Average of values greater than 100
=AVERAGEIF(A1:A10, "Apple", B1:B10)
Average B values where A contains 'Apple'
=AVERAGEIF(A1:A10, A12, B1:B10)
Average B values where A equals value in A12
Note: If average_range is omitted, range is used for both criteria and average
AVERAGEIFS()
Math & StatisticalAverages cells that meet multiple criteria
Syntax:
=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Examples:
=AVERAGEIFS(C1:C10, A1:A10, "Apple", B1:B10, ">100")
Average C where A='Apple' AND B>100
=AVERAGEIFS(D1:D10, A1:A10, ">=" & DATE(2024,1,1), A1:A10, "<" & DATE(2025,1,1))
Average D for dates in 2024
=AVERAGEIFS(C1:C10, A1:A10, "North", B1:B10, "Q1")
Average for North region in Q1
Note: All criteria must be met for a cell to be included in average
MINIFS()
Math & StatisticalReturns minimum value among cells specified by criteria
Syntax:
=MINIFS(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Examples:
=MINIFS(C1:C10, A1:A10, "Apple", B1:B10, ">100")
Minimum C where A='Apple' AND B>100
=MINIFS(D1:D10, A1:A10, "North")
Minimum D for North region
=MINIFS(C1:C10, A1:A10, ">=" & DATE(2024,1,1), A1:A10, "<" & DATE(2025,1,1))
Minimum for dates in 2024
Note: Available in Excel 2016 and later
MAXIFS()
Math & StatisticalReturns maximum value among cells specified by criteria
Syntax:
=MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Examples:
=MAXIFS(C1:C10, A1:A10, "Apple", B1:B10, ">100")
Maximum C where A='Apple' AND B>100
=MAXIFS(D1:D10, A1:A10, "North")
Maximum D for North region
=MAXIFS(C1:C10, A1:A10, ">=" & DATE(2024,1,1), A1:A10, "<" & DATE(2025,1,1))
Maximum for dates in 2024
Note: Available in Excel 2016 and later
CONCATENATE()
Text FunctionsJoins text strings together
Syntax:
=CONCATENATE(text1, [text2], ...)
Examples:
=CONCATENATE(A1, " ", B1)
Join cells with space
=CONCATENATE("Hello ", A1)
Join text with cell value
=A1&" "&B1
Alternative using & operator
Note: Use & operator as alternative. CONCAT() available in newer versions
LEFT()
Text FunctionsExtracts characters from left side of text
Syntax:
=LEFT(text, [num_chars])
Examples:
=LEFT(A1, 3)
Extract first 3 characters
=LEFT("Hello World", 5)
Returns 'Hello'
=LEFT(A1)
Extract first character (default)
Note: Default num_chars is 1 if omitted
RIGHT()
Text FunctionsExtracts characters from right side of text
Syntax:
=RIGHT(text, [num_chars])
Examples:
=RIGHT(A1, 3)
Extract last 3 characters
=RIGHT("Hello World", 5)
Returns 'World'
=RIGHT(A1)
Extract last character (default)
Note: Default num_chars is 1 if omitted
MID()
Text FunctionsExtracts characters from middle of text
Syntax:
=MID(text, start_num, num_chars)
Examples:
=MID(A1, 2, 3)
Extract 3 chars starting at position 2
=MID("Hello World", 7, 5)
Returns 'World'
=MID(A1, 3, 1)
Extract single character at position 3
Note: Start_num is 1-based (first character is position 1)
LEN()
Text FunctionsReturns the length of text
Syntax:
=LEN(text)
Examples:
=LEN(A1)
Count characters in cell A1
=LEN("Hello World")
Returns 11 (including space)
=LEN(TRIM(A1))
Length after removing extra spaces
Note: Counts all characters including spaces
UPPER()
Text FunctionsConverts text to uppercase
Syntax:
=UPPER(text)
Examples:
=UPPER(A1)
Convert cell A1 to uppercase
=UPPER("hello world")
Returns 'HELLO WORLD'
=UPPER(B2&" "&C2)
Convert concatenated text to uppercase
Note: Only affects alphabetic characters
LOWER()
Text FunctionsConverts text to lowercase
Syntax:
=LOWER(text)
Examples:
=LOWER(A1)
Convert cell A1 to lowercase
=LOWER("HELLO WORLD")
Returns 'hello world'
=LOWER(TRIM(A1))
Convert to lowercase and trim spaces
Note: Only affects alphabetic characters
TRIM()
Text FunctionsRemoves extra spaces from text
Syntax:
=TRIM(text)
Examples:
=TRIM(A1)
Remove leading/trailing/extra spaces from A1
=TRIM(" hello world ")
Returns 'hello world'
=TRIM(A1&" "&B1)
Trim concatenated text
Note: Leaves single spaces between words
CONCAT()
Text FunctionsJoins text from multiple ranges and/or strings
Syntax:
=CONCAT(text1, [text2], ...)
Examples:
=CONCAT(A1:A3)
Concatenate range A1:A3
=CONCAT("Hello ", A1, " World")
Mix text and cell references
=CONCAT(A1:A5, " | ", B1:B5)
Concatenate multiple ranges
Note: Replaces CONCATENATE. Available in Excel 2016+. Can handle ranges
TEXTJOIN()
Text FunctionsJoins text with specified delimiter
Syntax:
=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
Examples:
=TEXTJOIN(", ", TRUE, A1:A5)
Join range with commas, skip blanks
=TEXTJOIN(" | ", FALSE, A1, B1, C1)
Join with pipe separator
=TEXTJOIN(CHAR(10), TRUE, A1:A10)
Join with line breaks
Note: Available in Excel 2016+. ignore_empty: TRUE skips empty cells
TEXT()
Text FunctionsFormats number as text using format code
Syntax:
=TEXT(value, format_text)
Examples:
=TEXT(A1, "mm/dd/yyyy")
Format date as text
=TEXT(1234.567, "$#,##0.00")
Format as currency
=TEXT(0.75, "0.0%")
Format as percentage
Note: Common formats: 0=numbers, mm/dd/yyyy=dates, $#,##0.00=currency
HYPERLINK()
Text FunctionsCreates clickable hyperlink
Syntax:
=HYPERLINK(link_location, [friendly_name])
Examples:
=HYPERLINK("https://www.example.com", "Visit Site")
Web link with display text
=HYPERLINK("mailto:user@example.com", "Send Email")
Email link
=HYPERLINK("#Sheet2!A1", "Go to Sheet2")
Internal workbook link
Note: link_location can be URL, email, or cell reference
CLEAN()
Text FunctionsRemoves non-printable characters from text
Syntax:
=CLEAN(text)
Examples:
=CLEAN(A1)
Remove non-printable chars from A1
=CLEAN(TRIM(A1))
Clean and trim text
=LEN(A1) - LEN(CLEAN(A1))
Count non-printable characters
Note: Removes ASCII characters 0-31 (except line feed)
TEXTSPLIT()
Text FunctionsSplits text into array using delimiters
Syntax:
=TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])
Examples:
=TEXTSPLIT(A1, ",")
Split by comma into columns
=TEXTSPLIT(A1, " ", CHAR(10))
Split by space and line breaks
=TEXTSPLIT("apple,banana,,cherry", ",", , TRUE)
Split and ignore empty values
Note: Excel 365 Insider. Returns dynamic array. ignore_empty: TRUE skips empty results
TODAY()
Date & TimeReturns current date
Syntax:
=TODAY()
Examples:
=TODAY()
Current date (updates daily)
=TODAY()+7
Date 7 days from today
=TODAY()-30
Date 30 days ago
Note: Updates automatically when file is opened or calculated
NOW()
Date & TimeReturns current date and time
Syntax:
=NOW()
Examples:
=NOW()
Current date and time
=NOW()+1
Same time tomorrow
=INT(NOW())
Current date only (removes time)
Note: Updates automatically and includes time
DATE()
Date & TimeCreates a date from year, month, day
Syntax:
=DATE(year, month, day)
Examples:
=DATE(2024, 12, 25)
Create date for December 25, 2024
=DATE(A1, B1, C1)
Create date from cell values
=DATE(YEAR(TODAY()), 12, 31)
Last day of current year
Note: Year can be 1900-9999, month 1-12, day 1-31
YEAR()
Date & TimeExtracts year from a date
Syntax:
=YEAR(serial_number)
Examples:
=YEAR(TODAY())
Current year
=YEAR(A1)
Year from date in cell A1
=YEAR("12/25/2024")
Returns 2024
Note: Returns a 4-digit year (1900-9999)
MONTH()
Date & TimeExtracts month from a date
Syntax:
=MONTH(serial_number)
Examples:
=MONTH(TODAY())
Current month number
=MONTH(A1)
Month from date in cell A1
=MONTH("12/25/2024")
Returns 12
Note: Returns month as number (1-12)
DAY()
Date & TimeExtracts day from a date
Syntax:
=DAY(serial_number)
Examples:
=DAY(TODAY())
Current day of month
=DAY(A1)
Day from date in cell A1
=DAY("12/25/2024")
Returns 25
Note: Returns day of month (1-31)
TIME()
Date & TimeCreates a time from hour, minute, second
Syntax:
=TIME(hour, minute, second)
Examples:
=TIME(14, 30, 0)
Create time for 2:30 PM
=TIME(A1, B1, C1)
Create time from cell values
=TIME(12, 0, 0) + TIME(0, 30, 0)
Add 30 minutes to noon
Note: Hour 0-23, minute/second 0-59. Values over limits roll over
HOUR()
Date & TimeExtracts hour from a time
Syntax:
=HOUR(serial_number)
Examples:
=HOUR(NOW())
Current hour (0-23)
=HOUR(A1)
Hour from time in cell A1
=HOUR("2:30 PM")
Returns 14
Note: Returns hour in 24-hour format (0-23)
MINUTE()
Date & TimeExtracts minute from a time
Syntax:
=MINUTE(serial_number)
Examples:
=MINUTE(NOW())
Current minute (0-59)
=MINUTE(A1)
Minute from time in cell A1
=MINUTE("2:30 PM")
Returns 30
Note: Returns minute (0-59)
SECOND()
Date & TimeExtracts second from a time
Syntax:
=SECOND(serial_number)
Examples:
=SECOND(NOW())
Current second (0-59)
=SECOND(A1)
Second from time in cell A1
=SECOND("2:30:45 PM")
Returns 45
Note: Returns second (0-59)
DATEDIF()
Date & TimeCalculates difference between two dates
Syntax:
=DATEDIF(start_date, end_date, unit)
Examples:
=DATEDIF(A1, B1, "Y")
Years between dates
=DATEDIF(A1, B1, "M")
Months between dates
=DATEDIF(A1, B1, "D")
Days between dates
Note: Units: Y=years, M=months, D=days, MD=days ignoring months/years, YM=months ignoring years, YD=days ignoring years
YEARFRAC()
Date & TimeReturns fraction of year between two dates
Syntax:
=YEARFRAC(start_date, end_date, [basis])
Examples:
=YEARFRAC(A1, B1)
Fraction of year between dates
=YEARFRAC(DATE(2024,1,1), DATE(2024,7,1))
Returns 0.5 (half year)
=YEARFRAC(A1, B1, 1)
Using actual/actual basis
Note: Basis: 0=30/360, 1=actual/actual, 2=actual/360, 3=actual/365, 4=30/360 European
EDATE()
Date & TimeReturns date that is months before/after start date
Syntax:
=EDATE(start_date, months)
Examples:
=EDATE(TODAY(), 6)
Date 6 months from today
=EDATE(A1, -3)
Date 3 months before A1
=EDATE("1/15/2024", 12)
Same day next year
Note: Positive months = future, negative = past
EOMONTH()
Date & TimeReturns last day of month that is months before/after start date
Syntax:
=EOMONTH(start_date, months)
Examples:
=EOMONTH(TODAY(), 0)
Last day of current month
=EOMONTH(A1, 1)
Last day of next month from A1
=EOMONTH("1/15/2024", -1)
Last day of previous month
Note: Always returns last day of the target month
WORKDAY()
Date & TimeReturns workday date that is specified days from start date
Syntax:
=WORKDAY(start_date, days, [holidays])
Examples:
=WORKDAY(TODAY(), 10)
Date 10 workdays from today
=WORKDAY(A1, 5, C1:C10)
5 workdays from A1, excluding holidays
=WORKDAY("1/1/2024", -5)
5 workdays before Jan 1
Note: Excludes weekends (Saturday/Sunday) and optional holidays
WORKDAY.INTL()
Date & TimeReturns workday with custom weekend definition
Syntax:
=WORKDAY.INTL(start_date, days, [weekend], [holidays])
Examples:
=WORKDAY.INTL(TODAY(), 10, 1)
Standard weekend (Sat/Sun)
=WORKDAY.INTL(A1, 5, 7)
Weekend = Friday/Saturday
=WORKDAY.INTL(A1, 10, "0000011")
Custom weekend (Sat/Sun)
Note: Weekend: 1=Sat/Sun, 2=Sun/Mon, 7=Fri/Sat, or custom 7-char string
NETWORKDAYS()
Date & TimeReturns number of workdays between two dates
Syntax:
=NETWORKDAYS(start_date, end_date, [holidays])
Examples:
=NETWORKDAYS(A1, B1)
Workdays between two dates
=NETWORKDAYS("1/1/2024", "1/31/2024", C1:C5)
January workdays minus holidays
=NETWORKDAYS(TODAY(), TODAY()+30)
Workdays in next 30 days
Note: Excludes weekends and optional holidays from count
NETWORKDAYS.INTL()
Date & TimeReturns workdays between dates with custom weekend
Syntax:
=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
Examples:
=NETWORKDAYS.INTL(A1, B1, 1)
Standard weekend counting
=NETWORKDAYS.INTL(A1, B1, 7, C1:C5)
Fri/Sat weekend with holidays
=NETWORKDAYS.INTL(A1, B1, "0000011")
Custom weekend definition
Note: Same weekend options as WORKDAY.INTL
WEEKDAY()
Date & TimeReturns day of week as number
Syntax:
=WEEKDAY(serial_number, [return_type])
Examples:
=WEEKDAY(TODAY())
Day of week (1=Sun to 7=Sat)
=WEEKDAY(A1, 2)
Day of week (1=Mon to 7=Sun)
=WEEKDAY("12/25/2024", 1)
Christmas 2024 day of week
Note: Return_type: 1=Sun-Sat (1-7), 2=Mon-Sun (1-7), 3=Mon-Sun (0-6)
WEEKNUM()
Date & TimeReturns week number of the year
Syntax:
=WEEKNUM(serial_number, [return_type])
Examples:
=WEEKNUM(TODAY())
Current week number
=WEEKNUM(A1, 2)
Week number (Monday as week start)
=WEEKNUM("7/4/2024", 1)
Week number of July 4th
Note: Return_type: 1=Sun start (default), 2=Mon start, others available
IF()
Logical FunctionsReturns different values based on condition
Syntax:
=IF(logical_test, value_if_true, value_if_false)
Examples:
=IF(A1>100, "High", "Low")
Return text based on value
=IF(B1="", "Empty", B1)
Handle empty cells
=IF(A1>B1, A1, B1)
Return larger of two values
Note: Can be nested for multiple conditions
AND()
Logical FunctionsReturns TRUE if all conditions are true
Syntax:
=AND(logical1, [logical2], ...)
Examples:
=AND(A1>10, B1<100)
True if both conditions met
=AND(A1="Yes", B1="Yes")
True if both cells are 'Yes'
=IF(AND(A1>0, B1>0), "Both Positive", "Not Both")
Use with IF function
Note: All arguments must be TRUE for result to be TRUE
OR()
Logical FunctionsReturns TRUE if any condition is true
Syntax:
=OR(logical1, [logical2], ...)
Examples:
=OR(A1>100, B1>100)
True if either condition met
=OR(A1="Red", A1="Blue")
True if cell is Red or Blue
=IF(OR(A1<0, B1<0), "Has Negative", "All Positive")
Use with IF function
Note: Only one argument needs to be TRUE for result to be TRUE
NOT()
Logical FunctionsReverses the logic of its argument
Syntax:
=NOT(logical)
Examples:
=NOT(A1>100)
True if A1 is NOT greater than 100
=NOT(A1="")
True if A1 is NOT empty
=IF(NOT(A1=""), A1, "No Data")
Use with IF for non-empty check
Note: Changes TRUE to FALSE and FALSE to TRUE
IFS()
Logical FunctionsTests multiple conditions and returns first TRUE result
Syntax:
=IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], ...)
Examples:
=IFS(A1>90, "A", A1>80, "B", A1>70, "C", TRUE, "F")
Grade based on score
=IFS(B1="Red", 1, B1="Blue", 2, B1="Green", 3, TRUE, 0)
Assign numbers to colors
=IFS(A1<0, "Negative", A1=0, "Zero", A1>0, "Positive")
Check number sign
Note: Available in Excel 2016 and later. Use TRUE as final condition for default value
VLOOKUP()
Lookup & ReferenceLooks up value in leftmost column and returns value from specified column
Syntax:
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
Examples:
=VLOOKUP(A1, B:D, 2, FALSE)
Exact match lookup in column B, return from column C
=VLOOKUP("Apple", A1:C10, 3, TRUE)
Approximate match lookup
=VLOOKUP(A1, Sheet2!B:E, 4, FALSE)
Lookup from another sheet
Note: Use FALSE for exact match, TRUE for approximate match
HLOOKUP()
Lookup & ReferenceLooks up value in top row and returns value from specified row
Syntax:
=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
Examples:
=HLOOKUP(A1, B1:F5, 3, FALSE)
Exact match in row 1, return from row 3
=HLOOKUP("Q1", A1:E10, 2, FALSE)
Find Q1 and return value from row 2
=HLOOKUP(A1, Sheet2!A1:Z5, 4, TRUE)
Approximate match from another sheet
Note: Horizontal version of VLOOKUP
INDEX()
Lookup & ReferenceReturns value at intersection of specified row and column
Syntax:
=INDEX(array, row_num, [column_num])
Examples:
=INDEX(A1:C10, 5, 2)
Value from row 5, column 2 of range
=INDEX(A:A, 10)
10th value in column A
=INDEX(A1:A10, MATCH("Apple", B1:B10, 0))
Use with MATCH for lookup
Note: Often combined with MATCH for flexible lookups
MATCH()
Lookup & ReferenceReturns position of value in array
Syntax:
=MATCH(lookup_value, lookup_array, [match_type])
Examples:
=MATCH("Apple", A1:A10, 0)
Find exact position of 'Apple'
=MATCH(100, B1:B10, 1)
Find largest value ≤ 100
=MATCH(A1, B:B, 0)
Find position of A1 value in column B
Note: 0=exact match, 1=largest ≤ value, -1=smallest ≥ value
XLOOKUP()
Lookup & ReferenceModern lookup function that replaces VLOOKUP and HLOOKUP
Syntax:
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
Examples:
=XLOOKUP(A1, B:B, C:C)
Basic lookup from B to C
=XLOOKUP(A1, B:B, C:C, "Not Found")
With custom error message
=XLOOKUP(A1, B:B, C:E)
Return multiple columns
Note: Available in Excel 365 and Excel 2021. More flexible than VLOOKUP
XMATCH()
Lookup & ReferenceEnhanced version of MATCH function
Syntax:
=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
Examples:
=XMATCH(A1, B:B)
Find exact position of A1 in column B
=XMATCH(A1, B:B, 1)
Find exact match or next smallest
=XMATCH(A1, B:B, 0, -1)
Search from last to first
Note: Available in Excel 365 and Excel 2021. More options than MATCH
LOOKUP()
Lookup & ReferenceLooks up value in vector or array
Syntax:
=LOOKUP(lookup_value, lookup_vector, [result_vector])
Examples:
=LOOKUP(A1, B:B, C:C)
Vector form lookup
=LOOKUP("z", A1:A10)
Find last value ≤ 'z'
=LOOKUP(9.99E+307, B:B)
Get last non-empty value in column
Note: Requires sorted data. Use VLOOKUP or XLOOKUP for more control
CHOOSE()
Lookup & ReferenceChooses value from list based on index number
Syntax:
=CHOOSE(index_num, value1, [value2], ...)
Examples:
=CHOOSE(A1, "Red", "Blue", "Green")
Return color based on number 1-3
=CHOOSE(WEEKDAY(TODAY()), "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")
Day name from today's date
=CHOOSE(A1, B:B, C:C, D:D)
Choose column based on index
Note: Index starts at 1. Returns error if index is out of range
OFFSET()
Lookup & ReferenceReturns reference offset from starting reference
Syntax:
=OFFSET(reference, rows, cols, [height], [width])
Examples:
=OFFSET(A1, 2, 3)
Reference 2 rows down, 3 columns right from A1
=SUM(OFFSET(A1, 0, 0, 5, 1))
Sum 5 cells starting from A1
=OFFSET(A1, 0, 0, COUNTA(A:A), 1)
Dynamic range from A1 to last data
Note: Creates dynamic references. Often used with named ranges
INDIRECT()
Lookup & ReferenceReturns reference specified by text string
Syntax:
=INDIRECT(ref_text, [a1])
Examples:
=INDIRECT("A1")
Reference to cell A1
=INDIRECT("Sheet2!A1")
Reference to A1 on Sheet2
=INDIRECT(A1&"1")
Dynamic reference using cell value
Note: Reference updates when text changes. Can reference other sheets
ADDRESS()
Lookup & ReferenceReturns address of cell as text
Syntax:
=ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text])
Examples:
=ADDRESS(1, 1)
Returns '$A$1'
=ADDRESS(5, 3, 4)
Returns 'C5' (relative reference)
=ADDRESS(ROW(), COLUMN())
Current cell address
Note: abs_num: 1=absolute, 2=abs row/rel col, 3=rel row/abs col, 4=relative
ROW()
Lookup & ReferenceReturns row number of reference
Syntax:
=ROW([reference])
Examples:
=ROW()
Current row number
=ROW(A5)
Returns 5
=ROW(A1:A10)
Array of row numbers 1-10
Note: Without reference, returns row number of cell containing formula
ROWS()
Lookup & ReferenceReturns number of rows in reference
Syntax:
=ROWS(array)
Examples:
=ROWS(A1:A10)
Returns 10
=ROWS(A1:C5)
Returns 5
=ROWS(A:A)
Returns 1048576 (max rows)
Note: Counts total rows in the reference range
COLUMN()
Lookup & ReferenceReturns column number of reference
Syntax:
=COLUMN([reference])
Examples:
=COLUMN()
Current column number
=COLUMN(C1)
Returns 3 (C is 3rd column)
=COLUMN(A1:E1)
Array of column numbers 1-5
Note: Without reference, returns column number of cell containing formula
COLUMNS()
Lookup & ReferenceReturns number of columns in reference
Syntax:
=COLUMNS(array)
Examples:
=COLUMNS(A1:E1)
Returns 5
=COLUMNS(A1:C10)
Returns 3
=COLUMNS(1:1)
Returns 16384 (max columns)
Note: Counts total columns in the reference range
TRANSPOSE()
Lookup & ReferenceTransposes rows and columns of array
Syntax:
=TRANSPOSE(array)
Examples:
=TRANSPOSE(A1:C1)
Convert row to column
=TRANSPOSE(A1:A5)
Convert column to row
=TRANSPOSE(A1:C3)
Flip 3x3 array
Note: Enter as array formula in older Excel versions
FORMULATEXT()
Lookup & ReferenceReturns formula in a cell as text
Syntax:
=FORMULATEXT(reference)
Examples:
=FORMULATEXT(A1)
Shows formula in A1 as text
=FORMULATEXT(SUM(B1:B10))
Returns error (not a reference)
=IF(FORMULATEXT(A1)="", A1, FORMULATEXT(A1))
Show value or formula
Note: Returns #N/A if cell doesn't contain formula. Available in Excel 2013+
PV()
Financial FunctionsCalculates present value of investment
Syntax:
=PV(rate, nper, pmt, [fv], [type])
Examples:
=PV(5%/12, 60, -500)
Present value of $500/month for 5 years at 5%
=PV(0.08, 10, -1000, 0, 0)
PV of $1000 payments for 10 years at 8%
=PV(A1/12, B1*12, -C1)
Using cell references
Note: Payments are negative, receipts are positive
FV()
Financial FunctionsCalculates future value of investment
Syntax:
=FV(rate, nper, pmt, [pv], [type])
Examples:
=FV(5%/12, 60, -500)
Future value of $500/month for 5 years at 5%
=FV(0.08, 10, -1000, 0, 0)
FV of $1000 payments for 10 years at 8%
=FV(A1/12, B1*12, -C1, -D1)
FV with present value included
Note: Use for calculating investment growth
PMT()
Financial FunctionsCalculates payment for loan or investment
Syntax:
=PMT(rate, nper, pv, [fv], [type])
Examples:
=PMT(5%/12, 60, 20000)
Monthly payment for $20,000 loan at 5% for 5 years
=PMT(0.08/12, 30*12, 300000)
Monthly mortgage payment
=PMT(A1/12, B1*12, C1)
Using cell references for loan calculation
Note: Result is negative (payment going out)
MEDIAN()
Statistical FunctionsReturns the middle value in a dataset
Syntax:
=MEDIAN(number1, [number2], ...)
Examples:
=MEDIAN(A1:A10)
Middle value of range A1:A10
=MEDIAN(1, 2, 3, 4, 5)
Returns 3 (middle value)
=MEDIAN(A:A)
Median of entire column A
Note: For even number of values, returns average of two middle values
MODE()
Statistical FunctionsReturns the most frequently occurring value
Syntax:
=MODE(number1, [number2], ...)
Examples:
=MODE(A1:A10)
Most common value in range
=MODE(1, 2, 2, 3, 4)
Returns 2 (appears twice)
=MODE.SNGL(A1:A10)
Single mode (newer Excel versions)
Note: Returns error if no value appears more than once
STDEV()
Statistical FunctionsCalculates standard deviation of sample
Syntax:
=STDEV(number1, [number2], ...)
Examples:
=STDEV(A1:A10)
Standard deviation of sample data
=STDEV.S(A1:A10)
Sample standard deviation (newer versions)
=STDEV.P(A1:A10)
Population standard deviation
Note: STDEV assumes sample data, use STDEV.P for population
MODE.SNGL()
Statistical FunctionsReturns the most frequently occurring single value
Syntax:
=MODE.SNGL(number1, [number2], ...)
Examples:
=MODE.SNGL(A1:A10)
Most common single value in range
=MODE.SNGL(1, 2, 2, 3, 4)
Returns 2 (appears twice)
=MODE.SNGL(1, 1, 2, 2, 3)
Returns first mode found (1)
Note: Replaces MODE function in Excel 2010+. Returns error if no duplicate values
MODE.MULT()
Statistical FunctionsReturns vertical array of most frequently occurring values
Syntax:
=MODE.MULT(array)
Examples:
=MODE.MULT(A1:A10)
All most frequently occurring values
=MODE.MULT({1,1,2,2,3,4})
Returns array with 1 and 2
=INDEX(MODE.MULT(A1:A10), 1)
Get first mode from array
Note: Returns array formula. Available in Excel 2010+. Use Ctrl+Shift+Enter in older versions
RANK()
Statistical FunctionsReturns rank of number in list (compatibility function)
Syntax:
=RANK(number, ref, [order])
Examples:
=RANK(A1, A$1:A$10)
Rank A1 in descending order
=RANK(A1, A$1:A$10, 1)
Rank A1 in ascending order
=RANK(95, {90,85,95,88,92})
Rank 95 in array
Note: Use RANK.EQ or RANK.AVG in newer Excel versions for better functionality
RANK.EQ()
Statistical FunctionsReturns rank of number, with ties getting same rank
Syntax:
=RANK.EQ(number, ref, [order])
Examples:
=RANK.EQ(A1, A$1:A$10)
Rank with tied values getting same rank
=RANK.EQ(A1, A$1:A$10, 1)
Ascending order ranking
=RANK.EQ(90, {95,90,90,85})
Returns 2 for both 90s
Note: Ties receive the same rank, next rank is skipped
RANK.AVG()
Statistical FunctionsReturns average rank for tied values
Syntax:
=RANK.AVG(number, ref, [order])
Examples:
=RANK.AVG(A1, A$1:A$10)
Average rank for tied values
=RANK.AVG(A1, A$1:A$10, 1)
Ascending order with average ranking
=RANK.AVG(90, {95,90,90,85})
Returns 2.5 for both 90s
Note: Tied values get average of ranks they would occupy
ISBLANK()
Information FunctionsTests if cell is empty
Syntax:
=ISBLANK(value)
Examples:
=ISBLANK(A1)
TRUE if A1 is empty
=IF(ISBLANK(A1), "Empty", A1)
Display 'Empty' if cell is blank
=COUNTIF(A1:A10, ISBLANK(A1:A10))
Count blank cells in range
Note: Returns TRUE only for truly empty cells
ISNUMBER()
Information FunctionsTests if value is a number
Syntax:
=ISNUMBER(value)
Examples:
=ISNUMBER(A1)
TRUE if A1 contains a number
=IF(ISNUMBER(A1), A1*2, "Not a number")
Multiply by 2 if number
=SUMPRODUCT(--(ISNUMBER(A1:A10)))
Count numeric cells
Note: Dates are considered numbers in Excel
ISTEXT()
Information FunctionsTests if value is text
Syntax:
=ISTEXT(value)
Examples:
=ISTEXT(A1)
TRUE if A1 contains text
=IF(ISTEXT(A1), UPPER(A1), A1)
Convert to uppercase if text
=COUNTIF(A1:A10, ISTEXT(A1:A10))
Count text cells
Note: Returns FALSE for numbers, dates, and blank cells
ISERROR()
Information FunctionsTests if value is an error
Syntax:
=ISERROR(value)
Examples:
=ISERROR(A1/B1)
TRUE if division results in error
=IF(ISERROR(VLOOKUP(A1, B:C, 2, FALSE)), "Not Found", VLOOKUP(A1, B:C, 2, FALSE))
Handle VLOOKUP errors
=IFERROR(A1/B1, "Division Error")
Simpler error handling
Note: Use IFERROR() for simpler error handling
ISNA()
Information FunctionsTests if value is #N/A error
Syntax:
=ISNA(value)
Examples:
=ISNA(VLOOKUP(A1, B:C, 2, FALSE))
TRUE if VLOOKUP returns #N/A
=IF(ISNA(MATCH(A1, B:B, 0)), "Not Found", "Found")
Handle MATCH #N/A errors
=IFNA(VLOOKUP(A1, B:C, 2, FALSE), "Not Found")
Simpler #N/A handling
Note: Specifically tests for #N/A error. Use IFNA() for simpler handling
INFO()
Information FunctionsReturns information about operating environment
Syntax:
=INFO(type_text)
Examples:
=INFO("version")
Excel version information
=INFO("system")
Operating system type
=INFO("directory")
Current directory path
Note: Types: version, system, osversion, directory, numfile, origin, memavail, memused, totmem
CELL()
Information FunctionsReturns information about cell formatting or location
Syntax:
=CELL(info_type, [reference])
Examples:
=CELL("address", A1)
Returns cell address as text
=CELL("contents", A1)
Returns cell contents
=CELL("format", A1)
Returns format code of cell
Note: Info types: address, col, color, contents, filename, format, parentheses, prefix, protect, row, type, width
TYPE()
Information FunctionsReturns data type of value
Syntax:
=TYPE(value)
Examples:
=TYPE(A1)
Data type of cell A1
=TYPE(123)
Returns 1 (number)
=TYPE("Hello")
Returns 2 (text)
Note: Returns: 1=number, 2=text, 4=logical, 16=error, 64=array
FILTER()
Dynamic Array FunctionsFilters array based on criteria
Syntax:
=FILTER(array, include, [if_empty])
Examples:
=FILTER(A1:C10, B1:B10>100)
Filter rows where column B > 100
=FILTER(A1:A10, A1:A10<>"", "No Data")
Filter non-empty cells
=FILTER(A1:C10, (B1:B10="Apple")*(C1:C10>50))
Multiple criteria filter
Note: Excel 365 and Excel 2021. Returns dynamic array that spills
SORT()
Dynamic Array FunctionsSorts array by one or more columns
Syntax:
=SORT(array, [sort_index], [sort_order], [by_col])
Examples:
=SORT(A1:C10)
Sort by first column ascending
=SORT(A1:C10, 2, -1)
Sort by column 2 descending
=SORT(A1:C10, {1,2}, {1,-1})
Sort by column 1 asc, then column 2 desc
Note: Excel 365 and Excel 2021. sort_order: 1=ascending, -1=descending
UNIQUE()
Dynamic Array FunctionsReturns unique values from array
Syntax:
=UNIQUE(array, [by_col], [exactly_once])
Examples:
=UNIQUE(A1:A10)
Unique values from column
=UNIQUE(A1:C10, FALSE, TRUE)
Values that appear exactly once
=UNIQUE(A1:C10, TRUE)
Unique rows (by column)
Note: Excel 365 and Excel 2021. by_col: TRUE=compare rows, FALSE=compare by row
SEQUENCE()
Dynamic Array FunctionsGenerates sequence of numbers
Syntax:
=SEQUENCE(rows, [columns], [start], [step])
Examples:
=SEQUENCE(10)
Numbers 1 to 10 in column
=SEQUENCE(5, 3, 0, 2)
5x3 array starting at 0, step by 2
=SEQUENCE(1, 12, DATE(2024,1,1), 1)
Monthly dates for 2024
Note: Excel 365 and Excel 2021. Great for creating number series
RANDARRAY()
Dynamic Array FunctionsGenerates array of random numbers
Syntax:
=RANDARRAY([rows], [columns], [min], [max], [whole_number])
Examples:
=RANDARRAY(5, 3)
5x3 array of random decimals 0-1
=RANDARRAY(10, 1, 1, 100, TRUE)
10 random integers 1-100
=RANDARRAY(3, 3, -1, 1, FALSE)
3x3 array of decimals -1 to 1
Note: Excel 365 and Excel 2021. whole_number: TRUE=integers, FALSE=decimals
SORTBY()
Dynamic Array FunctionsSorts array based on corresponding values in other arrays
Syntax:
=SORTBY(array, by_array1, [sort_order1], [by_array2], [sort_order2], ...)
Examples:
=SORTBY(A1:A10, B1:B10)
Sort A1:A10 by values in B1:B10
=SORTBY(A1:C10, B1:B10, -1)
Sort rows by column B descending
=SORTBY(A1:C10, B1:B10, 1, C1:C10, -1)
Sort by B ascending, then C descending
Note: Excel 365 and Excel 2021. More flexible than SORT function
TAKE()
Dynamic Array FunctionsTakes specified number of rows/columns from array
Syntax:
=TAKE(array, rows, [columns])
Examples:
=TAKE(A1:C10, 5)
Take first 5 rows
=TAKE(A1:C10, -3)
Take last 3 rows
=TAKE(A1:C10, 5, 2)
Take first 5 rows and 2 columns
Note: Excel 365 Insider. Negative numbers take from end
DROP()
Dynamic Array FunctionsDrops specified number of rows/columns from array
Syntax:
=DROP(array, rows, [columns])
Examples:
=DROP(A1:C10, 2)
Drop first 2 rows
=DROP(A1:C10, -1)
Drop last row
=DROP(A1:C10, 1, 1)
Drop first row and first column
Note: Excel 365 Insider. Negative numbers drop from end
SINGLE()
Dynamic Array FunctionsReturns single value from array with error checking
Syntax:
=SINGLE(array)
Examples:
=SINGLE(FILTER(A1:A10, A1:A10="Apple"))
Get single filtered result
=SINGLE(UNIQUE(A1:A10))
Error if more than one unique value
=SINGLE(B5)
Returns B5 value (identity function)
Note: Excel 365 Insider. Returns error if array has more than one value
SWITCH()
Advanced FunctionsEvaluates expression against list of values and returns result
Syntax:
=SWITCH(expression, value1, result1, [value2, result2], ..., [default])
Examples:
=SWITCH(A1, 1, "One", 2, "Two", 3, "Three", "Other")
Convert numbers to words
=SWITCH(WEEKDAY(TODAY()), 1, "Sunday", 7, "Saturday", "Weekday")
Check if weekend
=SWITCH(LEFT(A1,1), "A", "Apple", "B", "Banana", "Unknown")
Based on first letter
Note: Available in Excel 2016+. Cleaner alternative to nested IF statements
LAMBDA()
Advanced FunctionsCreates custom functions using Excel formulas
Syntax:
=LAMBDA([parameter1], [parameter2], ..., calculation)
Examples:
=LAMBDA(x, x^2)(5)
Square function: returns 25
=LAMBDA(x,y, x*y+10)(3,4)
Custom calculation: returns 22
=MAP(A1:A10, LAMBDA(x, x*2))
Double each value in range
Note: Excel 365 Insider. Create reusable custom functions. Often used with MAP, SCAN, etc.
Master Excel formulas with practice and repetition. Bookmark this page for quick reference!