Comprehensive List of Excel Formulas
1. Text Formulas
● CONCAT: =CONCAT(text1, text2, ...)
Combines text from multiple cells.
Example: =CONCAT("Hello", " ", "World") returns "Hello World".
● TEXT: =TEXT(value, format_text)
Formats a number and converts it to text.
Example: =TEXT(1234.56, "$#,##0.00") returns "$1,234.56".
● LEFT: =LEFT(text, num_chars)
Returns the specified number of characters from the start of a string.
Example: =LEFT("Excel", 2) returns "Ex".
● RIGHT: =RIGHT(text, num_chars)
Returns the specified number of characters from the end of a string.
Example: =RIGHT("Excel", 2) returns "el".
● MID: =MID(text, start_num, num_chars)
Extracts a substring starting at a specified position.
Example: =MID("Excel", 2, 3) returns "xce".
● LEN: =LEN(text)
Returns the length of a string.
Example: =LEN("Excel") returns 5.
● TRIM: =TRIM(text)
Removes all extra spaces from text except for single spaces between words.
Example: =TRIM(" Hello World ") returns "Hello World".
● UPPER: =UPPER(text)
Converts text to uppercase.
Example: =UPPER("excel") returns "EXCEL".
● LOWER: =LOWER(text)
Converts text to lowercase.
Example: =LOWER("EXCEL") returns "excel".
● PROPER: =PROPER(text)
Capitalizes the first letter of each word.
Example: =PROPER("hello world") returns "Hello World".
● SUBSTITUTE: =SUBSTITUTE(text, old_text, new_text, [instance_num])
Replaces text in a string.
Example: =SUBSTITUTE("Good Morning", "Morning", "Evening")
returns "Good Evening".
● REPT: =REPT(text, number_times)
Repeats text a specified number of times.
Example: =REPT("-", 5) returns "-----".
● FIND: =FIND(find_text, within_text, [start_num])
Finds the position of a substring within a text string (case-sensitive).
Example: =FIND("c", "Excel") returns 3.
● SEARCH: =SEARCH(find_text, within_text, [start_num])
Finds the position of a substring within a text string (not case-sensitive).
Example: =SEARCH("C", "Excel") returns 3.
● TEXTJOIN: =TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
Combines text from multiple ranges with a specified delimiter.
Example: =TEXTJOIN(", ", TRUE, "Apple", "Banana", "Cherry") returns
"Apple, Banana, Cherry".
● EXACT: =EXACT(text1, text2)
Checks if two strings are exactly the same (case-sensitive).
Example: =EXACT("Excel", "excel") returns FALSE.
● VALUE: =VALUE(text)
Converts text that appears as a number into an actual number.
Example: =VALUE("123") returns 123.
● CHAR: =CHAR(number)
Returns the character specified by a number.
Example: =CHAR(65) returns "A".
● CODE: =CODE(text)
Returns the numeric code of the first character in a string.
Example: =CODE("A") returns 65.
● CLEAN: =CLEAN(text)
Removes all non-printable characters from text.
Example: =CLEAN("Hello") returns "Hello".
2. Lookup & Reference Formulas
● VLOOKUP: =VLOOKUP(lookup_value, table_array, col_index_num,
[range_lookup])
Looks up a value in a vertical table.
Example: =VLOOKUP(101, A2:C10, 2, FALSE) looks for 101 in the first
column and returns the value from the second column in the same row.
● HLOOKUP: =HLOOKUP(lookup_value, table_array, row_index_num,
[range_lookup])
Looks up a value in a horizontal table.
Example: =HLOOKUP("Q1", A1:D2, 2, TRUE) looks for "Q1" in the first
row and returns the value from the second row in the same column.
● INDEX: =INDEX(array, row_num, [column_num])
Returns the value of a cell in a table based on row and column numbers.
Example: =INDEX(A1:C10, 2, 3) returns the value from the second row
and third column of the range A1:C10.
● MATCH: =MATCH(lookup_value, lookup_array, [match_type])
Returns the relative position of a value in a range.
Example: =MATCH(50, A1:A10, 0) looks for the value 50 in the range
A1:A10 and returns its position.
● INDEX-MATCH Combination: Combines INDEX and MATCH for more
flexible lookups.
Syntax: =INDEX(return_range, MATCH(lookup_value, lookup_range,
match_type))
Example: =INDEX(B2:B10, MATCH(101, A2:A10, 0)) looks for 101 in
A2:A10 and returns the corresponding value from B2:B10.
● XLOOKUP: =XLOOKUP(lookup_value, lookup_array, return_array,
[if_not_found], [match_mode], [search_mode])
Looks for a value and returns the corresponding value in another array.
Example: =XLOOKUP("John", A2:A10, B2:B10, "Not Found") returns the
corresponding value from B2:B10 where A2:A10 equals "John".
● CHOOSE: =CHOOSE(index_num, value1, value2, ...)
Returns a value from a list based on the index number.
Example: =CHOOSE(2, "Red", "Blue", "Green") returns "Blue".
● OFFSET: =OFFSET(reference, rows, cols, [height], [width])
Returns a reference to a range that is a specified number of rows and
columns from a starting cell.
Example: =OFFSET(A1, 2, 1) returns the value in the cell two rows down
and one column to the right of A1.
● LOOKUP: =LOOKUP(lookup_value, lookup_vector, [result_vector])
Looks up a value either from a one-row or one-column range.
Example: =LOOKUP(4, A1:A10, B1:B10) finds the largest value less than
or equal to 4 in A1:A10 and returns the corresponding value from B1:B10.
● FORMULATEXT: =FORMULATEXT(reference)
Returns the formula as text from a referenced cell.
Example: =FORMULATEXT(A1) returns the formula in cell A1 as a text
string.
● GETPIVOTDATA: =GETPIVOTDATA(data_field, pivot_table, [field1,
item1, field2, item2], ...)
Extracts data from a pivot table.
Example: =GETPIVOTDATA("Sales", A3, "Region", "East") retrieves the
sales data for the East region from the pivot table starting at cell A3.
● TRANSPOSE: =TRANSPOSE(array)
Converts rows to columns and vice versa.
Example: =TRANSPOSE(A1:C3) converts the rows in A1:C3 into columns.
3. Math & Statistical Formulas
● SUM: =SUM(number1, [number2], ...)
Adds values together.
Example: =SUM(A1:A10) returns the sum of values in the range A1:A10.
● SUMIF: =SUMIF(range, criteria, [sum_range])
Adds the values in a range that meet a single condition.
Example: =SUMIF(A1:A10, ">10", B1:B10) sums values in B1:B10 where
corresponding values in A1:A10 are greater than 10.
● SUMIFS: =SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2,
criteria2], ...)
Adds the values in a range that meet multiple conditions.
Example: =SUMIFS(B1:B10, A1:A10, ">10", C1:C10, "<20") sums values
in B1:B10 where A1:A10 > 10 and C1:C10 < 20.
● AVERAGE: =AVERAGE(number1, [number2], ...)
Returns the average of the numbers.
Example: =AVERAGE(A1:A10) returns the average of the values in the
range A1:A10.
● AVERAGEIF: =AVERAGEIF(range, criteria, [average_range])
Returns the average of values that meet a single condition.
Example: =AVERAGEIF(A1:A10, ">10", B1:B10) averages values in
B1:B10 where corresponding values in A1:A10 are greater than 10.
● AVERAGEIFS: =AVERAGEIFS(average_range, criteria_range1, criteria1,
[criteria_range2, criteria2], ...)
Returns the average of values that meet multiple conditions.
Example: =AVERAGEIFS(B1:B10, A1:A10, ">10", C1:C10, "<20")
averages values in B1:B10 where A1:A10 > 10 and C1:C10 < 20.
● COUNT: =COUNT(value1, [value2], ...)
Counts numeric values.
Example: =COUNT(A1:A10) returns the count of numeric values in the
range A1:A10.
● COUNTA: =COUNTA(value1, [value2], ...)
Counts non-empty cells.
Example: =COUNTA(A1:A10) returns the count of non-empty cells in the
range A1:A10.
● COUNTIF: =COUNTIF(range, criteria)
Counts the number of cells that meet a single condition.
Example: =COUNTIF(A1:A10, ">10") counts cells in A1:A10 with values
greater than 10.
● COUNTIFS: =COUNTIFS(criteria_range1, criteria1, [criteria_range2,
criteria2], ...)
Counts the number of cells that meet multiple conditions.
Example: =COUNTIFS(A1:A10, ">10", B1:B10, "<20") counts cells where
A1:A10 > 10 and B1:B10 < 20.
● IF: =IF(logical_test, value_if_true, value_if_false)
Returns a value based on a condition.
Example: =IF(A1>10, "Yes", "No") returns "Yes" if A1 > 10, otherwise
"No".
● ROUND: =ROUND(number, num_digits)
Rounds a number to a specified number of digits.
Example: =ROUND(123.456, 2) returns 123.46.
● ROUNDUP: =ROUNDUP(number, num_digits)
Rounds a number up.
Example: =ROUNDUP(123.456, 2) returns 123.46.
● ROUNDDOWN: =ROUNDDOWN(number, num_digits)
Rounds a number down.
Example: =ROUNDDOWN(123.456, 2) returns 123.45.
● RANK: =RANK(number, ref, [order])
Returns the rank of a number in a list.
Example: =RANK(50, A1:A10, 0) returns the rank of 50 in the range
A1:A10 in descending order.
● MEDIAN: =MEDIAN(number1, [number2], ...)
Returns the median of the numbers.
Example: =MEDIAN(A1:A10) returns the median of the values in the range
A1:A10.
● MODE: =MODE(number1, [number2], ...)
Returns the most frequent value.
Example: =MODE(A1:A10) returns the most frequent value in the range
A1:A10.
● LARGE: =LARGE(array, k)
Returns the k-th largest value.
Example: =LARGE(A1:A10, 2) returns the second largest value in the
range A1:A10.
● SMALL: =SMALL(array, k)
Returns the k-th smallest value.
Example: =SMALL(A1:A10, 2) returns the second smallest value in the
range A1:A10.
4. Logical Formulas
● AND: =AND(logical1, [logical2], ...)
Returns TRUE if all arguments are TRUE.
Example: =AND(A1>10, B1<5) returns TRUE if A1 > 10 and B1 < 5.
● OR: =OR(logical1, [logical2], ...)
Returns TRUE if any argument is TRUE.
Example: =OR(A1>10, B1<5) returns TRUE if either A1 > 10 or B1 < 5.
● NOT: =NOT(logical)
Reverses the logic of its argument.
Example: =NOT(A1>10) returns TRUE if A1 is not greater than 10.
● IF: =IF(logical_test, value_if_true, value_if_false)
Returns a value based on a condition.
Example: =IF(A1>10, "Yes", "No") returns "Yes" if A1 > 10, otherwise
"No".
● IFERROR: =IFERROR(value, value_if_error)
Returns a value if an error occurs.
Example: =IFERROR(A1/B1, "Error") returns "Error" if B1 is 0 or empty.
● IFNA: =IFNA(value, value_if_na)
Returns a specified value if the formula evaluates to #N/A.
Example: =IFNA(VLOOKUP(101, A1:B10, 2, FALSE), "Not Found")
returns "Not Found" if VLOOKUP results in #N/A.
5. Date & Time Formulas
● TODAY: =TODAY()
Returns the current date.
Example: =TODAY() returns the current system date.
● NOW: =NOW()
Returns the current date and time.
Example: =NOW() returns the current system date and time.
● DATE: =DATE(year, month, day)
Returns a date from the specified components.
Example: =DATE(2025, 1, 13) returns January 13, 2025.
● DAY: =DAY(serial_number)
Returns the day of a date.
Example: =DAY(TODAY()) returns the day of the current date.
● MONTH: =MONTH(serial_number)
Returns the month of a date.
Example: =MONTH(TODAY()) returns the current month.
● YEAR: =YEAR(serial_number)
Returns the year of a date.
Example: =YEAR(TODAY()) returns the current year.
● HOUR: =HOUR(serial_number)
Returns the hour of a time.
Example: =HOUR(NOW()) returns the current hour.
● MINUTE: =MINUTE(serial_number)
Returns the minute of a time.
Example: =MINUTE(NOW()) returns the current minute.
● SECOND: =SECOND(serial_number)
Returns the second of a time.
Example: =SECOND(NOW()) returns the current second.
● WEEKDAY: =WEEKDAY(serial_number, [return_type])
Returns the day of the week.
Example: =WEEKDAY(TODAY(), 1) returns 1 for Sunday, 2 for Monday,
and so on.
6. Financial Formulas
● PMT: =PMT(rate, nper, pv, [fv], [type])
Calculates the payment for a loan.
Example: =PMT(5%/12, 60, -30000) returns the monthly payment for a
loan of $30,000 over 60 months at a 5% annual interest rate.
● FV: =FV(rate, nper, pmt, [pv], [type])
Calculates the future value of an investment.
Example: =FV(5%/12, 60, -500) returns the future value of 60 monthly
payments of $500 at a 5% annual interest rate.
● PV: =PV(rate, nper, pmt, [fv], [type])
Returns the present value of an investment.
Example: =PV(5%/12, 60, -500) returns the present value of 60 monthly
payments of $500 at a 5% annual interest rate.
● NPV: =NPV(rate, value1, [value2], ...)
Calculates the net present value of an investment.
Example: =NPV(10%, -1000, 500, 600, 700) calculates the NPV of cash
flows with a 10% discount rate.
● RATE: =RATE(nper, pmt, pv, [fv], [type], [guess])
Calculates the interest rate per period.
Example: =RATE(60, -500, -30000) calculates the monthly interest rate for
a loan of $30,000 with 60 monthly payments of $500.
7. Array Formulas
● TRANSPOSE: =TRANSPOSE(array)
Converts rows to columns and vice versa.
Example: =TRANSPOSE(A1:C3) converts the rows in A1:C3 into columns.
● UNIQUE: =UNIQUE(array, [by_col], [exactly_once])
Returns a list of unique values.
Example: =UNIQUE(A1:A10) returns the unique values from the range
A1:A10.
● FILTER: =FILTER(array, include, [if_empty])
Filters a range based on criteria.
Example: =FILTER(A1:A10, B1:B10>50) returns values in A1:A10 where
the corresponding value in B1:B10 is greater than 50.
● SORT: =SORT(array, [sort_index], [sort_order], [by_col])
Sorts a range.
Example: =SORT(A1:A10, 1, 1) sorts the range A1:A10 in ascending order.
8. Error Handling Formulas
● ISBLANK: =ISBLANK(value)
Checks if a cell is empty.
Example: =ISBLANK(A1) returns TRUE if A1 is empty.
● ERROR.TYPE: =ERROR.TYPE(error_val)
Returns a number corresponding to an error type.
Example: =ERROR.TYPE(A1) returns a number if A1 contains an error.
● IFERROR: =IFERROR(value, value_if_error)
Returns a value if an error occurs.
Example: =IFERROR(A1/B1, "Error") returns "Error" if B1 is 0 or empty.
● IFNA: =IFNA(value, value_if_na)
Returns a specified value if the formula evaluates to #N/A.
Example: =IFNA(VLOOKUP(101, A1:B10, 2, FALSE), "Not Found")
returns "Not Found" if VLOOKUP results in #N/A.