🚀 Excel is the easy part. We'll help you turn it into a Data Science career — 100% Job Assurance. Explore the Program →
505 Formulas · 14 Categories · 15 Live Calculators

Excel Formulas & Functions: The Complete Interactive Reference Guide

Search the full Excel formula list, understand the syntax of every function, and try 15 of the most-used formulas live — type your own numbers and see the real result, instantly, right on this page.

Try “lookup”, “text”, “date”, or a formula name like “XLOOKUP”.

505Excel formulas indexed
15Live, editable calculators
14Function categories

What Is an Excel Formula?

An Excel formula is an expression that starts with an equals sign (=) and performs a calculation, comparison, or lookup on values in a worksheet — for example =A1+A2 or =SUM(A1:A10). A function is a named, pre-built formula such as VLOOKUP, IF, or SUMIFS that you call with specific arguments to automate a calculation without writing the logic yourself.

This guide indexes all 505 Excel functions Microsoft documents, organised into 14 categories, with real syntax, descriptions, and worked examples sourced directly from how each function behaves in Excel.

Most Commonly Used Excel Formulas

Beginners and professionals reach for the same core formulas again and again. Jump straight to a live calculator:


Jump to a Category

Try Excel Formulas Live — No Spreadsheet Needed

Edit the sample data or inputs on any card below and the result recalculates instantly, using the same logic Excel uses. No sign-up required for this section.

VLOOKUP

1 / 15 · try it live

Looks up a value in the first column of a table and returns a value from a column you choose in the same row.

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
Editable sample table (columns A:C)
Product (A)Price (B)Stock (C)
Result—

Example use case & notes

Use VLOOKUP to pull a related value — like a price or stock level — from a price list, employee directory, or product catalogue once you know the value in the first column.

Limitation: VLOOKUP can only look to the right of the lookup column, and approximate match (TRUE) requires column A sorted in ascending order. For lookups in any direction, use XLOOKUP or INDEX/MATCH below.

XLOOKUP

2 / 15 · try it live

The modern successor to VLOOKUP — finds a value anywhere in a range and returns a matching value, with built-in error handling.

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])
Editable sample table (columns A:B)
Employee ID (A)Employee Name (B)
Result—

Example use case & notes

Use XLOOKUP instead of VLOOKUP whenever you want cleaner syntax, left-lookups, or a friendly fallback message instead of an #N/A error.

Note: XLOOKUP can look left or right (unlike VLOOKUP), defaults to exact match, and lets you supply a custom fallback instead of #N/A. It's available in Excel 365 and Excel 2021+.

INDEX & MATCH

3 / 15 · try it live

MATCH finds the position of a value; INDEX returns the value at that position — together they replicate and outperform VLOOKUP.

=INDEX(return_range, MATCH(lookup_value, lookup_range, match_type))
Editable sample table (columns A:B)
Region (A)Sales (B)
Result—

Example use case & notes

Use INDEX/MATCH for large, frequently-restructured workbooks — for example, finance and analytics models where new columns get inserted often.

Why it beats VLOOKUP: INDEX/MATCH can look in any direction, doesn't break when columns are inserted, and is generally faster on large sheets.

IF

4 / 15 · try it live

Returns one value if a condition is TRUE and another if it's FALSE — the building block of decision-making in Excel.

=IF(logical_test, value_if_true, value_if_false)
Result—

Example use case & notes

Use IF for pass/fail marking, bonus eligibility, stock status ('In stock' / 'Reorder'), or any two-way business rule.

Tip: Nest multiple IFs (or use IFS) to test more than one condition, e.g. grading bands: =IF(A1>=90,"A",IF(A1>=75,"B","C")).

IFERROR

5 / 15 · try it live

Catches any formula error (like #DIV/0! or #N/A) and returns a friendlier fallback value instead.

=IFERROR(formula, value_if_error)
Result—

Example use case & notes

Wrap IFERROR around VLOOKUP, division, or any formula that might fail on missing or invalid data, so reports show a clean message instead of an error code.

Note: IFERROR suppresses all error types, which is convenient but can also hide genuine mistakes — use IFNA if you only want to catch #N/A from lookups.

SUMIF

6 / 15 · try it live

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

=SUMIF(range, criteria, [sum_range])
Editable sample table (columns A:B)
Category (A)Amount (B)
Result—

Example use case & notes

Use SUMIF to total expenses by category, sales by region, or hours by project — anywhere you need a conditional total.

Criteria formats supported here: exact text (Travel), comparisons (>1000, <=2000), and wildcards (Tr*).

SUMIFS

7 / 15 · try it live

Adds up values that meet multiple conditions at once (all conditions must be true).

=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Editable sample table (columns A:C)
Category (A)Region (B)Amount (C)
Result—

Example use case & notes

Use SUMIFS when a single condition (like SUMIF) isn't specific enough — for example, total Travel spend in the North region only.

Note: Unlike SUMIF, the sum_range is always the first argument in SUMIFS.

COUNTIF

8 / 15 · try it live

Counts how many cells in a range meet a single condition.

=COUNTIF(range, criteria)
Editable sample table (column B)
Student (A)Score (B)
Result—

Example use case & notes

Use COUNTIF to count students who scored above a cut-off, orders above a value, or how many times a status appears.

Tip: Combine with SUMIF/AVERAGEIF for full "how many, how much, what average" reporting from one table.

COUNTIFS

9 / 15 · try it live

Counts rows that meet multiple conditions at once.

=COUNTIFS(criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Editable sample table (columns A:B)
Department (A)Status (B)
Result—

Example use case & notes

Use COUNTIFS to count how many active employees are in a specific department, or how many orders are both 'Delayed' and from a specific region.

Note: All criteria ranges must be the same size/shape as the first.

AVERAGEIF

10 / 15 · try it live

Averages the values in a range that meet a single condition.

=AVERAGEIF(range, criteria, [average_range])
Editable sample table (columns A:B)
Product (A)Rating (B)
Result—

Example use case & notes

Use AVERAGEIF to find the average rating for one product, average score for one class, or average deal size for one sales rep.

Note: Returns #DIV/0! if no cells match — this demo shows a clear message instead.

CONCATENATE vs TEXTJOIN

11 / 15 · try it live

Both join text together — CONCATENATE simply glues values end-to-end; TEXTJOIN adds a delimiter between them and can skip blanks.

=CONCATENATE(text1,text2,...) vs. =TEXTJOIN(delimiter, ignore_empty, text1,text2,...)
CONCATENATE result—
TEXTJOIN result—

Example use case & notes

Use TEXTJOIN to build full names, addresses, or comma-separated tag lists from several cells in one clean formula.

Difference: CONCATENATE needs the delimiter typed between every argument; TEXTJOIN applies it automatically and can ignore empty cells — making it the better choice for joining ranges.

LEFT, RIGHT &amp; MID

12 / 15 · try it live

Extract characters from the start (LEFT), end (RIGHT), or middle (MID) of a text string.

=LEFT(text,[n]) =RIGHT(text,[n]) =MID(text,start_num,num_chars)
LEFT result—
RIGHT result—
MID result—

Example use case & notes

Use these to split codes like "INV-2026-045" into parts, or pull area codes, initials, and file extensions out of text.

Note: MID's start_num is 1-based (the first character is position 1, not 0).

ROUND, ROUNDUP &amp; ROUNDDOWN

13 / 15 · try it live

Round a number to a given number of digits — normally, always up, or always down (toward zero).

=ROUND(number,num_digits) =ROUNDUP(...) =ROUNDDOWN(...)
ROUND result—
ROUNDUP result—
ROUNDDOWN result—
Example use case & notes

Use ROUND for clean currency display, ROUNDUP for pricing/shipping that must never round down, and ROUNDDOWN for conservative budget estimates.

Tip: A negative num_digits rounds to the left of the decimal point, e.g. =ROUND(2456,-2) returns 2500.

DATEDIF

14 / 15 · try it live

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

=DATEDIF(start_date, end_date, unit)
Result—

Example use case & notes

Use DATEDIF for tenure calculations (years of service), age in years and months, or days remaining/elapsed for a project.

Limitation: DATEDIF is undocumented in Excel's formula picker (it still works when typed) and its "MD" unit has known rounding quirks near month-end dates — treat MD results as approximate.

TRIM, PROPER, UPPER &amp; LOWER

15 / 15 · try it live

Clean and standardise messy text: remove extra spaces (TRIM), title-case (PROPER), or force upper/lower case.

=TRIM(text) =PROPER(text) =UPPER(text) =LOWER(text)
TRIM result—
PROPER result—
UPPER result—
LOWER result—
Example use case & notes

Use these to clean data imported from other systems before running VLOOKUP or COUNTIF, since inconsistent spacing/casing causes silent mismatches.

Note: TRIM removes leading/trailing spaces and collapses repeated internal spaces to one — it does not remove non-breaking spaces pasted from the web (use SUBSTITUTE for those).

⚡ From Excel to Data Science

Master Excel — Then Build a Data Science Career With GenAI

The formulas above are exactly where analysts start. Imarticus Learning's Postgraduate Program in Data Science and Analytics with GenAI begins with an Excel, SQL & Power BI foundation, then takes you through Python, Machine Learning, Deep Learning and GenAI tools like ChatGPT, Copilot and RAG.

  • 100% Job Assurance program
  • 15,000+ Placements to date
  • 2,000+ Hiring partners
  • 10 Guaranteed interviews
  • 35+ Tools & hands-on projects
  • NSDC Certified, recognised by Skill India
Format6 mths weekdays / 10 mths weekends
FoundationExcel, SQL, Power BI
CorePython, ML, Deep Learning
GenAIChatGPT, Copilot, RAG, LLaMA
Highest package22.5 LPA

Unlock Every Excel Formula — Plus a Free Data Science Roadmap

Fill this in once to unlock the full 505-formula searchable database below, and get a free walkthrough from an Imarticus Learning program advisor on how these Excel skills carry into a Data Science & Analytics career.

By submitting, you agree to our privacy policy. No spam — just program details.

✓

Thanks — you're all set!

Our team already has your details. Keep exploring the formulas below, or chat with us on WhatsApp any time.

The Complete Excel Formula List (505 Functions)

Search or filter by category to find any Excel function, with its exact syntax, a plain-language description, and worked examples. Every card includes a one-click Copy Formula button.

No formulas matched your search. Try a different keyword or clear the category filter.

Lookup & Reference Functions in Excel (23)

When should I use a lookup and reference function? Functions that find and retrieve data from a range or table, such as VLOOKUP, XLOOKUP, INDEX and MATCH.

VLOOKUP

Lookup & Reference
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

Looks up a value in the first column of a range and returns a value in the same row.

  • =VLOOKUP("Banana",{"Apple",1;"Banana",2;"Cherry",3},2,FALSE)Returns 2, the value next to "Banana"
  • =VLOOKUP(102,{101,"Alice";102,"Bob";103,"Cara"},2,FALSE)Returns "Bob", matching ID 102
⚡ Try it live

HLOOKUP

Lookup & Reference
=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])

Looks up a value in the first row of a range and returns a value in the same column.

  • =HLOOKUP("Feb",{"Jan","Feb","Mar";100,200,300},2,FALSE)Returns 200, the value below "Feb"
  • =HLOOKUP("Mar",{"Jan","Feb","Mar";1,2,3},2,FALSE)Returns 3

XLOOKUP

Lookup & Reference
=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

Modern lookup that searches any column/row and returns from any other, in either direction.

  • =XLOOKUP("Banana",{"Apple";"Banana";"Cherry"},{1;2;3})Returns 2, matching "Banana"
  • =XLOOKUP("Grape",{"Apple";"Banana"},{1;2},"Not found")Returns "Not found", since "Grape" isn't in the list
⚡ Try it live

LOOKUP

Lookup & Reference
=LOOKUP(lookup_value, lookup_vector, [result_vector])

Simple lookup across a single sorted row or column.

  • =LOOKUP(2,{1,2,3},{"a","b","c"})Returns "b", matching the value 2
  • =LOOKUP("Banana",{"Apple","Banana","Cherry"},{1,2,3})Returns 2

INDEX

Lookup & Reference
=INDEX(array, row_num, [column_num])

Returns the value at a given row/column position within a range.

  • =INDEX({10,20,30},2)Returns 20, the 2nd item in the list
  • =INDEX({"a","b";"c","d"},2,1)Returns "c", row 2 column 1
⚡ Try it live

MATCH

Lookup & Reference
=MATCH(lookup_value, lookup_array, [match_type])

Returns the relative position of an item in a range.

  • =MATCH(30,{10,20,30,40},0)Returns 3, the position of 30 in the list
  • =MATCH("Cherry",{"Apple","Banana","Cherry"},0)Returns 3
⚡ Try it live

XMATCH

Lookup & Reference
=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])

Modern MATCH with flexible match and search modes.

  • =XMATCH(30,{10,20,30,40})Returns 3, the position of 30
  • =XMATCH("Cherry",{"Apple","Banana","Cherry"})Returns 3

CHOOSE

Lookup & Reference
=CHOOSE(index_num, value1, [value2], ...)

Returns a value from a list, chosen by position number.

  • =CHOOSE(2,"Red","Green","Blue")Returns "Green", the 2nd option
  • =CHOOSE(1,100,200,300)Returns 100

CHOOSECOLS

Lookup & Reference
=CHOOSECOLS(array, col_num1, [col_num2], ...)

Returns specified columns from an array.

  • =CHOOSECOLS({1,2,3;4,5,6},1)Returns the first column: 1 and 4
  • =CHOOSECOLS({1,2,3;4,5,6},3,1)Returns columns 3 and 1, reordered

CHOOSEROWS

Lookup & Reference
=CHOOSEROWS(array, row_num1, [row_num2], ...)

Returns specified rows from an array.

  • =CHOOSEROWS({1,2;3,4;5,6},1)Returns the first row: 1, 2
  • =CHOOSEROWS({1,2;3,4;5,6},2,1)Returns row 2 then row 1, reordered

OFFSET

Lookup & Reference
=OFFSET(reference, rows, cols, [height], [width])

Returns a reference offset from a starting cell by a number of rows/columns.

  • =OFFSET(A1,1,1)Returns the value one row down and one column right of A1
  • =OFFSET(A1,2,0)Returns the value 2 rows below A1, same column

INDIRECT

Lookup & Reference
=INDIRECT(ref_text, [a1])

Returns the reference described by a text string.

  • =INDIRECT("A1")Returns whatever value is in cell A1
  • =INDIRECT("B"&2)Builds the reference "B2" from text and returns its value

ROW

Lookup & Reference
=ROW([reference])

Returns the row number of a reference.

  • =ROW(A5)Returns 5, the row number of A5
  • =ROW()Returns the row number of the cell the formula is in

ROWS

Lookup & Reference
=ROWS(array)

Returns the number of rows in a reference or array.

  • =ROWS(A1:A10)Returns 10, the number of rows in the range
  • =ROWS(A1:C4)Returns 4

COLUMN

Lookup & Reference
=COLUMN([reference])

Returns the column number of a reference.

  • =COLUMN(C1)Returns 3, since C is the 3rd column
  • =COLUMN()Returns the column number of the cell the formula is in

COLUMNS

Lookup & Reference
=COLUMNS(array)

Returns the number of columns in a reference or array.

  • =COLUMNS(A1:D1)Returns 4, the number of columns in the range
  • =COLUMNS(A1:C5)Returns 3

TRANSPOSE

Lookup & Reference
=TRANSPOSE(array)

Switches rows to columns and columns to rows.

  • =TRANSPOSE({1,2,3})Turns the horizontal list 1,2,3 into a vertical column
  • =TRANSPOSE({1,2;3,4})Flips rows and columns: {1,3;2,4}

AREAS

Lookup & Reference
=AREAS(reference)

Returns the number of separate areas in a reference.

  • =AREAS(A1:B2)Returns 1, since it's a single connected range
  • =AREAS((A1:B2,C3:D4))Returns 2, since there are two separate ranges

FORMULATEXT

Lookup & Reference
=FORMULATEXT(reference)

Returns the formula in a cell as text.

  • =FORMULATEXT(A1)Shows the formula in A1 as plain text, e.g. "=SUM(B1:B5)"
  • =FORMULATEXT(C10)Displays whatever formula is written in cell C10

GETPIVOTDATA

Lookup & Reference
=GETPIVOTDATA(data_field, pivot_table, [field1, item1], ...)

Extracts a specific value from a PivotTable.

  • =GETPIVOTDATA("Sales",A3)Returns the "Sales" total from the PivotTable anchored at A3
  • =GETPIVOTDATA("Sales",A3,"Region","West")Returns the Sales value for the "West" region

RTD

Lookup & Reference
=RTD(prog_id, server, topic1, ...)

Retrieves real-time data from a program that supports COM automation.

  • =RTD("prog.id",,"topic1")Pulls a live value from a real-time data server
  • =RTD("MyServer.RTDFunction",,"AAPL","Bid")Requests a live "Bid" value for ticker AAPL

ADDRESS

Lookup & Reference
=ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text])

Builds a cell reference as text from row and column numbers.

  • =ADDRESS(1,1)Returns "$A$1" as text
  • =ADDRESS(5,3,4)Returns "C5" (relative reference to row 5, column 3)

Logical Functions in Excel (12)

When should I use a logical function? Functions that test conditions and return TRUE/FALSE-driven results, such as IF, AND, OR and IFS.

IF

Logical
=IF(logical_test, [value_if_true], [value_if_false])

Returns one value if a condition is true and another if false.

  • =IF(10>5,"Yes","No")Returns "Yes" because 10 is greater than 5
  • =IF(3=4,"Equal","Not equal")Returns "Not equal" because 3 does not equal 4
⚡ Try it live

IFS

Logical
=IFS(logical_test1, value1, [logical_test2, value2], ...)

Checks multiple conditions in order and returns the value for the first true one.

  • =IFS(75>=90,"A",75>=70,"B",TRUE,"C")Returns "B" — 75 isn't 90+, but it is 70+
  • =IFS(5>10,"Big",5<=10,"Small")Returns "Small" since 5 is not greater than 10

SWITCH

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

Compares an expression against a list of values and returns the matching result.

  • =SWITCH(2,1,"Mon",2,"Tue",3,"Wed")Returns "Tue" — the value 2 matches the second case
  • =SWITCH("B","A","Apple","B","Banana","Other")Returns "Banana" because the input matches "B"

AND

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

Returns TRUE only if every argument is true.

  • =AND(5>1,10>5)Returns TRUE because both conditions are true
  • =AND(5>1,10<5)Returns FALSE because the second condition fails

OR

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

Returns TRUE if any argument is true.

  • =OR(5>10,10>5)Returns TRUE because at least one condition is true
  • =OR(1=2,3=4)Returns FALSE because neither condition is true

NOT

Logical
=NOT(logical)

Reverses TRUE to FALSE and vice versa.

  • =NOT(5>10)Returns TRUE, flipping the false condition (5 is not > 10)
  • =NOT(TRUE)Returns FALSE, the opposite of TRUE

XOR

Logical
=XOR(logical1, [logical2], ...)

Returns TRUE when an odd number of arguments are true.

  • =XOR(TRUE,FALSE)Returns TRUE because exactly one input is true
  • =XOR(TRUE,TRUE)Returns FALSE because both inputs are true (not exactly one)

TRUE

Logical
=TRUE()

Returns the logical value TRUE.

  • =TRUE()Returns the logical value TRUE
  • =IF(TRUE(),"Yes","No")Returns "Yes", since TRUE() always evaluates to TRUE

FALSE

Logical
=FALSE()

Returns the logical value FALSE.

  • =FALSE()Returns the logical value FALSE
  • =IF(FALSE(),"Yes","No")Returns "No", since FALSE() always evaluates to FALSE

IFERROR

Logical
=IFERROR(value, value_if_error)

Returns a fallback value when a formula evaluates to an error.

  • =IFERROR(10/0,"Error")Returns "Error" because dividing by zero fails
  • =IFERROR(10/2,"Error")Returns 5 — the calculation works, so no fallback is needed
⚡ Try it live

IFNA

Logical
=IFNA(value, value_if_na)

Returns a fallback value specifically when a formula returns #N/A.

  • =IFNA(NA(),"Not found")Returns "Not found" because the input is the #N/A error
  • =IFNA(5,"Not found")Returns 5 — there's no #N/A error, so the fallback isn't used

LET

Logical
=LET(name1, value1, [name2, value2], ..., calculation)

Assigns names to intermediate values inside a formula to simplify and speed up calculation.

  • =LET(x,5,x*2)Names the value 5 as x, then returns 10 (x*2)
  • =LET(a,3,b,4,a+b)Names 3 as a and 4 as b, then returns 7 (a+b)

Text Functions in Excel (39)

When should I use a text function? Functions that combine, extract, clean or reformat text values, such as LEFT, TRIM, CONCATENATE and TEXTJOIN.

CONCATENATE

Text
=CONCATENATE(text1, [text2], ...)

Joins several text strings into one (legacy; CONCAT/TEXTJOIN are preferred).

  • =CONCATENATE("Hello"," ","World")Returns "Hello World"
  • =CONCATENATE("Room ",12)Returns "Room 12"
⚡ Try it live

CONCAT

Text
=CONCAT(text1, [text2], ...)

Joins text from ranges or strings; supports ranges unlike CONCATENATE.

  • =CONCAT("Hello"," ","World")Returns "Hello World"
  • =CONCAT("A","B","C")Returns "ABC"

TEXTJOIN

Text
=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)

Joins text with a delimiter and can skip empty cells.

  • =TEXTJOIN(", ",TRUE,"Apple","Banana","Cherry")Returns "Apple, Banana, Cherry"
  • =TEXTJOIN("-",TRUE,"2026","08","24")Returns "2026-08-24"
⚡ Try it live

LEFT

Text
=LEFT(text, [num_chars])

Returns the leftmost characters from a text string.

  • =LEFT("Excel",3)Returns "Exc", the first 3 characters
  • =LEFT("Hello World",5)Returns "Hello"
⚡ Try it live

RIGHT

Text
=RIGHT(text, [num_chars])

Returns the rightmost characters from a text string.

  • =RIGHT("Excel",3)Returns "cel", the last 3 characters
  • =RIGHT("Hello World",5)Returns "World"
⚡ Try it live

MID

Text
=MID(text, start_num, num_chars)

Returns characters from the middle of a text string.

  • =MID("Excel Formulas",7,3)Returns "For" — 3 characters starting at position 7
  • =MID("Hello",2,3)Returns "ell"
⚡ Try it live

LEN

Text
=LEN(text)

Returns the number of characters in a text string.

  • =LEN("Excel")Returns 5, the number of characters
  • =LEN("Hello World")Returns 11, including the space

FIND

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

Finds one text string within another; case-sensitive.

  • =FIND("o","Hello World")Returns 5 — position of the first "o" (case-sensitive)
  • =FIND("World","Hello World")Returns 7, where "World" starts

FINDB

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

Byte-based version of FIND for double-byte character languages.

  • =FINDB("o","Hello World")Returns 5 — byte position of the first "o"
  • =FINDB("World","Hello World")Returns 7, the byte position where "World" starts

SEARCHB

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

Byte-based version of SEARCH for double-byte character languages.

  • =SEARCHB("world","Hello World")Returns 7, the byte position (case-insensitive)
  • =SEARCHB("e","Excel")Returns 1

REPLACE

Text
=REPLACE(old_text, start_num, num_chars, new_text)

Replaces part of a text string with different text, by position.

  • =REPLACE("Hello World",1,5,"Goodbye")Returns "Goodbye World" — replaces the first 5 characters
  • =REPLACE("12345",1,2,"99")Returns "99345"

REPLACEB

Text
=REPLACEB(old_text, start_num, num_bytes, new_text)

Byte-based version of REPLACE for double-byte character languages.

  • =REPLACEB("Hello World",1,5,"Goodbye")Returns "Goodbye World" using byte positions
  • =REPLACEB("12345",1,2,"99")Returns "99345"

SUBSTITUTE

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

Replaces occurrences of a specific text string, by content rather than position.

  • =SUBSTITUTE("Hello World","World","Excel")Returns "Hello Excel"
  • =SUBSTITUTE("one-two-three","-"," ")Returns "one two three"

TRIM

Text
=TRIM(text)

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

  • =TRIM(" Hello World ")Returns "Hello World", with extra spaces removed
  • =TRIM(" Excel ")Returns "Excel"
⚡ Try it live

CLEAN

Text
=CLEAN(text)

Removes non-printable characters from text.

  • =CLEAN("Hello"&CHAR(10)&"World")Removes the line-break character, returning "HelloWorld"
  • =LEN(CLEAN("Test"&CHAR(7)))Returns 4, since the non-printable character is stripped

UPPER

Text
=UPPER(text)

Converts text to all uppercase.

  • =UPPER("hello")Returns "HELLO"
  • =UPPER("Excel Formulas")Returns "EXCEL FORMULAS"
⚡ Try it live

LOWER

Text
=LOWER(text)

Converts text to all lowercase.

  • =LOWER("HELLO")Returns "hello"
  • =LOWER("Excel Formulas")Returns "excel formulas"
⚡ Try it live

PROPER

Text
=PROPER(text)

Capitalizes the first letter of each word.

  • =PROPER("hello world")Returns "Hello World"
  • =PROPER("jane q. smith")Returns "Jane Q. Smith"
⚡ Try it live

REPT

Text
=REPT(text, number_times)

Repeats text a given number of times.

  • =REPT("ab",3)Returns "ababab"
  • =REPT("-",5)Returns "-----"

TEXT

Text
=TEXT(value, format_text)

Converts a number to text in a specified number format.

  • =TEXT(1234.5,"#,##0.00")Returns "1,234.50" as text
  • =TEXT(DATE(2026,8,24),"mm/dd/yyyy")Returns "08/24/2026"

VALUE

Text
=VALUE(text)

Converts a text string that looks like a number into a number.

  • =VALUE("123")Returns the number 123
  • =VALUE("$1,000")Returns the number 1000

NUMBERVALUE

Text
=NUMBERVALUE(text, [decimal_separator], [group_separator])

Converts text to a number in a locale-independent way.

  • =NUMBERVALUE("1.234,56",",",".")Returns 1234.56, reading comma as the decimal mark
  • =NUMBERVALUE("25%")Returns 0.25

FIXED

Text
=FIXED(number, [decimals], [no_commas])

Rounds a number and returns it as text with a fixed number of decimals.

  • =FIXED(1234.567,2)Returns "1,234.57" as text, rounded to 2 decimals
  • =FIXED(1000,0,TRUE)Returns "1000" with no comma separators

DOLLAR

Text
=DOLLAR(number, [decimals])

Converts a number to text using currency format.

  • =DOLLAR(1234.5,2)Returns "$1,234.50" as text
  • =DOLLAR(5,0)Returns "$5"

CHAR

Text
=CHAR(number)

Returns the character specified by a numeric code.

  • =CHAR(65)Returns "A", the character for code 65
  • =CHAR(97)Returns "a"

CODE

Text
=CODE(text)

Returns the numeric code for the first character of a text string.

  • =CODE("A")Returns 65, the character code for "A"
  • =CODE("a")Returns 97

UNICHAR

Text
=UNICHAR(number)

Returns the Unicode character for a given number.

  • =UNICHAR(65)Returns "A"
  • =UNICHAR(9731)Returns "☃", the snowman symbol

UNICODE

Text
=UNICODE(text)

Returns the Unicode number for the first character of text.

  • =UNICODE("A")Returns 65
  • =UNICODE("€")Returns 8364, the Euro sign's code point

EXACT

Text
=EXACT(text1, text2)

Checks whether two text strings are identical, case-sensitive.

  • =EXACT("Excel","excel")Returns FALSE — EXACT is case-sensitive
  • =EXACT("Excel","Excel")Returns TRUE, an identical match

T

Text
=T(value)

Returns the text referred to by a value, or an empty string if not text.

  • =T("Hello")Returns "Hello", since the input is already text
  • =T(123)Returns "" (empty text), since 123 is a number, not text

ASC

Text
=ASC(text)

Changes full-width characters to half-width for double-byte languages.

  • =ASC("Excel")Converts full-width characters to standard "Excel"
  • =ASC("123")Returns "123" in standard half-width digits

BAHTTEXT

Text
=BAHTTEXT(number)

Converts a number to Thai text with a Baht currency suffix.

  • =BAHTTEXT(123)Spells out 123 as Thai baht text
  • =BAHTTEXT(50.25)Spells out 50.25 as Thai baht and satang text

PHONETIC

Text
=PHONETIC(reference)

Extracts phonetic (furigana) text from a Japanese text string.

  • =PHONETIC(A1)Returns the furigana (phonetic guide) stored with the text in A1
  • =PHONETIC(B2)Returns the phonetic reading attached to the Japanese text in B2

TEXTSPLIT

Text
=TEXTSPLIT(text, col_delimiter, [row_delimiter])

Splits text into rows or columns using delimiters (dynamic array).

  • =TEXTSPLIT("a,b,c",",")Splits into three cells: "a", "b", "c"
  • =TEXTSPLIT("2026-08-24","-")Splits into "2026", "08", "24"

TEXTBEFORE

Text
=TEXTBEFORE(text, delimiter, [instance_num])

Returns the text that occurs before a given delimiter.

  • =TEXTBEFORE("name@example.com","@")Returns "name", everything before the @
  • =TEXTBEFORE("2026-08-24","-")Returns "2026"

TEXTAFTER

Text
=TEXTAFTER(text, delimiter, [instance_num])

Returns the text that occurs after a given delimiter.

  • =TEXTAFTER("name@example.com","@")Returns "example.com", everything after the @
  • =TEXTAFTER("2026-08-24","-")Returns "08-24"

ARRAYTOTEXT

Text
=ARRAYTOTEXT(array, [format])

Converts an array of values into a single text string.

  • =ARRAYTOTEXT({1,2,3})Returns "1, 2, 3" as a single text string
  • =ARRAYTOTEXT({"a","b"})Returns "a, b"

VALUETOTEXT

Text
=VALUETOTEXT(value, [format])

Returns text from any single value, preserving format where possible.

  • =VALUETOTEXT(123)Returns "123" as text
  • =VALUETOTEXT(TRUE)Returns "TRUE" as text

Date & Time Functions in Excel (25)

When should I use a date and time function? Functions that calculate, extract or format dates and times, such as TODAY, DATEDIF and EOMONTH.

TODAY

Date & Time
=TODAY()

Returns the current date, updated whenever the sheet recalculates.

  • =TODAY()Returns today's date, e.g. 8/24/2026
  • =TODAY()+7Returns the date exactly one week from today

NOW

Date & Time
=NOW()

Returns the current date and time.

  • =NOW()Returns the current date and time
  • =TEXT(NOW(),"hh:mm")Returns just the current time, like "14:30"

DATE

Date & Time
=DATE(year, month, day)

Builds a date from separate year, month, and day values.

  • =DATE(2026,8,24)Returns the date August 24, 2026
  • =DATE(2025,12,31)Returns December 31, 2025

DATEVALUE

Date & Time
=DATEVALUE(date_text)

Converts a date stored as text into a serial date value.

  • =DATEVALUE("8/24/2026")Converts the text "8/24/2026" into a real date
  • =DATEVALUE("January 1, 2026")Returns the serial date for Jan 1, 2026

TIME

Date & Time
=TIME(hour, minute, second)

Builds a time from separate hour, minute, and second values.

  • =TIME(14,30,0)Returns 2:30 PM as a time value
  • =TIME(9,0,0)Returns 9:00 AM

TIMEVALUE

Date & Time
=TIMEVALUE(time_text)

Converts a time stored as text into a serial time value.

  • =TIMEVALUE("2:30 PM")Converts the text "2:30 PM" into a real time value
  • =TIMEVALUE("09:00")Returns the time value for 9:00 AM

YEAR

Date & Time
=YEAR(serial_number)

Extracts the year from a date.

  • =YEAR(DATE(2026,8,24))Returns 2026
  • =YEAR("3/15/2025")Returns 2025

MONTH

Date & Time
=MONTH(serial_number)

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

  • =MONTH(DATE(2026,8,24))Returns 8, for August
  • =MONTH("3/15/2025")Returns 3, for March

DAY

Date & Time
=DAY(serial_number)

Extracts the day of the month from a date.

  • =DAY(DATE(2026,8,24))Returns 24
  • =DAY("3/15/2025")Returns 15

HOUR

Date & Time
=HOUR(serial_number)

Extracts the hour from a time value.

  • =HOUR(TIME(14,30,0))Returns 14 (2 PM in 24-hour format)
  • =HOUR("9:15 AM")Returns 9

MINUTE

Date & Time
=MINUTE(serial_number)

Extracts the minute from a time value.

  • =MINUTE(TIME(14,30,0))Returns 30
  • =MINUTE("9:15 AM")Returns 15

SECOND

Date & Time
=SECOND(serial_number)

Extracts the second from a time value.

  • =SECOND(TIME(14,30,45))Returns 45
  • =SECOND("9:15:30 AM")Returns 30

WEEKDAY

Date & Time
=WEEKDAY(serial_number, [return_type])

Returns the day of the week as a number.

  • =WEEKDAY(DATE(2026,8,24))Returns 2 (Monday, since Sunday=1 by default)
  • =WEEKDAY(DATE(2026,8,24),2)Returns 1 (Monday, when Monday is counted as day 1)

WEEKNUM

Date & Time
=WEEKNUM(serial_number, [return_type])

Returns the week number of the year for a date.

  • =WEEKNUM(DATE(2026,8,24))Returns the week number of the year for Aug 24, 2026
  • =WEEKNUM(DATE(2026,1,1))Returns 1, the first week of the year

ISOWEEKNUM

Date & Time
=ISOWEEKNUM(date)

Returns the ISO week number of the year for a date.

  • =ISOWEEKNUM(DATE(2026,8,24))Returns the ISO week number for Aug 24, 2026
  • =ISOWEEKNUM(DATE(2026,1,1))Returns the ISO week number for Jan 1, 2026

DATEDIF

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

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

  • =DATEDIF("1/1/2020","1/1/2026","Y")Returns 6, the number of full years between the dates
  • =DATEDIF("1/1/2026","3/15/2026","D")Returns 73, the number of days between the dates
⚡ Try it live

DAYS

Date & Time
=DAYS(end_date, start_date)

Returns the number of days between two dates.

  • =DAYS("12/31/2026","1/1/2026")Returns 364, the days between the two dates
  • =DAYS("1/10/2026","1/1/2026")Returns 9

DAYS360

Date & Time
=DAYS360(start_date, end_date, [method])

Returns days between two dates based on a 360-day year.

  • =DAYS360("1/1/2026","3/1/2026")Returns 60, using the 30-day-month convention
  • =DAYS360("1/1/2026","12/31/2026")Returns 360, roughly a full 360-day year

NETWORKDAYS

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

Counts whole working days between two dates, excluding weekends.

  • =NETWORKDAYS("8/24/2026","8/28/2026")Returns 5, counting only weekdays
  • =NETWORKDAYS("1/1/2026","1/31/2026")Returns the number of weekdays in January 2026

NETWORKDAYS.INTL

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

NETWORKDAYS with a customizable weekend schedule.

  • =NETWORKDAYS.INTL("8/24/2026","8/28/2026",1)Returns 5 weekdays, Sat/Sun as the weekend
  • =NETWORKDAYS.INTL("8/24/2026","8/28/2026",7)Returns working days with only Sunday as the weekend

WORKDAY

Date & Time
=WORKDAY(start_date, days, [holidays])

Returns the date a given number of working days from a start date.

  • =WORKDAY("8/24/2026",5)Returns the date 5 working days after Aug 24, 2026
  • =WORKDAY("8/24/2026",-3)Returns the date 3 working days before Aug 24, 2026

WORKDAY.INTL

Date & Time
=WORKDAY.INTL(start_date, days, [weekend], [holidays])

WORKDAY with a customizable weekend schedule.

  • =WORKDAY.INTL("8/24/2026",5,1)Returns the date 5 working days later, Sat/Sun as weekend
  • =WORKDAY.INTL("8/24/2026",5,7)Returns 5 working days later, treating only Sunday as the weekend

EDATE

Date & Time
=EDATE(start_date, months)

Returns the date a given number of months before or after a start date.

  • =EDATE("8/24/2026",1)Returns Sept 24, 2026 — one month later
  • =EDATE("8/24/2026",-3)Returns May 24, 2026 — three months earlier

EOMONTH

Date & Time
=EOMONTH(start_date, months)

Returns the last day of the month, a given number of months away.

  • =EOMONTH("8/24/2026",0)Returns 8/31/2026, the last day of the current month
  • =EOMONTH("8/24/2026",1)Returns 9/30/2026, the last day of next month

YEARFRAC

Date & Time
=YEARFRAC(start_date, end_date, [basis])

Returns the fraction of a year between two dates.

  • =YEARFRAC("1/1/2026","7/1/2026")Returns about 0.5, roughly half a year
  • =YEARFRAC("1/1/2026","1/1/2027")Returns 1, exactly one year apart

Statistical Functions in Excel (108)

When should I use a statistical function? Functions that summarise, average, rank and analyse numeric data, such as AVERAGE, MEDIAN and STDEV.

AVERAGE

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

Returns the arithmetic mean of its arguments.

  • =AVERAGE(2,4,6)Returns 4
  • =AVERAGE({10,20,30,40})Returns 25

AVERAGEA

Statistical
=AVERAGEA(value1, [value2], ...)

Averages values, treating text and FALSE as 0 and TRUE as 1.

  • =AVERAGEA(1,2,TRUE)Returns 1.33 — TRUE counts as 1
  • =AVERAGEA(2,4,"text")Returns 2, since text counts as 0

AVERAGEIF

Statistical
=AVERAGEIF(range, criteria, [average_range])

Averages cells that meet a single condition.

  • =AVERAGEIF({"A","B","A"},"A",{10,20,30})Returns 20, the average where the label is "A"
  • =AVERAGEIF({5,15,25},">10")Returns 20, average of values over 10
⚡ Try it live

AVERAGEIFS

Statistical
=AVERAGEIFS(average_range, criteria_range1, criteria1, ...)

Averages cells that meet multiple conditions.

  • =AVERAGEIFS({10,20,30},{1,2,1},1)Returns 20, average where the condition matches
  • =AVERAGEIFS({100,200,300},{5,15,25},">10")Returns 250

COUNT

Statistical
=COUNT(value1, [value2], ...)

Counts the cells that contain numbers.

  • =COUNT(1,2,"text",3)Returns 3, counting only the numbers
  • =COUNT({10,20,30})Returns 3

COUNTA

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

Counts the cells that are not empty.

  • =COUNTA(1,"Apple",TRUE)Returns 3, counting numbers, text, and logicals alike
  • =COUNTA("a","b",5)Returns 3, since COUNTA counts any non-blank entry

COUNTBLANK

Statistical
=COUNTBLANK(range)

Counts the empty cells in a range.

  • =COUNTBLANK({1,"",3,""})Returns 2, the number of blanks
  • =COUNTBLANK({"",""})Returns 2

COUNTIF

Statistical
=COUNTIF(range, criteria)

Counts cells that meet a single condition.

  • =COUNTIF({1,2,2,3,2},2)Returns 3, how many times 2 appears
  • =COUNTIF({5,15,25},">10")Returns 2
⚡ Try it live

COUNTIFS

Statistical
=COUNTIFS(criteria_range1, criteria1, ...)

Counts cells that meet multiple conditions.

  • =COUNTIFS({1,2,1},1,{"A","B","A"},"A")Returns 2, matching both conditions
  • =COUNTIFS({5,15,25},">10",{1,1,2},1)Returns 1
⚡ Try it live

MAX

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

Returns the largest value in a set of numbers.

  • =MAX(3,7,2)Returns 7
  • =MAX({10,50,20})Returns 50

MAXA

Statistical
=MAXA(value1, [value2], ...)

Returns the largest value, including text and logical values.

  • =MAXA(3,7,TRUE)Returns 7 — TRUE is treated as 1, still less than 7
  • =MAXA(1,"text",5)Returns 5

MAXIFS

Statistical
=MAXIFS(max_range, criteria_range1, criteria1, ...)

Returns the largest value among cells that meet multiple conditions.

  • =MAXIFS({10,20,30},{1,2,1},1)Returns 30, the max where the condition matches
  • =MAXIFS({100,200,300},{5,15,25},">10")Returns 300

MIN

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

Returns the smallest value in a set of numbers.

  • =MIN(3,7,2)Returns 2
  • =MIN({10,50,20})Returns 10

MINA

Statistical
=MINA(value1, [value2], ...)

Returns the smallest value, including text and logical values.

  • =MINA(3,7,FALSE)Returns 0 — FALSE is treated as 0
  • =MINA(4,"text",6)Returns 0

MINIFS

Statistical
=MINIFS(min_range, criteria_range1, criteria1, ...)

Returns the smallest value among cells that meet multiple conditions.

  • =MINIFS({10,20,30},{1,2,1},1)Returns 10, the min where the condition matches
  • =MINIFS({100,200,300},{5,15,25},">10")Returns 200

MEDIAN

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

Returns the middle value of a set of numbers.

  • =MEDIAN(1,3,5)Returns 3, the middle value
  • =MEDIAN({1,2,3,4})Returns 2.5, the average of the two middle values

MODE.SNGL

Statistical
=MODE.SNGL(number1, [number2], ...)

Returns the most frequently occurring value in a data set.

  • =MODE.SNGL({1,2,2,3})Returns 2, the most frequent value
  • =MODE.SNGL({5,5,7,9})Returns 5

MODE.MULT

Statistical
=MODE.MULT(number1, [number2], ...)

Returns an array of the most frequently occurring values.

  • =MODE.MULT({1,1,2,2,3})Returns 1 and 2, both tied as most frequent
  • =MODE.MULT({4,4,5,5})Returns 4 and 5

STDEV.S

Statistical
=STDEV.S(number1, [number2], ...)

Estimates standard deviation based on a sample.

  • =STDEV.S({2,4,4,4,5,5,7,9})Returns about 2.14, the sample standard deviation
  • =STDEV.S({10,20,30})Returns 10

STDEV.P

Statistical
=STDEV.P(number1, [number2], ...)

Calculates standard deviation based on an entire population.

  • =STDEV.P({2,4,4,4,5,5,7,9})Returns 2, the population standard deviation
  • =STDEV.P({10,20,30})Returns about 8.16

STDEVA

Statistical
=STDEVA(value1, [value2], ...)

Sample standard deviation including text and logical values.

  • =STDEVA({1,2,TRUE})Treats TRUE as 1, then computes the standard deviation
  • =STDEVA({10,20,30})Returns 10

STDEVPA

Statistical
=STDEVPA(value1, [value2], ...)

Population standard deviation including text and logical values.

  • =STDEVPA({1,2,TRUE})Treats TRUE as 1, then computes the population standard deviation
  • =STDEVPA({10,20,30})Returns about 8.16

VAR.S

Statistical
=VAR.S(number1, [number2], ...)

Estimates variance based on a sample.

  • =VAR.S({2,4,4,4,5,5,7,9})Returns about 4.57, the sample variance
  • =VAR.S({10,20,30})Returns 100

VAR.P

Statistical
=VAR.P(number1, [number2], ...)

Calculates variance based on an entire population.

  • =VAR.P({2,4,4,4,5,5,7,9})Returns 4, the population variance
  • =VAR.P({10,20,30})Returns about 66.67

VARA

Statistical
=VARA(value1, [value2], ...)

Sample variance including text and logical values.

  • =VARA({1,2,TRUE})Treats TRUE as 1, then computes variance
  • =VARA({10,20,30})Returns 100

VARPA

Statistical
=VARPA(value1, [value2], ...)

Population variance including text and logical values.

  • =VARPA({1,2,TRUE})Treats TRUE as 1, then computes population variance
  • =VARPA({10,20,30})Returns about 66.67

RANK.EQ

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

Returns the rank of a number within a list.

  • =RANK.EQ(80,{95,80,70,60})Returns 2, since 80 is the 2nd highest
  • =RANK.EQ(60,{95,80,70,60},1)Returns 1, the lowest when ranking ascending

RANK.AVG

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

Returns the rank of a number, averaging ties.

  • =RANK.AVG(80,{95,80,80,60})Returns 2.5, averaging tied ranks for 80
  • =RANK.AVG(95,{95,80,70,60})Returns 1

PERCENTILE.INC

Statistical
=PERCENTILE.INC(array, k)

Returns the k-th percentile, inclusive of 0 and 1.

  • =PERCENTILE.INC({1,2,3,4,5},0.5)Returns 3, the median (50th percentile)
  • =PERCENTILE.INC({1,2,3,4},0.25)Returns 1.75

PERCENTILE.EXC

Statistical
=PERCENTILE.EXC(array, k)

Returns the k-th percentile, exclusive of 0 and 1.

  • =PERCENTILE.EXC({1,2,3,4,5},0.5)Returns 3, using the exclusive method
  • =PERCENTILE.EXC({1,2,3,4},0.25)Returns 1.25

PERCENTRANK.INC

Statistical
=PERCENTRANK.INC(array, x, [significance])

Returns the rank of a value as a percentage, inclusive range.

  • =PERCENTRANK.INC({1,2,3,4,5},3)Returns 0.5, since 3 sits at the midpoint
  • =PERCENTRANK.INC({1,2,3,4,5},5)Returns 1

PERCENTRANK.EXC

Statistical
=PERCENTRANK.EXC(array, x, [significance])

Returns the rank of a value as a percentage, exclusive range.

  • =PERCENTRANK.EXC({1,2,3,4,5},3)Returns 0.5
  • =PERCENTRANK.EXC({1,2,3,4,5},1)Returns about 0.167

QUARTILE.INC

Statistical
=QUARTILE.INC(array, quart)

Returns the quartile of a data set, inclusive method.

  • =QUARTILE.INC({1,2,3,4,5},1)Returns 2, the first quartile
  • =QUARTILE.INC({1,2,3,4,5},2)Returns 3, the median

QUARTILE.EXC

Statistical
=QUARTILE.EXC(array, quart)

Returns the quartile of a data set, exclusive method.

  • =QUARTILE.EXC({1,2,3,4,5},1)Returns 1.5, the first quartile (exclusive method)
  • =QUARTILE.EXC({1,2,3,4,5},2)Returns 3

LARGE

Statistical
=LARGE(array, k)

Returns the k-th largest value in a data set.

  • =LARGE({3,7,1,9,4},2)Returns 7, the 2nd largest value
  • =LARGE({3,7,1,9,4},1)Returns 9, the largest

SMALL

Statistical
=SMALL(array, k)

Returns the k-th smallest value in a data set.

  • =SMALL({3,7,1,9,4},2)Returns 3, the 2nd smallest value
  • =SMALL({3,7,1,9,4},1)Returns 1, the smallest

TRIMMEAN

Statistical
=TRIMMEAN(array, percent)

Returns the mean of a data set after excluding a percentage of outliers.

  • =TRIMMEAN({1,2,3,4,100},0.2)Trims the extremes, then averages the middle values
  • =TRIMMEAN({1,2,3,4,5},0.2)Returns 3, close to the plain average here

GEOMEAN

Statistical
=GEOMEAN(number1, [number2], ...)

Returns the geometric mean of a data set.

  • =GEOMEAN(4,9)Returns 6, the geometric mean of 4 and 9
  • =GEOMEAN(1,2,4)Returns 2

HARMEAN

Statistical
=HARMEAN(number1, [number2], ...)

Returns the harmonic mean of a data set.

  • =HARMEAN(2,4)Returns about 2.67, the harmonic mean
  • =HARMEAN(1,4,4)Returns 2

SKEW

Statistical
=SKEW(number1, [number2], ...)

Returns the skewness of a distribution, sample-based.

  • =SKEW({1,2,3,4,100})Returns a large positive number — the data skews right
  • =SKEW({1,2,3,4,5})Returns 0, perfectly symmetric data

SKEW.P

Statistical
=SKEW.P(number1, [number2], ...)

Returns the skewness of a distribution based on a population.

  • =SKEW.P({1,2,3,4,100})Returns the population skewness, positive for right-skewed data
  • =SKEW.P({1,2,3,4,5})Returns 0, symmetric data

KURT

Statistical
=KURT(number1, [number2], ...)

Returns the kurtosis of a data set.

  • =KURT({1,2,3,4,100})Returns a large number, showing heavy tails/outliers
  • =KURT({1,2,2,3,4})Returns a small number close to 0

DEVSQ

Statistical
=DEVSQ(number1, [number2], ...)

Returns the sum of squared deviations from the mean.

  • =DEVSQ({2,4,6})Returns 8, the sum of squared deviations from the mean
  • =DEVSQ({1,1,1})Returns 0

CONFIDENCE.NORM

Statistical
=CONFIDENCE.NORM(alpha, standard_dev, size)

Returns the confidence interval for a population mean, normal distribution.

  • =CONFIDENCE.NORM(0.05,2,50)Returns the margin of error for a 95% confidence interval
  • =CONFIDENCE.NORM(0.01,1,100)Returns the margin of error for a 99% confidence interval

CONFIDENCE.T

Statistical
=CONFIDENCE.T(alpha, standard_dev, size)

Returns the confidence interval for a population mean, Student's t-distribution.

  • =CONFIDENCE.T(0.05,2,10)Returns the margin of error using the t-distribution
  • =CONFIDENCE.T(0.05,1,30)Returns a tighter margin with a larger sample

NORM.DIST

Statistical
=NORM.DIST(x, mean, standard_dev, cumulative)

Returns the normal distribution for a specified mean and standard deviation.

  • =NORM.DIST(70,60,10,TRUE)Returns the probability of a value ≤70 in a mean-60, sd-10 distribution
  • =NORM.DIST(60,60,10,FALSE)Returns the height of the bell curve at the mean

NORM.INV

Statistical
=NORM.INV(probability, mean, standard_dev)

Returns the inverse of the normal cumulative distribution.

  • =NORM.INV(0.5,60,10)Returns 60, the value at the 50th percentile (the mean)
  • =NORM.INV(0.975,0,1)Returns about 1.96, the standard 95% cutoff

NORM.S.DIST

Statistical
=NORM.S.DIST(z, cumulative)

Returns the standard normal distribution.

  • =NORM.S.DIST(0,TRUE)Returns 0.5, since 0 is the mean of the standard normal curve
  • =NORM.S.DIST(1.96,TRUE)Returns about 0.975

NORM.S.INV

Statistical
=NORM.S.INV(probability)

Returns the inverse of the standard normal cumulative distribution.

  • =NORM.S.INV(0.5)Returns 0, the mean of the standard normal curve
  • =NORM.S.INV(0.975)Returns about 1.96

STANDARDIZE

Statistical
=STANDARDIZE(x, mean, standard_dev)

Returns a normalized (z-score) value.

  • =STANDARDIZE(70,60,10)Returns 1, since 70 is one standard deviation above 60
  • =STANDARDIZE(60,60,10)Returns 0

LOGNORM.DIST

Statistical
=LOGNORM.DIST(x, mean, standard_dev, cumulative)

Returns the lognormal distribution of x.

  • =LOGNORM.DIST(4,0,1,TRUE)Returns the cumulative probability for a log-normal distribution
  • =LOGNORM.DIST(1,0,1,TRUE)Returns 0.5

LOGNORM.INV

Statistical
=LOGNORM.INV(probability, mean, standard_dev)

Returns the inverse of the lognormal cumulative distribution.

  • =LOGNORM.INV(0.5,0,1)Returns 1, the median of this log-normal distribution
  • =LOGNORM.INV(0.1,0,1)Returns a value below the median

EXPON.DIST

Statistical
=EXPON.DIST(x, lambda, cumulative)

Returns the exponential distribution.

  • =EXPON.DIST(1,1,TRUE)Returns about 0.632, the cumulative probability
  • =EXPON.DIST(0,1,TRUE)Returns 0

GAMMA.DIST

Statistical
=GAMMA.DIST(x, alpha, beta, cumulative)

Returns the gamma distribution.

  • =GAMMA.DIST(2,1,1,TRUE)Returns the cumulative gamma probability at x=2
  • =GAMMA.DIST(1,1,1,TRUE)Returns about 0.632

GAMMA.INV

Statistical
=GAMMA.INV(probability, alpha, beta)

Returns the inverse of the gamma cumulative distribution.

  • =GAMMA.INV(0.5,1,1)Returns the median of this gamma distribution
  • =GAMMA.INV(0.9,1,1)Returns a higher value, closer to the tail

GAMMA

Statistical
=GAMMA(number)

Returns the gamma function value.

  • =GAMMA(5)Returns 24, equal to FACT(4)
  • =GAMMA(1)Returns 1

GAMMALN

Statistical
=GAMMALN(x)

Returns the natural logarithm of the gamma function.

  • =GAMMALN(5)Returns the natural log of GAMMA(5), about 3.178
  • =GAMMALN(1)Returns 0

GAMMALN.PRECISE

Statistical
=GAMMALN.PRECISE(x)

Returns a more precise natural logarithm of the gamma function.

  • =GAMMALN.PRECISE(5)Returns the natural log of GAMMA(5), about 3.178
  • =GAMMALN.PRECISE(1)Returns 0

BETA.DIST

Statistical
=BETA.DIST(x, alpha, beta, cumulative, [A], [B])

Returns the beta probability distribution.

  • =BETA.DIST(0.5,2,2,TRUE)Returns 0.5, the cumulative probability at the midpoint
  • =BETA.DIST(0.2,2,2,TRUE)Returns a value below 0.5

BETA.INV

Statistical
=BETA.INV(probability, alpha, beta, [A], [B])

Returns the inverse of the beta cumulative distribution.

  • =BETA.INV(0.5,2,2)Returns 0.5, the median of this symmetric beta distribution
  • =BETA.INV(0.9,2,2)Returns a value closer to 1

CHISQ.DIST

Statistical
=CHISQ.DIST(x, deg_freedom, cumulative)

Returns the left-tailed chi-squared distribution.

  • =CHISQ.DIST(2,3,TRUE)Returns the cumulative chi-square probability
  • =CHISQ.DIST(0,3,TRUE)Returns 0

CHISQ.DIST.RT

Statistical
=CHISQ.DIST.RT(x, deg_freedom)

Returns the right-tailed chi-squared distribution.

  • =CHISQ.DIST.RT(2,3)Returns the right-tail chi-square probability
  • =CHISQ.DIST.RT(0,3)Returns 1

CHISQ.INV

Statistical
=CHISQ.INV(probability, deg_freedom)

Returns the inverse of the left-tailed chi-squared distribution.

  • =CHISQ.INV(0.5,3)Returns the median of a chi-square distribution with 3 df
  • =CHISQ.INV(0.95,1)Returns about 3.84, a common significance cutoff

CHISQ.INV.RT

Statistical
=CHISQ.INV.RT(probability, deg_freedom)

Returns the inverse of the right-tailed chi-squared distribution.

  • =CHISQ.INV.RT(0.05,1)Returns about 3.84, the standard 95% cutoff
  • =CHISQ.INV.RT(0.5,3)Returns the median of the distribution

CHISQ.TEST

Statistical
=CHISQ.TEST(actual_range, expected_range)

Returns the chi-squared test for independence.

  • =CHISQ.TEST({10,20},{15,15})Compares observed vs. expected counts, returns a p-value
  • =CHISQ.TEST({8,12},{10,10})Returns a p-value testing how well the counts match

F.DIST

Statistical
=F.DIST(x, deg_freedom1, deg_freedom2, cumulative)

Returns the left-tailed F probability distribution.

  • =F.DIST(2,5,10,TRUE)Returns the cumulative F-distribution probability
  • =F.DIST(1,5,10,TRUE)Returns a value near 0.5

F.DIST.RT

Statistical
=F.DIST.RT(x, deg_freedom1, deg_freedom2)

Returns the right-tailed F probability distribution.

  • =F.DIST.RT(2,5,10)Returns the right-tail F-distribution probability
  • =F.DIST.RT(1,5,10)Returns a value near 0.5

F.INV

Statistical
=F.INV(probability, deg_freedom1, deg_freedom2)

Returns the inverse of the left-tailed F distribution.

  • =F.INV(0.5,5,10)Returns the median of this F-distribution
  • =F.INV(0.95,5,10)Returns the 95th-percentile cutoff

F.INV.RT

Statistical
=F.INV.RT(probability, deg_freedom1, deg_freedom2)

Returns the inverse of the right-tailed F distribution.

  • =F.INV.RT(0.05,5,10)Returns the standard 95% right-tail cutoff
  • =F.INV.RT(0.5,5,10)Returns the median

F.TEST

Statistical
=F.TEST(array1, array2)

Returns the result of an F-test for equal variances.

  • =F.TEST({10,12,14},{9,15,21})Returns a p-value comparing the variance of two samples
  • =F.TEST({1,2,3},{1,2,3})Returns 1, since the samples have identical variance

T.DIST

Statistical
=T.DIST(x, deg_freedom, cumulative)

Returns the left-tailed Student's t-distribution.

  • =T.DIST(1,10,TRUE)Returns the cumulative t-distribution probability
  • =T.DIST(0,10,TRUE)Returns 0.5

T.DIST.2T

Statistical
=T.DIST.2T(x, deg_freedom)

Returns the two-tailed Student's t-distribution.

  • =T.DIST.2T(2,10)Returns the two-tailed t-distribution probability
  • =T.DIST.2T(0,10)Returns 1

T.DIST.RT

Statistical
=T.DIST.RT(x, deg_freedom)

Returns the right-tailed Student's t-distribution.

  • =T.DIST.RT(2,10)Returns the right-tail t-distribution probability
  • =T.DIST.RT(0,10)Returns 0.5

T.INV

Statistical
=T.INV(probability, deg_freedom)

Returns the left-tailed inverse of the t-distribution.

  • =T.INV(0.5,10)Returns 0, the median of the t-distribution
  • =T.INV(0.95,10)Returns the 95th-percentile cutoff

T.INV.2T

Statistical
=T.INV.2T(probability, deg_freedom)

Returns the two-tailed inverse of the t-distribution.

  • =T.INV.2T(0.05,10)Returns the two-tailed 95% cutoff value
  • =T.INV.2T(0.1,20)Returns the two-tailed 90% cutoff

T.TEST

Statistical
=T.TEST(array1, array2, tails, type)

Returns the probability from a Student's t-test.

  • =T.TEST({10,12,14},{9,15,21},2,2)Returns a p-value comparing the two samples' means
  • =T.TEST({1,2,3},{1,2,3},2,1)Returns 1, since the samples are identical

Z.TEST

Statistical
=Z.TEST(array, x, [sigma])

Returns the one-tailed P-value of a z-test.

  • =Z.TEST({1,2,3,4,5},3)Returns 0.5, testing against the sample's own mean
  • =Z.TEST({1,2,3,4,5},1)Returns a small p-value, since 1 is far from the mean

WEIBULL.DIST

Statistical
=WEIBULL.DIST(x, alpha, beta, cumulative)

Returns the Weibull distribution.

  • =WEIBULL.DIST(2,1,1,TRUE)Returns the cumulative Weibull probability at x=2
  • =WEIBULL.DIST(1,1,1,TRUE)Returns about 0.632

POISSON.DIST

Statistical
=POISSON.DIST(x, mean, cumulative)

Returns the Poisson distribution.

  • =POISSON.DIST(2,3,FALSE)Returns the probability of exactly 2 events when 3 are expected
  • =POISSON.DIST(2,3,TRUE)Returns the cumulative probability of 2 or fewer events

BINOM.DIST

Statistical
=BINOM.DIST(number_s, trials, probability_s, cumulative)

Returns the individual term binomial distribution probability.

  • =BINOM.DIST(3,10,0.5,FALSE)Returns the probability of exactly 3 successes in 10 tries
  • =BINOM.DIST(3,10,0.5,TRUE)Returns the probability of 3 or fewer successes

BINOM.DIST.RANGE

Statistical
=BINOM.DIST.RANGE(trials, probability_s, number_s, [number_s2])

Returns the probability of a range of outcomes using a binomial distribution.

  • =BINOM.DIST.RANGE(10,0.5,3,5)Returns the probability of 3 to 5 successes in 10 tries
  • =BINOM.DIST.RANGE(10,0.5,5)Returns the probability of exactly 5 successes

BINOM.INV

Statistical
=BINOM.INV(trials, probability_s, alpha)

Returns the smallest value for which the cumulative binomial distribution is >= a criterion.

  • =BINOM.INV(10,0.5,0.5)Returns the smallest number of successes reaching 50% probability
  • =BINOM.INV(10,0.5,0.9)Returns the successes needed to reach 90% probability

NEGBINOM.DIST

Statistical
=NEGBINOM.DIST(number_f, number_s, probability_s, cumulative)

Returns the negative binomial distribution.

  • =NEGBINOM.DIST(2,3,0.5,FALSE)Returns the probability of 2 failures before the 3rd success
  • =NEGBINOM.DIST(0,3,0.5,FALSE)Returns the probability of no failures at all

HYPGEOM.DIST

Statistical
=HYPGEOM.DIST(sample_s, number_sample, population_s, number_pop, cumulative)

Returns the hypergeometric distribution.

  • =HYPGEOM.DIST(2,4,10,20,FALSE)Returns the probability of 2 successes drawing 4 from a mixed pool
  • =HYPGEOM.DIST(1,4,10,20,FALSE)Returns the probability of exactly 1 success

CORREL

Statistical
=CORREL(array1, array2)

Returns the correlation coefficient between two data sets.

  • =CORREL({1,2,3},{2,4,6})Returns 1, a perfect positive correlation
  • =CORREL({1,2,3},{6,4,2})Returns -1, a perfect negative correlation

COVARIANCE.P

Statistical
=COVARIANCE.P(array1, array2)

Returns population covariance.

  • =COVARIANCE.P({1,2,3},{2,4,6})Returns about 1.33, the population covariance
  • =COVARIANCE.P({1,2,3},{1,2,3})Returns about 0.67

COVARIANCE.S

Statistical
=COVARIANCE.S(array1, array2)

Returns sample covariance.

  • =COVARIANCE.S({1,2,3},{2,4,6})Returns 2, the sample covariance
  • =COVARIANCE.S({1,2,3},{1,2,3})Returns 1

PEARSON

Statistical
=PEARSON(array1, array2)

Returns the Pearson product moment correlation coefficient.

  • =PEARSON({1,2,3},{2,4,6})Returns 1, a perfect positive correlation
  • =PEARSON({1,2,3},{6,4,2})Returns -1

RSQ

Statistical
=RSQ(known_ys, known_xs)

Returns the square of the Pearson correlation coefficient.

  • =RSQ({1,2,3},{2,4,6})Returns 1, since the points fit a line perfectly
  • =RSQ({1,2,3},{6,4,2})Returns 1, magnitude of fit regardless of direction

SLOPE

Statistical
=SLOPE(known_ys, known_xs)

Returns the slope of a linear regression line.

  • =SLOPE({2,4,6},{1,2,3})Returns 2, the slope of the line through these points
  • =SLOPE({1,2,3},{1,2,3})Returns 1

INTERCEPT

Statistical
=INTERCEPT(known_ys, known_xs)

Returns the intercept of a linear regression line.

  • =INTERCEPT({2,4,6},{1,2,3})Returns 0, where the line crosses the y-axis
  • =INTERCEPT({3,5,7},{1,2,3})Returns 1

STEYX

Statistical
=STEYX(known_ys, known_xs)

Returns the standard error of predicted y-values in a regression.

  • =STEYX({2,4,6},{1,2,3})Returns 0, since the points fit a line exactly
  • =STEYX({2,5,6},{1,2,3})Returns a small positive number, reflecting scatter

FORECAST.LINEAR

Statistical
=FORECAST.LINEAR(x, known_ys, known_xs)

Predicts a future value using linear regression.

  • =FORECAST.LINEAR(4,{2,4,6},{1,2,3})Returns 8, predicting the next point on the line
  • =FORECAST.LINEAR(5,{2,4,6},{1,2,3})Returns 10

FORECAST.ETS

Statistical
=FORECAST.ETS(target_date, values, timeline, [seasonality], [data_completion], [aggregation])

Predicts a future value using exponential smoothing.

  • =FORECAST.ETS(DATE(2026,9,1),{100,110,120},{DATE(2026,6,1),DATE(2026,7,1),DATE(2026,8,1)})Forecasts the next value using exponential smoothing
  • =FORECAST.ETS(DATE(2026,10,1),{100,110,120},{DATE(2026,6,1),DATE(2026,7,1),DATE(2026,8,1)})Forecasts two periods ahead

FORECAST.ETS.CONFINT

Statistical
=FORECAST.ETS.CONFINT(target_date, values, timeline, [confidence_level], ...)

Returns a confidence interval for a forecast value.

  • =FORECAST.ETS.CONFINT(DATE(2026,9,1),{100,110,120},{DATE(2026,6,1),DATE(2026,7,1),DATE(2026,8,1)})Returns the confidence interval width around the forecast
  • =FORECAST.ETS.CONFINT(DATE(2026,9,1),{100,110,120},{DATE(2026,6,1),DATE(2026,7,1),DATE(2026,8,1)},0.9)Returns a wider interval at 90% confidence

FORECAST.ETS.SEASONALITY

Statistical
=FORECAST.ETS.SEASONALITY(values, timeline, ...)

Returns the length of a repetitive pattern detected in a time series.

  • =FORECAST.ETS.SEASONALITY({10,20,10,20},{1,2,3,4})Detects the repeating pattern length in the data, e.g. 2
  • =FORECAST.ETS.SEASONALITY({5,5,5,5},{1,2,3,4})Returns 1, since there's no repeating pattern

FORECAST.ETS.STAT

Statistical
=FORECAST.ETS.STAT(values, timeline, statistic_type, ...)

Returns a requested statistic for an exponential-smoothing forecast.

  • =FORECAST.ETS.STAT({100,110,120},{DATE(2026,6,1),DATE(2026,7,1),DATE(2026,8,1)},1)Returns the smoothing constant used by the forecast model
  • =FORECAST.ETS.STAT({100,110,120},{DATE(2026,6,1),DATE(2026,7,1),DATE(2026,8,1)},4)Returns the mean absolute error of the model

TREND

Statistical
=TREND(known_ys, [known_xs], [new_xs], [const])

Returns values along a linear trend, fitted by least squares.

  • =TREND({2,4,6},{1,2,3},4)Returns 8, the trend line's value at x=4
  • =TREND({1,2,3},{1,2,3})Returns {1,2,3}, since the data is already linear

GROWTH

Statistical
=GROWTH(known_ys, [known_xs], [new_xs], [const])

Returns values along an exponential growth trend.

  • =GROWTH({1,2,4},{1,2,3},4)Returns about 8, projecting exponential growth to x=4
  • =GROWTH({2,4,8},{1,2,3})Returns {2,4,8}, matching the existing exponential pattern

LINEST

Statistical
=LINEST(known_ys, [known_xs], [const], [stats])

Returns statistics describing a linear regression line.

  • =LINEST({2,4,6},{1,2,3})Returns the slope and intercept of the best-fit line: {2,0}
  • =LINEST({3,5,7},{1,2,3})Returns {2,1}, slope 2 and intercept 1

LOGEST

Statistical
=LOGEST(known_ys, [known_xs], [const], [stats])

Returns statistics describing an exponential curve.

  • =LOGEST({2,4,8},{1,2,3})Returns the base of the best-fit exponential curve
  • =LOGEST({1,3,9},{1,2,3})Fits an exponential curve to these tripling values

PROB

Statistical
=PROB(x_range, prob_range, lower_limit, [upper_limit])

Returns the probability that values fall within a given range.

  • =PROB({1,2,3},{0.2,0.3,0.5},2)Returns 0.3, the probability assigned to the value 2
  • =PROB({1,2,3},{0.2,0.3,0.5},1,2)Returns 0.5, the probability for the range 1 to 2

PHI

Statistical
=PHI(x)

Returns the density function value for the standard normal distribution.

  • =PHI(0)Returns about 0.3989, the standard normal curve's height at 0
  • =PHI(1)Returns about 0.2420

GAUSS

Statistical
=GAUSS(z)

Returns the probability that a member of a standard normal population falls between the mean and z.

  • =GAUSS(1)Returns about 0.3413, the area between the mean and 1 standard deviation
  • =GAUSS(0)Returns 0

FISHER

Statistical
=FISHER(x)

Returns the Fisher transformation of x.

  • =FISHER(0.5)Returns about 0.5493, the Fisher transformation of 0.5
  • =FISHER(0)Returns 0

FISHERINV

Statistical
=FISHERINV(y)

Returns the inverse of the Fisher transformation.

  • =FISHERINV(0.5493)Returns about 0.5, reversing the Fisher transformation
  • =FISHERINV(0)Returns 0

FREQUENCY

Statistical
=FREQUENCY(data_array, bins_array)

Returns how often values occur within given ranges, as a vertical array.

  • =FREQUENCY({1,5,10,15},{4,9,14})Counts how many values fall into each bin: {1,1,1,1}
  • =FREQUENCY({2,2,3,8},{5})Returns {3,1} — 3 values ≤5, 1 value above

AVEDEV

Statistical
=AVEDEV(number1, [number2], ...)

Returns the average of the absolute deviations of data points from their mean.

  • =AVEDEV(2,4,6)Returns 1.33, the average distance from the mean
  • =AVEDEV(1,1,1)Returns 0

Math & Trigonometry Functions in Excel (81)

When should I use a math and trigonometry function? Functions that perform arithmetic, rounding, aggregation and trigonometric calculations, such as SUM, ROUND and SUMPRODUCT.

SUM

Math & Trigonometry
=SUM(number1, [number2], ...)

Adds all numbers in a range of cells.

  • =SUM(10,20,30)Returns 60
  • =SUM({1,2,3,4,5})Returns 15

SUMIF

Math & Trigonometry
=SUMIF(range, criteria, [sum_range])

Adds cells that meet a single condition.

  • =SUMIF({"A","B","A"},"A",{10,20,30})Returns 40, adding only where the label is "A"
  • =SUMIF({5,15,25},">10")Returns 40 (15+25), values over 10
⚡ Try it live

SUMIFS

Math & Trigonometry
=SUMIFS(sum_range, criteria_range1, criteria1, ...)

Adds cells that meet multiple conditions.

  • =SUMIFS({10,20,30},{"A","B","A"},"A",{1,2,1},1)Returns 40, matching both conditions
  • =SUMIFS({100,200,300},{5,15,25},">10")Returns 500, summing where the criteria range is over 10
⚡ Try it live

SUMPRODUCT

Math & Trigonometry
=SUMPRODUCT(array1, [array2], ...)

Multiplies corresponding array elements and sums the results.

  • =SUMPRODUCT({1,2,3},{4,5,6})Returns 32 (1×4 + 2×5 + 3×6)
  • =SUMPRODUCT({2,3},{10,10})Returns 50

SUMSQ

Math & Trigonometry
=SUMSQ(number1, [number2], ...)

Returns the sum of the squares of the arguments.

  • =SUMSQ(3,4)Returns 25 (3² + 4²)
  • =SUMSQ({1,2,3})Returns 14 (1+4+9)

SUMX2MY2

Math & Trigonometry
=SUMX2MY2(array_x, array_y)

Sums the differences of squares of corresponding values in two arrays.

  • =SUMX2MY2({3,4},{1,2})Returns 20, the sum of (x²−y²) for each pair
  • =SUMX2MY2({5},{3})Returns 16 (25−9)

SUMX2PY2

Math & Trigonometry
=SUMX2PY2(array_x, array_y)

Sums the sums of squares of corresponding values in two arrays.

  • =SUMX2PY2({3,4},{1,2})Returns 30, the sum of (x²+y²) for each pair
  • =SUMX2PY2({5},{3})Returns 34 (25+9)

SUMXMY2

Math & Trigonometry
=SUMXMY2(array_x, array_y)

Sums the squares of differences of corresponding values in two arrays.

  • =SUMXMY2({3,4},{1,2})Returns 8, the sum of (x−y)² for each pair
  • =SUMXMY2({5},{3})Returns 4

ABS

Math & Trigonometry
=ABS(number)

Returns the absolute (unsigned) value of a number.

  • =ABS(-15)Returns 15
  • =ABS(7)Returns 7, unchanged since it's already positive

SIGN

Math & Trigonometry
=SIGN(number)

Returns 1, 0, or -1 depending on the sign of a number.

  • =SIGN(-8)Returns -1, since the number is negative
  • =SIGN(8)Returns 1, since the number is positive

SQRT

Math & Trigonometry
=SQRT(number)

Returns the positive square root of a number.

  • =SQRT(16)Returns 4
  • =SQRT(2)Returns about 1.414

SQRTPI

Math & Trigonometry
=SQRTPI(number)

Returns the square root of a number multiplied by pi.

  • =SQRTPI(1)Returns the square root of π, about 1.772
  • =SQRTPI(4)Returns about 3.545, the square root of 4π

POWER

Math & Trigonometry
=POWER(number, power)

Raises a number to a given power.

  • =POWER(2,3)Returns 8 (2 cubed)
  • =POWER(5,2)Returns 25

EXP

Math & Trigonometry
=EXP(number)

Returns e raised to the power of a given number.

  • =EXP(1)Returns about 2.718 (Euler's number, e)
  • =EXP(0)Returns 1

LN

Math & Trigonometry
=LN(number)

Returns the natural logarithm of a number.

  • =LN(2.718281828)Returns approximately 1
  • =LN(1)Returns 0

LOG

Math & Trigonometry
=LOG(number, [base])

Returns the logarithm of a number to a specified base.

  • =LOG(100,10)Returns 2, since 10² = 100
  • =LOG(8,2)Returns 3, since 2³ = 8

LOG10

Math & Trigonometry
=LOG10(number)

Returns the base-10 logarithm of a number.

  • =LOG10(1000)Returns 3, since 10³ = 1000
  • =LOG10(100)Returns 2

MOD

Math & Trigonometry
=MOD(number, divisor)

Returns the remainder after division.

  • =MOD(10,3)Returns 1, the remainder of 10÷3
  • =MOD(9,3)Returns 0, no remainder

QUOTIENT

Math & Trigonometry
=QUOTIENT(numerator, denominator)

Returns the integer portion of a division.

  • =QUOTIENT(10,3)Returns 3, the whole-number part of 10÷3
  • =QUOTIENT(20,6)Returns 3

PRODUCT

Math & Trigonometry
=PRODUCT(number1, [number2], ...)

Multiplies all the numbers given as arguments.

  • =PRODUCT(2,3,4)Returns 24
  • =PRODUCT({1,2,3,4})Returns 24

ROUND

Math & Trigonometry
=ROUND(number, num_digits)

Rounds a number to a specified number of digits.

  • =ROUND(3.14159,2)Returns 3.14
  • =ROUND(1234.5,-2)Returns 1200
⚡ Try it live

ROUNDUP

Math & Trigonometry
=ROUNDUP(number, num_digits)

Rounds a number away from zero.

  • =ROUNDUP(3.14159,2)Returns 3.15, always rounding away from zero
  • =ROUNDUP(3.1,0)Returns 4
⚡ Try it live

ROUNDDOWN

Math & Trigonometry
=ROUNDDOWN(number, num_digits)

Rounds a number toward zero.

  • =ROUNDDOWN(3.98,1)Returns 3.9, always rounding toward zero
  • =ROUNDDOWN(3.9,0)Returns 3
⚡ Try it live

MROUND

Math & Trigonometry
=MROUND(number, multiple)

Rounds a number to the nearest multiple.

  • =MROUND(22,5)Returns 20, the closest multiple of 5
  • =MROUND(23,5)Returns 25

CEILING

Math & Trigonometry
=CEILING(number, significance)

Rounds a number up to the nearest multiple of significance.

  • =CEILING(22,5)Returns 25, rounded up to the nearest 5
  • =CEILING(4.1,1)Returns 5

CEILING.MATH

Math & Trigonometry
=CEILING.MATH(number, [significance], [mode])

Rounds a number up, with control over negative-number rounding direction.

  • =CEILING.MATH(22,5)Returns 25, rounded up to the nearest 5
  • =CEILING.MATH(-4.5)Returns -4, rounding toward zero for negatives by default

CEILING.PRECISE

Math & Trigonometry
=CEILING.PRECISE(number, [significance])

Rounds a number up to the nearest multiple, always treating significance as positive.

  • =CEILING.PRECISE(22,5)Returns 25
  • =CEILING.PRECISE(4.1)Returns 5

FLOOR

Math & Trigonometry
=FLOOR(number, significance)

Rounds a number down to the nearest multiple of significance.

  • =FLOOR(22,5)Returns 20, rounded down to the nearest 5
  • =FLOOR(4.9,1)Returns 4

FLOOR.MATH

Math & Trigonometry
=FLOOR.MATH(number, [significance], [mode])

Rounds a number down, with control over negative-number rounding direction.

  • =FLOOR.MATH(22,5)Returns 20
  • =FLOOR.MATH(4.9)Returns 4

FLOOR.PRECISE

Math & Trigonometry
=FLOOR.PRECISE(number, [significance])

Rounds a number down to the nearest multiple, always treating significance as positive.

  • =FLOOR.PRECISE(22,5)Returns 20
  • =FLOOR.PRECISE(4.9)Returns 4

INT

Math & Trigonometry
=INT(number)

Rounds a number down to the nearest integer.

  • =INT(8.9)Returns 8, dropping everything after the decimal
  • =INT(-3.2)Returns -4, rounding down toward negative infinity

TRUNC

Math & Trigonometry
=TRUNC(number, [num_digits])

Truncates a number to an integer by removing the decimal part.

  • =TRUNC(8.9)Returns 8, simply cutting off the decimal
  • =TRUNC(-3.2)Returns -3, cutting off without rounding

EVEN

Math & Trigonometry
=EVEN(number)

Rounds a number up to the nearest even integer.

  • =EVEN(3)Returns 4, the next even number up
  • =EVEN(2)Returns 2, already even

ODD

Math & Trigonometry
=ODD(number)

Rounds a number up to the nearest odd integer.

  • =ODD(4)Returns 5, the next odd number up
  • =ODD(3)Returns 3, already odd

FACT

Math & Trigonometry
=FACT(number)

Returns the factorial of a number.

  • =FACT(5)Returns 120 (5×4×3×2×1)
  • =FACT(3)Returns 6

FACTDOUBLE

Math & Trigonometry
=FACTDOUBLE(number)

Returns the double factorial of a number.

  • =FACTDOUBLE(6)Returns 48 (6×4×2)
  • =FACTDOUBLE(5)Returns 15 (5×3×1)

GCD

Math & Trigonometry
=GCD(number1, [number2], ...)

Returns the greatest common divisor of given numbers.

  • =GCD(12,18)Returns 6, the greatest common divisor
  • =GCD(8,20)Returns 4

LCM

Math & Trigonometry
=LCM(number1, [number2], ...)

Returns the least common multiple of given numbers.

  • =LCM(4,6)Returns 12, the smallest common multiple
  • =LCM(3,5)Returns 15

COMBIN

Math & Trigonometry
=COMBIN(number, number_chosen)

Returns the number of combinations for a given number of items.

  • =COMBIN(5,2)Returns 10, ways to choose 2 items from 5, order doesn't matter
  • =COMBIN(4,2)Returns 6

COMBINA

Math & Trigonometry
=COMBINA(number, number_chosen)

Returns the number of combinations with repetitions allowed.

  • =COMBINA(4,2)Returns 10, combinations allowing repeats
  • =COMBINA(3,2)Returns 6

PERMUT

Math & Trigonometry
=PERMUT(number, number_chosen)

Returns the number of permutations for a given number of items.

  • =PERMUT(5,2)Returns 20, ways to arrange 2 items from 5, order matters
  • =PERMUT(4,2)Returns 12

PERMUTATIONA

Math & Trigonometry
=PERMUTATIONA(number, number_chosen)

Returns permutations with repetitions allowed.

  • =PERMUTATIONA(3,2)Returns 9, permutations allowing repeats
  • =PERMUTATIONA(2,2)Returns 4

MULTINOMIAL

Math & Trigonometry
=MULTINOMIAL(number1, [number2], ...)

Returns the ratio of the factorial of a sum to the product of factorials.

  • =MULTINOMIAL(2,3)Returns 10, the multinomial coefficient for 2 and 3
  • =MULTINOMIAL(1,1,1)Returns 6

RAND

Math & Trigonometry
=RAND()

Returns a random decimal number between 0 and 1.

  • =RAND()Returns a random decimal between 0 and 1, e.g. 0.6721
  • =RAND()*100Returns a random decimal between 0 and 100

RANDBETWEEN

Math & Trigonometry
=RANDBETWEEN(bottom, top)

Returns a random integer between two given numbers.

  • =RANDBETWEEN(1,10)Returns a random whole number from 1 to 10
  • =RANDBETWEEN(1,100)Returns a random whole number from 1 to 100

RANDARRAY

Math & Trigonometry
=RANDARRAY([rows], [columns], [min], [max], [whole_number])

Returns an array of random numbers (dynamic array).

  • =RANDARRAY(3,1)Returns a column of 3 random decimals between 0 and 1
  • =RANDARRAY(2,2,1,10,TRUE)Returns a 2×2 grid of random whole numbers from 1 to 10

PI

Math & Trigonometry
=PI()

Returns the value of pi.

  • =PI()Returns 3.14159265358979
  • =PI()*2Returns about 6.283

DEGREES

Math & Trigonometry
=DEGREES(angle)

Converts radians to degrees.

  • =DEGREES(PI())Returns 180, converting π radians to degrees
  • =DEGREES(PI()/2)Returns 90

RADIANS

Math & Trigonometry
=RADIANS(angle)

Converts degrees to radians.

  • =RADIANS(180)Returns π (about 3.14159)
  • =RADIANS(90)Returns about 1.5708

SIN

Math & Trigonometry
=SIN(number)

Returns the sine of an angle given in radians.

  • =SIN(0)Returns 0
  • =SIN(PI()/2)Returns 1

COS

Math & Trigonometry
=COS(number)

Returns the cosine of an angle given in radians.

  • =COS(0)Returns 1
  • =COS(PI())Returns -1

TAN

Math & Trigonometry
=TAN(number)

Returns the tangent of an angle given in radians.

  • =TAN(0)Returns 0
  • =TAN(PI()/4)Returns about 1 (45 degrees)

ASIN

Math & Trigonometry
=ASIN(number)

Returns the arcsine of a number, in radians.

  • =ASIN(1)Returns about 1.5708 (π/2 radians, i.e. 90°)
  • =ASIN(0)Returns 0

ACOS

Math & Trigonometry
=ACOS(number)

Returns the arccosine of a number, in radians.

  • =ACOS(1)Returns 0
  • =ACOS(0)Returns about 1.5708 (90°)

ATAN

Math & Trigonometry
=ATAN(number)

Returns the arctangent of a number, in radians.

  • =ATAN(1)Returns about 0.7854 (45°, in radians)
  • =ATAN(0)Returns 0

ATAN2

Math & Trigonometry
=ATAN2(x_num, y_num)

Returns the arctangent from x and y coordinates, in radians.

  • =ATAN2(1,1)Returns about 0.7854, the angle to point (1,1)
  • =ATAN2(1,0)Returns 0, the angle for a point straight along the x-axis

SINH

Math & Trigonometry
=SINH(number)

Returns the hyperbolic sine of a number.

  • =SINH(0)Returns 0
  • =SINH(1)Returns about 1.1752

COSH

Math & Trigonometry
=COSH(number)

Returns the hyperbolic cosine of a number.

  • =COSH(0)Returns 1
  • =COSH(1)Returns about 1.5431

TANH

Math & Trigonometry
=TANH(number)

Returns the hyperbolic tangent of a number.

  • =TANH(0)Returns 0
  • =TANH(1)Returns about 0.7616

ASINH

Math & Trigonometry
=ASINH(number)

Returns the inverse hyperbolic sine of a number.

  • =ASINH(0)Returns 0
  • =ASINH(1)Returns about 0.8814

ACOSH

Math & Trigonometry
=ACOSH(number)

Returns the inverse hyperbolic cosine of a number.

  • =ACOSH(1)Returns 0
  • =ACOSH(2)Returns about 1.3170

ATANH

Math & Trigonometry
=ATANH(number)

Returns the inverse hyperbolic tangent of a number.

  • =ATANH(0)Returns 0
  • =ATANH(0.5)Returns about 0.5493

SEC

Math & Trigonometry
=SEC(number)

Returns the secant of an angle given in radians.

  • =SEC(0)Returns 1
  • =SEC(PI())Returns -1

CSC

Math & Trigonometry
=CSC(number)

Returns the cosecant of an angle given in radians.

  • =CSC(PI()/2)Returns 1
  • =CSC(PI()/6)Returns 2

COT

Math & Trigonometry
=COT(number)

Returns the cotangent of an angle given in radians.

  • =COT(PI()/4)Returns about 1
  • =COT(PI()/2)Returns about 0

SECH

Math & Trigonometry
=SECH(number)

Returns the hyperbolic secant of an angle.

  • =SECH(0)Returns 1
  • =SECH(1)Returns about 0.6481

CSCH

Math & Trigonometry
=CSCH(number)

Returns the hyperbolic cosecant of an angle.

  • =CSCH(1)Returns about 0.8509
  • =CSCH(2)Returns about 0.2757

COTH

Math & Trigonometry
=COTH(number)

Returns the hyperbolic cotangent of an angle.

  • =COTH(1)Returns about 1.3130
  • =COTH(2)Returns about 1.0373

ACOT

Math & Trigonometry
=ACOT(number)

Returns the arccotangent of a number, in radians.

  • =ACOT(1)Returns about 0.7854 (45°, in radians)
  • =ACOT(0)Returns about 1.5708

ACOTH

Math & Trigonometry
=ACOTH(number)

Returns the inverse hyperbolic cotangent of a number.

  • =ACOTH(2)Returns about 0.5493
  • =ACOTH(3)Returns about 0.3466

SERIESSUM

Math & Trigonometry
=SERIESSUM(x, n, m, coefficients)

Returns the sum of a power series.

  • =SERIESSUM(2,0,1,{1,1,1})Returns 7 (1 + 2 + 4), a simple power series
  • =SERIESSUM(1,0,1,{1,1,1})Returns 3 (1+1+1)

SUBTOTAL

Math & Trigonometry
=SUBTOTAL(function_num, ref1, ...)

Returns a subtotal using a chosen function, ignoring other subtotals and optionally hidden rows.

  • =SUBTOTAL(9,{10,20,30})Returns 60 — function 9 means SUM
  • =SUBTOTAL(1,{10,20,30})Returns 20 — function 1 means AVERAGE

AGGREGATE

Math & Trigonometry
=AGGREGATE(function_num, options, ref1, ...)

Applies an aggregate function while optionally ignoring errors or hidden rows.

  • =AGGREGATE(9,6,{10,20,"error"})Returns 30, summing while ignoring the error
  • =AGGREGATE(1,6,{10,20,30})Returns 20, the average

ARABIC

Math & Trigonometry
=ARABIC(text)

Converts a Roman numeral to an Arabic (regular) number.

  • =ARABIC("XIV")Returns 14
  • =ARABIC("IX")Returns 9

ROMAN

Math & Trigonometry
=ROMAN(number, [form])

Converts an Arabic number to a Roman numeral.

  • =ROMAN(14)Returns "XIV"
  • =ROMAN(9)Returns "IX"

BASE

Math & Trigonometry
=BASE(number, radix, [min_length])

Converts a number to text in a given base (radix).

  • =BASE(10,2)Returns "1010", 10 written in binary
  • =BASE(255,16)Returns "FF", 255 written in hexadecimal

DECIMAL

Math & Trigonometry
=DECIMAL(text, radix)

Converts text representing a number in a given base into a decimal number.

  • =DECIMAL("1010",2)Returns 10, converting binary 1010 to decimal
  • =DECIMAL("FF",16)Returns 255, converting hex FF to decimal

MDETERM

Math & Trigonometry
=MDETERM(array)

Returns the matrix determinant of an array.

  • =MDETERM({4,2;3,1})Returns -2, the determinant of the 2×2 matrix
  • =MDETERM({1,0;0,1})Returns 1, the determinant of the identity matrix

MINVERSE

Math & Trigonometry
=MINVERSE(array)

Returns the inverse matrix of an array.

  • =MINVERSE({4,2;3,1})Returns the inverse of the 2×2 matrix
  • =MINVERSE({1,0;0,1})Returns the identity matrix, its own inverse

MMULT

Math & Trigonometry
=MMULT(array1, array2)

Returns the matrix product of two arrays.

  • =MMULT({1,2;3,4},{5,6;7,8})Returns {19,22;43,50}, the matrix product
  • =MMULT({1,0;0,1},{5,6;7,8})Returns {5,6;7,8} unchanged (identity matrix)

MUNIT

Math & Trigonometry
=MUNIT(dimension)

Returns the identity matrix for a given dimension.

  • =MUNIT(2)Returns a 2×2 identity matrix: {1,0;0,1}
  • =MUNIT(3)Returns a 3×3 identity matrix

Financial Functions in Excel (55)

When should I use a financial function? Functions used for loan, investment, depreciation and cash-flow calculations, such as PMT, NPV and IRR.

PMT

Financial
=PMT(rate, nper, pv, [fv], [type])

Calculates the periodic payment for a loan based on constant payments and interest rate.

  • =PMT(5%/12,60,20000)Returns the monthly payment (about -$377) on a $20,000 loan
  • =PMT(4%/12,360,300000)Returns the monthly payment on a 30-year, $300,000 mortgage

IPMT

Financial
=IPMT(rate, per, nper, pv, [fv], [type])

Returns the interest portion of a loan payment for a given period.

  • =IPMT(5%/12,1,60,20000)Returns the interest portion of the first month's payment
  • =IPMT(5%/12,60,60,20000)Returns the interest portion of the final payment, much smaller

PPMT

Financial
=PPMT(rate, per, nper, pv, [fv], [type])

Returns the principal portion of a loan payment for a given period.

  • =PPMT(5%/12,1,60,20000)Returns the principal portion of the first month's payment
  • =PPMT(5%/12,60,60,20000)Returns the principal portion of the final payment, much larger

FV

Financial
=FV(rate, nper, pmt, [pv], [type])

Returns the future value of an investment based on periodic, constant payments.

  • =FV(5%/12,60,-300)Returns the future value after saving $300/month for 5 years at 5%
  • =FV(6%,10,0,-1000)Returns the future value of $1,000 invested for 10 years at 6%

FVSCHEDULE

Financial
=FVSCHEDULE(principal, schedule)

Returns the future value of a principal after applying a series of interest rates.

  • =FVSCHEDULE(1000,{0.05,0.06,0.07})Grows $1,000 over 3 years at three different rates
  • =FVSCHEDULE(1000,{0.1,0.1})Grows $1,000 by 10% twice, compounding

PV

Financial
=PV(rate, nper, pmt, [fv], [type])

Returns the present value of an investment based on periodic, constant payments.

  • =PV(5%/12,60,-300)Returns the present value of $300/month for 5 years at 5%
  • =PV(6%,10,0,-2000)Returns how much $2,000 received in 10 years is worth today

NPV

Financial
=NPV(rate, value1, [value2], ...)

Returns the net present value of an investment using a discount rate and cash flows.

  • =NPV(8%,-1000,300,400,500)Returns the net present value of an investment with these cash flows
  • =NPV(10%,100,100,100)Returns the present value of three $100 payments

XNPV

Financial
=XNPV(rate, values, dates)

Returns net present value for cash flows that are not necessarily periodic.

  • =XNPV(0.08,{-1000,300,700},{DATE(2026,1,1),DATE(2026,7,1),DATE(2027,1,1)})Returns NPV using exact dates instead of even periods
  • =XNPV(0.05,{-500,600},{DATE(2026,1,1),DATE(2026,12,31)})Returns the present value over a nearly one-year span

IRR

Financial
=IRR(values, [guess])

Returns the internal rate of return for a series of periodic cash flows.

  • =IRR({-1000,300,400,500})Returns the internal rate of return for this cash flow series
  • =IRR({-500,200,200,200})Returns the rate that makes this investment break even

XIRR

Financial
=XIRR(values, dates, [guess])

Returns the internal rate of return for cash flows that are not necessarily periodic.

  • =XIRR({-1000,1200},{DATE(2026,1,1),DATE(2027,1,1)})Returns about 20%, the annualized return
  • =XIRR({-1000,300,800},{DATE(2026,1,1),DATE(2026,6,1),DATE(2027,1,1)})Returns the annualized return for irregular dates

MIRR

Financial
=MIRR(values, finance_rate, reinvest_rate)

Returns the internal rate of return considering both cost of capital and reinvestment rate.

  • =MIRR({-1000,300,400,500},8%,10%)Returns the modified IRR using separate borrow/reinvest rates
  • =MIRR({-1000,500,500},5%,8%)Returns the modified IRR for this simpler cash flow

RATE

Financial
=RATE(nper, pmt, pv, [fv], [type], [guess])

Returns the interest rate per period of a loan or investment.

  • =RATE(60,-377,20000)Returns the monthly interest rate for this loan (about 0.42%)
  • =RATE(360,-1432,300000)Returns the monthly rate for a 30-year mortgage

NPER

Financial
=NPER(rate, pmt, pv, [fv], [type])

Returns the number of periods for a loan or investment.

  • =NPER(5%/12,-300,20000)Returns how many months it takes to pay off $20,000 at $300/month
  • =NPER(6%,-1000,0,10000)Returns years needed to reach $10,000 saving $1,000/year at 6%

SLN

Financial
=SLN(cost, salvage, life)

Returns straight-line depreciation for one period.

  • =SLN(10000,1000,5)Returns $1,800/year — straight-line depreciation over 5 years
  • =SLN(5000,0,10)Returns $500/year depreciation

SYD

Financial
=SYD(cost, salvage, life, per)

Returns sum-of-years'-digits depreciation for a period.

  • =SYD(10000,1000,5,1)Returns the depreciation for year 1, front-loaded
  • =SYD(10000,1000,5,5)Returns the depreciation for year 5, the smallest amount

DB

Financial
=DB(cost, salvage, life, period, [month])

Returns depreciation using the fixed-declining balance method.

  • =DB(10000,1000,5,1)Returns year-1 depreciation using the fixed-declining-balance method
  • =DB(10000,1000,5,2)Returns year-2 depreciation, smaller than year 1

DDB

Financial
=DDB(cost, salvage, life, period, [factor])

Returns depreciation using the double-declining balance method.

  • =DDB(10000,1000,5,1)Returns $4,000, year-1 depreciation at double the straight-line rate
  • =DDB(10000,1000,5,2)Returns a smaller amount for year 2

VDB

Financial
=VDB(cost, salvage, life, start_period, end_period, [factor], [no_switch])

Returns depreciation for any period, including partial periods, using declining balance.

  • =VDB(10000,1000,5,0,1)Returns year-1 depreciation using variable-declining-balance
  • =VDB(10000,1000,5,1,2)Returns depreciation for the period between year 1 and year 2

CUMIPMT

Financial
=CUMIPMT(rate, nper, pv, start_period, end_period, type)

Returns cumulative interest paid between two periods.

  • =CUMIPMT(5%/12,60,20000,1,12,0)Returns total interest paid in the first year of the loan
  • =CUMIPMT(5%/12,60,20000,13,24,0)Returns total interest paid in year 2, less than year 1

CUMPRINC

Financial
=CUMPRINC(rate, nper, pv, start_period, end_period, type)

Returns cumulative principal paid between two periods.

  • =CUMPRINC(5%/12,60,20000,1,12,0)Returns total principal paid in the first year
  • =CUMPRINC(5%/12,60,20000,13,24,0)Returns total principal paid in year 2, more than year 1

DISC

Financial
=DISC(settlement, maturity, pr, redemption, [basis])

Returns the discount rate for a security.

  • =DISC(DATE(2026,1,1),DATE(2026,7,1),95,100)Returns the discount rate for a bond priced at 95 vs. 100 face value
  • =DISC(DATE(2026,1,1),DATE(2027,1,1),90,100)Returns the annualized discount rate over a full year

INTRATE

Financial
=INTRATE(settlement, maturity, investment, redemption, [basis])

Returns the interest rate for a fully invested security.

  • =INTRATE(DATE(2026,1,1),DATE(2027,1,1),1000,1050)Returns the interest rate earned on this investment
  • =INTRATE(DATE(2026,1,1),DATE(2026,7,1),1000,1030)Returns the rate for a half-year investment

RECEIVED

Financial
=RECEIVED(settlement, maturity, investment, discount, [basis])

Returns the amount received at maturity for a fully invested security.

  • =RECEIVED(DATE(2026,1,1),DATE(2027,1,1),1000,5%)Returns the maturity value of a discounted investment
  • =RECEIVED(DATE(2026,1,1),DATE(2026,7,1),1000,4%)Returns the maturity value for a 6-month bill

PRICE

Financial
=PRICE(settlement, maturity, rate, yld, redemption, frequency, [basis])

Returns the price per $100 face value of a security paying periodic interest.

  • =PRICE(DATE(2026,1,1),DATE(2030,1,1),5%,6%,100,2)Returns the bond price given its coupon and market rates
  • =PRICE(DATE(2026,1,1),DATE(2028,1,1),4%,4%,100,2)Returns 100 — price equals face value when rates match

PRICEDISC

Financial
=PRICEDISC(settlement, maturity, discount, redemption, [basis])

Returns the price per $100 face value of a discounted security.

  • =PRICEDISC(DATE(2026,1,1),DATE(2026,7,1),5%,100)Returns the price of a discounted bond
  • =PRICEDISC(DATE(2026,1,1),DATE(2027,1,1),4%,100)Returns the discounted price over a full year

PRICEMAT

Financial
=PRICEMAT(settlement, maturity, issue, rate, yld, [basis])

Returns the price per $100 face value of a security paying interest at maturity.

  • =PRICEMAT(DATE(2026,1,1),DATE(2026,7,1),DATE(2025,1,1),5%,4%)Returns the price of a bond that pays interest at maturity
  • =PRICEMAT(DATE(2026,1,1),DATE(2027,1,1),DATE(2025,1,1),6%,5%)Returns the price for a full-year bond

YIELD

Financial
=YIELD(settlement, maturity, rate, pr, redemption, frequency, [basis])

Returns the yield on a security paying periodic interest.

  • =YIELD(DATE(2026,1,1),DATE(2030,1,1),5%,98,100,2)Returns the yield on a bond priced slightly below face value
  • =YIELD(DATE(2026,1,1),DATE(2028,1,1),4%,100,100,2)Returns 4%, matching the coupon since price equals face value

YIELDDISC

Financial
=YIELDDISC(settlement, maturity, pr, redemption, [basis])

Returns the annual yield for a discounted security.

  • =YIELDDISC(DATE(2026,1,1),DATE(2026,7,1),95,100)Returns the annualized yield on a discounted bond
  • =YIELDDISC(DATE(2026,1,1),DATE(2027,1,1),90,100)Returns the yield over a full year

YIELDMAT

Financial
=YIELDMAT(settlement, maturity, issue, rate, pr, [basis])

Returns the annual yield for a security paying interest at maturity.

  • =YIELDMAT(DATE(2026,1,1),DATE(2026,7,1),DATE(2025,1,1),5%,98)Returns the yield for a bond that pays interest at maturity
  • =YIELDMAT(DATE(2026,1,1),DATE(2027,1,1),DATE(2025,1,1),6%,99)Returns the yield for a full-year bond

DURATION

Financial
=DURATION(settlement, maturity, coupon, yld, frequency, [basis])

Returns the annual duration of a security with periodic interest payments.

  • =DURATION(DATE(2026,1,1),DATE(2030,1,1),5%,6%,2)Returns the bond's weighted-average time to repayment, in years
  • =DURATION(DATE(2026,1,1),DATE(2028,1,1),4%,4%,2)Returns a shorter duration for a 2-year bond

MDURATION

Financial
=MDURATION(settlement, maturity, coupon, yld, frequency, [basis])

Returns the modified Macaulay duration for a security.

  • =MDURATION(DATE(2026,1,1),DATE(2030,1,1),5%,6%,2)Returns the modified duration, a measure of interest-rate sensitivity
  • =MDURATION(DATE(2026,1,1),DATE(2028,1,1),4%,4%,2)Returns a smaller modified duration for a shorter bond

COUPDAYBS

Financial
=COUPDAYBS(settlement, maturity, frequency, [basis])

Returns days from the start of a coupon period to the settlement date.

  • =COUPDAYBS(DATE(2026,3,15),DATE(2030,1,1),2)Returns days from the last coupon date to settlement
  • =COUPDAYBS(DATE(2026,6,1),DATE(2028,1,1),2)Returns days since the previous coupon payment

COUPDAYS

Financial
=COUPDAYS(settlement, maturity, frequency, [basis])

Returns the number of days in the coupon period containing settlement.

  • =COUPDAYS(DATE(2026,3,15),DATE(2030,1,1),2)Returns the number of days in the coupon period containing settlement
  • =COUPDAYS(DATE(2026,6,1),DATE(2028,1,1),4)Returns days in a quarterly coupon period

COUPDAYSNC

Financial
=COUPDAYSNC(settlement, maturity, frequency, [basis])

Returns days from settlement to the next coupon date.

  • =COUPDAYSNC(DATE(2026,3,15),DATE(2030,1,1),2)Returns days from settlement to the next coupon
  • =COUPDAYSNC(DATE(2026,6,1),DATE(2028,1,1),2)Returns days until the next coupon payment

COUPNCD

Financial
=COUPNCD(settlement, maturity, frequency, [basis])

Returns the next coupon date after settlement.

  • =COUPNCD(DATE(2026,3,15),DATE(2030,1,1),2)Returns the next coupon date after settlement
  • =COUPNCD(DATE(2026,6,1),DATE(2028,1,1),4)Returns the next quarterly coupon date

COUPNUM

Financial
=COUPNUM(settlement, maturity, frequency, [basis])

Returns the number of coupons payable between settlement and maturity.

  • =COUPNUM(DATE(2026,3,15),DATE(2030,1,1),2)Returns how many coupon payments remain until maturity
  • =COUPNUM(DATE(2026,6,1),DATE(2028,1,1),4)Returns the number of remaining quarterly payments

COUPPCD

Financial
=COUPPCD(settlement, maturity, frequency, [basis])

Returns the previous coupon date before settlement.

  • =COUPPCD(DATE(2026,3,15),DATE(2030,1,1),2)Returns the coupon date just before settlement
  • =COUPPCD(DATE(2026,6,1),DATE(2028,1,1),4)Returns the previous quarterly coupon date

ACCRINT

Financial
=ACCRINT(issue, first_interest, settlement, rate, par, frequency, [basis])

Returns accrued interest for a security paying periodic interest.

  • =ACCRINT(DATE(2026,1,1),DATE(2026,7,1),DATE(2026,4,1),5%,1000,2)Returns interest accrued since the last coupon date
  • =ACCRINT(DATE(2026,1,1),DATE(2027,1,1),DATE(2026,10,1),4%,1000,1)Returns accrued interest for a later settlement date

ACCRINTM

Financial
=ACCRINTM(issue, settlement, rate, par, [basis])

Returns accrued interest for a security paying interest at maturity.

  • =ACCRINTM(DATE(2026,1,1),DATE(2026,7,1),5%,1000)Returns interest accrued on a bond paid at maturity
  • =ACCRINTM(DATE(2026,1,1),DATE(2027,1,1),4%,1000)Returns a full year's accrued interest

AMORDEGRC

Financial
=AMORDEGRC(cost, date_purchased, first_period, salvage, period, rate, [basis])

Returns depreciation for each accounting period using a French declining-balance method.

  • =AMORDEGRC(10000,DATE(2026,1,1),DATE(2026,12,31),1000,1,20%)Returns depreciation using the French declining-balance method
  • =AMORDEGRC(10000,DATE(2026,1,1),DATE(2026,12,31),1000,2,20%)Returns depreciation for period 2

AMORLINC

Financial
=AMORLINC(cost, date_purchased, first_period, salvage, period, rate, [basis])

Returns depreciation for each accounting period using a French straight-line method.

  • =AMORLINC(10000,DATE(2026,1,1),DATE(2026,12,31),1000,1,20%)Returns depreciation using the French straight-line method
  • =AMORLINC(10000,DATE(2026,1,1),DATE(2026,12,31),1000,2,20%)Returns depreciation for period 2

DOLLARDE

Financial
=DOLLARDE(fractional_dollar, fraction)

Converts a dollar price expressed as a fraction into a decimal.

  • =DOLLARDE(1.01,16)Converts a price quoted as 1 and 1/16th to decimal 1.0625
  • =DOLLARDE(1.1,8)Converts 1 and 1/8ths to decimal 1.125

DOLLARFR

Financial
=DOLLARFR(decimal_dollar, fraction)

Converts a dollar price expressed as a decimal into a fraction.

  • =DOLLARFR(1.0625,16)Converts decimal 1.0625 back to fractional notation 1.01
  • =DOLLARFR(1.125,8)Converts 1.125 to fractional 1.1 (in 8ths)

EFFECT

Financial
=EFFECT(nominal_rate, npery)

Returns the effective annual interest rate given a nominal rate.

  • =EFFECT(6%,12)Returns about 6.17%, the true annual rate for 6% compounded monthly
  • =EFFECT(5%,4)Returns the effective annual rate for 5% compounded quarterly

NOMINAL

Financial
=NOMINAL(effect_rate, npery)

Returns the nominal annual interest rate given an effective rate.

  • =NOMINAL(6.17%,12)Returns about 6%, the nominal rate behind a 6.17% effective rate
  • =NOMINAL(5%,4)Returns the nominal quarterly-compounded rate

TBILLEQ

Financial
=TBILLEQ(settlement, maturity, discount)

Returns the bond-equivalent yield for a Treasury bill.

  • =TBILLEQ(DATE(2026,1,1),DATE(2026,7,1),5%)Returns the bond-equivalent yield of a T-bill
  • =TBILLEQ(DATE(2026,1,1),DATE(2026,4,1),4%)Returns the equivalent yield for a shorter T-bill

TBILLPRICE

Financial
=TBILLPRICE(settlement, maturity, discount)

Returns the price per $100 face value for a Treasury bill.

  • =TBILLPRICE(DATE(2026,1,1),DATE(2026,7,1),5%)Returns the price per $100 face value of a T-bill
  • =TBILLPRICE(DATE(2026,1,1),DATE(2026,4,1),4%)Returns the price for a shorter-term T-bill

TBILLYIELD

Financial
=TBILLYIELD(settlement, maturity, pr)

Returns the yield for a Treasury bill.

  • =TBILLYIELD(DATE(2026,1,1),DATE(2026,7,1),98)Returns the yield on a T-bill priced at 98
  • =TBILLYIELD(DATE(2026,1,1),DATE(2026,4,1),99)Returns the yield for a shorter-term T-bill

ODDFPRICE

Financial
=ODDFPRICE(settlement, maturity, issue, first_coupon, rate, yld, redemption, frequency, [basis])

Returns the price per $100 face value of a security with an odd first period.

  • =ODDFPRICE(DATE(2026,2,1),DATE(2030,1,1),DATE(2026,1,1),DATE(2026,7,1),5%,6%,100,2)Returns bond price with an odd (short/long) first coupon period
  • =ODDFPRICE(DATE(2026,3,1),DATE(2028,1,1),DATE(2026,1,1),DATE(2026,7,1),4%,4%,100,2)Returns price for a shorter bond with an odd first period

ODDFYIELD

Financial
=ODDFYIELD(settlement, maturity, issue, first_coupon, rate, pr, redemption, frequency, [basis])

Returns the yield of a security with an odd first period.

  • =ODDFYIELD(DATE(2026,2,1),DATE(2030,1,1),DATE(2026,1,1),DATE(2026,7,1),5%,99,100,2)Returns yield for a bond with an odd first coupon period
  • =ODDFYIELD(DATE(2026,3,1),DATE(2028,1,1),DATE(2026,1,1),DATE(2026,7,1),4%,100,100,2)Returns yield for a shorter odd-first-period bond

ODDLPRICE

Financial
=ODDLPRICE(settlement, maturity, last_interest, rate, yld, redemption, frequency, [basis])

Returns the price per $100 face value of a security with an odd last period.

  • =ODDLPRICE(DATE(2026,6,1),DATE(2030,1,1),DATE(2029,7,1),5%,6%,100,2)Returns bond price with an odd last coupon period
  • =ODDLPRICE(DATE(2026,6,1),DATE(2028,1,1),DATE(2027,7,1),4%,4%,100,2)Returns price for a shorter odd-last-period bond

ODDLYIELD

Financial
=ODDLYIELD(settlement, maturity, last_interest, rate, pr, redemption, frequency, [basis])

Returns the yield of a security with an odd last period.

  • =ODDLYIELD(DATE(2026,6,1),DATE(2030,1,1),DATE(2029,7,1),5%,99,100,2)Returns yield for a bond with an odd last coupon period
  • =ODDLYIELD(DATE(2026,6,1),DATE(2028,1,1),DATE(2027,7,1),4%,100,100,2)Returns yield for a shorter odd-last-period bond

PDURATION

Financial
=PDURATION(rate, pv, fv)

Returns the number of periods needed to reach a future value.

  • =PDURATION(5%,1000,2000)Returns years needed for $1,000 to double at 5% growth
  • =PDURATION(8%,1000,1500)Returns years for $1,000 to grow to $1,500 at 8%

RRI

Financial
=RRI(nper, pv, fv)

Returns an equivalent interest rate for the growth of an investment.

  • =RRI(10,1000,2000)Returns about 7.2%, the growth rate for $1,000 to double in 10 years
  • =RRI(5,1000,1500)Returns the annual rate for $1,000 to grow to $1,500 in 5 years

ISPMT

Financial
=ISPMT(rate, per, nper, pv)

Returns the interest paid for a specific period of a loan with even principal payments.

  • =ISPMT(5%/12,1,60,20000)Returns the interest due in month 1 of this loan
  • =ISPMT(5%/12,60,60,20000)Returns the interest due in the final month, which is 0

Dynamic Array & LAMBDA Functions in Excel (25)

When should I use a dynamic array function? Modern spill-friendly functions such as FILTER, SORT, UNIQUE, LET and LAMBDA that return multiple results from one formula.

FILTER

Dynamic Array & LAMBDA
=FILTER(array, include, [if_empty])

Returns rows or columns that meet given criteria; spills results automatically.

  • =FILTER({1,2,3,4,5},{1,0,1,0,1}=1)Returns 1, 3, 5 — only where the condition is TRUE
  • =FILTER({"A","B","C"},{10,20,5}>8)Returns "A","B", where the matching numbers exceed 8

SORT

Dynamic Array & LAMBDA
=SORT(array, [sort_index], [sort_order], [by_col])

Sorts a range or array and spills the sorted result.

  • =SORT({3,1,2})Returns 1, 2, 3 in ascending order
  • =SORT({3,1,2},1,-1)Returns 3, 2, 1 in descending order

SORTBY

Dynamic Array & LAMBDA
=SORTBY(array, by_array1, [sort_order1], ...)

Sorts a range or array based on values in another range.

  • =SORTBY({"A","B","C"},{3,1,2})Returns "B","C","A", sorted by the second list
  • =SORTBY({"A","B","C"},{3,1,2},-1)Returns "A","C","B", sorted descending by the second list

UNIQUE

Dynamic Array & LAMBDA
=UNIQUE(array, [by_col], [exactly_once])

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

  • =UNIQUE({1,2,2,3,3,3})Returns 1, 2, 3 — each value once
  • =UNIQUE({"A","B","A"})Returns "A","B"

SEQUENCE

Dynamic Array & LAMBDA
=SEQUENCE(rows, [columns], [start], [step])

Generates a spilled array of sequential numbers.

  • =SEQUENCE(5)Returns 1, 2, 3, 4, 5 as a column
  • =SEQUENCE(3,1,10,5)Returns 10, 15, 20 — 3 numbers starting at 10, stepping by 5

LAMBDA

Dynamic Array & LAMBDA
=LAMBDA([parameter1, ...], calculation)

Creates a custom, reusable function using Excel's own formula language.

  • =LAMBDA(x,x*2)(5)Names x as a parameter, then returns 10 (x*2 with x=5)
  • =LAMBDA(a,b,a+b)(3,4)Returns 7, adding the two supplied arguments

MAP

Dynamic Array & LAMBDA
=MAP(array1, [array2], ..., lambda)

Applies a LAMBDA to each element of one or more arrays, returning a new array.

  • =MAP({1,2,3},LAMBDA(x,x*2))Returns 2, 4, 6 — doubling each item
  • =MAP({1,2,3},LAMBDA(x,x^2))Returns 1, 4, 9 — squaring each item

REDUCE

Dynamic Array & LAMBDA
=REDUCE([initial_value], array, lambda)

Accumulates a total by applying a LAMBDA across an array.

  • =REDUCE(0,{1,2,3},LAMBDA(a,b,a+b))Returns 6, adding up the list starting from 0
  • =REDUCE(1,{1,2,3},LAMBDA(a,b,a*b))Returns 6, multiplying the list starting from 1

SCAN

Dynamic Array & LAMBDA
=SCAN([initial_value], array, lambda)

Applies a LAMBDA across an array and returns each intermediate value.

  • =SCAN(0,{1,2,3},LAMBDA(a,b,a+b))Returns 1, 3, 6 — a running total
  • =SCAN(1,{1,2,3},LAMBDA(a,b,a*b))Returns 1, 2, 6 — a running product

BYROW

Dynamic Array & LAMBDA
=BYROW(array, lambda)

Applies a LAMBDA to each row of an array, returning one result per row.

  • =BYROW({1,2;3,4},LAMBDA(r,SUM(r)))Returns 3 and 7, the sum of each row
  • =BYROW({1,2;3,4},LAMBDA(r,MAX(r)))Returns 2 and 4, the max of each row

BYCOL

Dynamic Array & LAMBDA
=BYCOL(array, lambda)

Applies a LAMBDA to each column of an array, returning one result per column.

  • =BYCOL({1,2;3,4},LAMBDA(c,SUM(c)))Returns 4 and 6, the sum of each column
  • =BYCOL({1,2;3,4},LAMBDA(c,MAX(c)))Returns 3 and 4, the max of each column

MAKEARRAY

Dynamic Array & LAMBDA
=MAKEARRAY(rows, cols, lambda)

Builds an array of a given size by calculating each element with a LAMBDA.

  • =MAKEARRAY(2,2,LAMBDA(r,c,r*c))Builds a 2×2 grid where each cell equals row×column
  • =MAKEARRAY(3,1,LAMBDA(r,c,r))Returns 1, 2, 3 — each row's own number

VSTACK

Dynamic Array & LAMBDA
=VSTACK(array1, [array2], ...)

Stacks arrays vertically into a single array.

  • =VSTACK({1,2},{3,4})Stacks the rows vertically: {1,2;3,4}
  • =VSTACK({"A"},{"B"},{"C"})Stacks into a single column: A, B, C

HSTACK

Dynamic Array & LAMBDA
=HSTACK(array1, [array2], ...)

Stacks arrays horizontally into a single array.

  • =HSTACK({1,2},{3,4})Combines side by side: {1,2,3,4}
  • =HSTACK({"A";"B"},{"C";"D"})Combines two columns into {"A","C";"B","D"}

TOCOL

Dynamic Array & LAMBDA
=TOCOL(array, [ignore], [scan_by_column])

Transforms an array into a single column.

  • =TOCOL({1,2;3,4})Flattens the grid into a single column: 1,2,3,4
  • =TOCOL({1,2;3,4},0,TRUE)Flattens by column instead of by row: 1,3,2,4

TOROW

Dynamic Array & LAMBDA
=TOROW(array, [ignore], [scan_by_column])

Transforms an array into a single row.

  • =TOROW({1,2;3,4})Flattens the grid into a single row: 1,2,3,4
  • =TOROW({1,2;3,4},0,TRUE)Flattens by column instead of by row: 1,3,2,4

WRAPCOLS

Dynamic Array & LAMBDA
=WRAPCOLS(vector, wrap_count, [pad_with])

Wraps a row or column of values into columns of a given length.

  • =WRAPCOLS({1,2,3,4,5,6},2)Wraps the list into columns of height 2: {1,2;3,4;5,6}
  • =WRAPCOLS({1,2,3},2)Returns {1,2;3,""}, padding the last column

WRAPROWS

Dynamic Array & LAMBDA
=WRAPROWS(vector, wrap_count, [pad_with])

Wraps a row or column of values into rows of a given length.

  • =WRAPROWS({1,2,3,4,5,6},2)Wraps the list into rows of length 2: {1,2;3,4;5,6}
  • =WRAPROWS({1,2,3},2)Returns {1,2;3,""}, padding the last row

TAKE

Dynamic Array & LAMBDA
=TAKE(array, rows, [columns])

Returns a specified number of rows or columns from the start or end of an array.

  • =TAKE({1,2,3,4,5},2)Returns the first 2 items: 1, 2
  • =TAKE({1,2,3,4,5},-2)Returns the last 2 items: 4, 5

DROP

Dynamic Array & LAMBDA
=DROP(array, rows, [columns])

Removes a specified number of rows or columns from an array.

  • =DROP({1,2,3,4,5},2)Drops the first 2 items, leaving 3, 4, 5
  • =DROP({1,2,3,4,5},-2)Drops the last 2 items, leaving 1, 2, 3

EXPAND

Dynamic Array & LAMBDA
=EXPAND(array, rows, [columns], [pad_with])

Expands an array to specified dimensions, padding with a chosen value.

  • =EXPAND({1,2},1,4,0)Pads the list to 4 columns with zeros: 1,2,0,0
  • =EXPAND({1,2;3,4},3,3,"-")Expands to a 3×3 grid, filling new cells with "-"

GROUPBY

Dynamic Array & LAMBDA
=GROUPBY(row_fields, values, function, [field_headers], [total_depth], [sort_order], [filter_array])

Groups, aggregates, and summarizes data directly with a formula.

  • =GROUPBY({"A","B","A"},{10,20,30},SUM)Groups by label and sums: A=40, B=20
  • =GROUPBY({"A","B","A"},{10,20,30},AVERAGE)Groups by label and averages: A=20, B=20

PIVOTBY

Dynamic Array & LAMBDA
=PIVOTBY(row_fields, col_fields, values, function, ...)

Creates a two-dimensional summary (like a PivotTable) directly with a formula.

  • =PIVOTBY({"A","B"},{"X","Y"},{10,20},SUM)Builds a mini pivot table summing values by two categories
  • =PIVOTBY({"A","B"},{"X","Y"},{10,20},COUNT)Builds a pivot table counting entries by two categories

STOCKHISTORY

Dynamic Array & LAMBDA
=STOCKHISTORY(stock, start_date, [end_date], [interval], [headers], [property0], ...)

Retrieves historical stock price data.

  • =STOCKHISTORY("MSFT","1/1/2026","1/31/2026")Returns daily historical prices for MSFT in January 2026
  • =STOCKHISTORY("AAPL",TODAY()-30,TODAY())Returns AAPL's price history for the last 30 days

PY

Dynamic Array & LAMBDA
=PY(python_code)

Runs Python code inside a cell and returns the result (requires Python in Excel).

  • =PY("2+2")Runs the Python expression 2+2 and returns 4
  • =PY("sum([1,2,3])")Runs Python's sum() on a list and returns 6

Information Functions in Excel (21)

When should I use an information function? Functions that report on the type, error state or properties of a cell, such as ISNUMBER and ISBLANK.

ISBLANK

Information
=ISBLANK(value)

Checks whether a cell is empty.

  • =ISBLANK(A1)Returns TRUE if A1 is empty, FALSE if it has any value
  • =IF(ISBLANK(A1),"Empty","Filled")Shows "Empty" or "Filled" depending on A1

ISERROR

Information
=ISERROR(value)

Checks whether a value is any error.

  • =ISERROR(1/0)Returns TRUE, since dividing by zero produces an error
  • =ISERROR(1/1)Returns FALSE

ISERR

Information
=ISERR(value)

Checks whether a value is any error except #N/A.

  • =ISERR(1/0)Returns TRUE for most errors, but FALSE specifically for #N/A
  • =ISERR(NA())Returns FALSE, since ISERR excludes #N/A

ISNA

Information
=ISNA(value)

Checks whether a value is the #N/A error.

  • =ISNA(NA())Returns TRUE, since the value is exactly #N/A
  • =ISNA(1/0)Returns FALSE, a different error type

ISNUMBER

Information
=ISNUMBER(value)

Checks whether a value is a number.

  • =ISNUMBER(5)Returns TRUE
  • =ISNUMBER("5")Returns FALSE, since "5" is text

ISTEXT

Information
=ISTEXT(value)

Checks whether a value is text.

  • =ISTEXT("Hello")Returns TRUE
  • =ISTEXT(5)Returns FALSE, since 5 is a number

ISNONTEXT

Information
=ISNONTEXT(value)

Checks whether a value is not text.

  • =ISNONTEXT(5)Returns TRUE, since 5 is not text
  • =ISNONTEXT("Hello")Returns FALSE

ISLOGICAL

Information
=ISLOGICAL(value)

Checks whether a value is TRUE or FALSE.

  • =ISLOGICAL(TRUE)Returns TRUE
  • =ISLOGICAL(1)Returns FALSE, since 1 is a number, not TRUE/FALSE

ISREF

Information
=ISREF(value)

Checks whether a value is a valid cell reference.

  • =ISREF(A1)Returns TRUE, since A1 is a valid cell reference
  • =ISREF(5)Returns FALSE, since 5 isn't a reference

ISFORMULA

Information
=ISFORMULA(reference)

Checks whether a cell contains a formula.

  • =ISFORMULA(A1)Returns TRUE if A1 contains a formula, FALSE otherwise
  • =IF(ISFORMULA(B2),"Formula","Static value")Labels B2 based on whether it holds a formula

ISEVEN

Information
=ISEVEN(number)

Checks whether a number is even.

  • =ISEVEN(4)Returns TRUE
  • =ISEVEN(5)Returns FALSE

ISODD

Information
=ISODD(number)

Checks whether a number is odd.

  • =ISODD(5)Returns TRUE
  • =ISODD(4)Returns FALSE

ISOMITTED

Information
=ISOMITTED(argument)

Checks whether a value is missing in a LAMBDA and returns TRUE if so.

  • =LAMBDA(x,IF(ISOMITTED(x),"none",x))()Returns "none" when the argument x wasn't supplied
  • =LAMBDA(x,IF(ISOMITTED(x),"none",x))(5)Returns 5, since x was supplied

N

Information
=N(value)

Converts a value to a number.

  • =N(5)Returns 5, unchanged since it's already a number
  • =N("text")Returns 0, since text converts to 0

NA

Information
=NA()

Returns the #N/A error value.

  • =NA()Returns the #N/A error value
  • =IF(A1="",NA(),A1)Returns #N/A if A1 is empty

TYPE

Information
=TYPE(value)

Returns a code indicating the data type of a value.

  • =TYPE(5)Returns 1, the code for a number
  • =TYPE("text")Returns 2, the code for text

CELL

Information
=CELL(info_type, [reference])

Returns information about the formatting, location, or contents of a cell.

  • =CELL("type",A1)Returns "b" (blank), "l" (label/text), or "v" (value) for A1
  • =CELL("address",B5)Returns "$B$5", the address of the referenced cell

INFO

Information
=INFO(type_text)

Returns information about the current operating environment.

  • =INFO("system")Returns the operating system, e.g. "pcdos" or "mac"
  • =INFO("numfile")Returns the number of active worksheets

ERROR.TYPE

Information
=ERROR.TYPE(error_val)

Returns a number matching a specific error type.

  • =ERROR.TYPE(1/0)Returns 2, the code for a #DIV/0! error
  • =ERROR.TYPE(NA())Returns 7, the code for #N/A

SHEET

Information
=SHEET([value])

Returns the sheet number of the referenced sheet.

  • =SHEET()Returns the number of the current sheet, e.g. 1
  • =SHEET("Sheet2")Returns the position of Sheet2

SHEETS

Information
=SHEETS([reference])

Returns the number of sheets in a reference or workbook.

  • =SHEETS()Returns the total number of sheets in the workbook
  • =SHEETS(A1:A1)Returns 1, since the reference spans one sheet

Database Functions in Excel (12)

When should I use a database function? Functions such as DSUM and DAVERAGE that summarise data stored in Excel list/database ranges using criteria.

DSUM

Database
=DSUM(database, field, criteria)

Sums values in a field of a list or database that match given criteria.

  • =DSUM({"Fruit","Qty";"Apple",5;"Pear",3},"Qty",{"Fruit";"Apple"})Returns 5, summing Qty where Fruit is Apple
  • =DSUM({"Fruit","Qty";"Apple",5;"Apple",2},"Qty",{"Fruit";"Apple"})Returns 7, summing both Apple rows

DAVERAGE

Database
=DAVERAGE(database, field, criteria)

Averages values in a field of a list or database that match given criteria.

  • =DAVERAGE({"Fruit","Qty";"Apple",4;"Apple",6},"Qty",{"Fruit";"Apple"})Returns 5, the average Qty for Apple rows
  • =DAVERAGE({"Fruit","Qty";"Pear",10},"Qty",{"Fruit";"Pear"})Returns 10

DCOUNT

Database
=DCOUNT(database, field, criteria)

Counts the numeric cells in a field that match given criteria.

  • =DCOUNT({"Fruit","Qty";"Apple",5;"Pear",""},"Qty",{"Fruit";"Apple"})Returns 1, counting numeric Qty entries matching Apple
  • =DCOUNT({"Fruit","Qty";"Apple",5;"Apple",7},"Qty",{"Fruit";"Apple"})Returns 2

DCOUNTA

Database
=DCOUNTA(database, field, criteria)

Counts the non-empty cells in a field that match given criteria.

  • =DCOUNTA({"Fruit","Note";"Apple","ripe"},"Note",{"Fruit";"Apple"})Returns 1, counting non-empty Note entries for Apple
  • =DCOUNTA({"Fruit","Note";"Apple","ripe";"Apple","sweet"},"Note",{"Fruit";"Apple"})Returns 2, counting both non-empty Note entries for Apple

DGET

Database
=DGET(database, field, criteria)

Extracts a single value from a field that matches given criteria.

  • =DGET({"Fruit","Qty";"Apple",5},"Qty",{"Fruit";"Apple"})Returns 5, the single Qty value matching Apple
  • =DGET({"Fruit","Qty";"Pear",3},"Qty",{"Fruit";"Pear"})Returns 3

DMAX

Database
=DMAX(database, field, criteria)

Returns the largest value in a field that matches given criteria.

  • =DMAX({"Fruit","Qty";"Apple",5;"Apple",9},"Qty",{"Fruit";"Apple"})Returns 9, the largest Qty among Apple rows
  • =DMAX({"Fruit","Qty";"Pear",3},"Qty",{"Fruit";"Pear"})Returns 3

DMIN

Database
=DMIN(database, field, criteria)

Returns the smallest value in a field that matches given criteria.

  • =DMIN({"Fruit","Qty";"Apple",5;"Apple",2},"Qty",{"Fruit";"Apple"})Returns 2, the smallest Qty among Apple rows
  • =DMIN({"Fruit","Qty";"Pear",3},"Qty",{"Fruit";"Pear"})Returns 3

DPRODUCT

Database
=DPRODUCT(database, field, criteria)

Multiplies values in a field that match given criteria.

  • =DPRODUCT({"Fruit","Qty";"Apple",5;"Apple",2},"Qty",{"Fruit";"Apple"})Returns 10, multiplying matching Qty values
  • =DPRODUCT({"Fruit","Qty";"Pear",4},"Qty",{"Fruit";"Pear"})Returns 4

DSTDEV

Database
=DSTDEV(database, field, criteria)

Estimates sample standard deviation from matching database entries.

  • =DSTDEV({"Fruit","Qty";"Apple",4;"Apple",6;"Apple",8},"Qty",{"Fruit";"Apple"})Returns the sample standard deviation of matching Qty values
  • =DSTDEV({"Fruit","Qty";"Pear",5;"Pear",5},"Qty",{"Fruit";"Pear"})Returns 0, since both values are identical

DSTDEVP

Database
=DSTDEVP(database, field, criteria)

Calculates population standard deviation from matching database entries.

  • =DSTDEVP({"Fruit","Qty";"Apple",4;"Apple",6;"Apple",8},"Qty",{"Fruit";"Apple"})Returns the population standard deviation of matching Qty values
  • =DSTDEVP({"Fruit","Qty";"Pear",5;"Pear",5},"Qty",{"Fruit";"Pear"})Returns 0

DVAR

Database
=DVAR(database, field, criteria)

Estimates sample variance from matching database entries.

  • =DVAR({"Fruit","Qty";"Apple",4;"Apple",6;"Apple",8},"Qty",{"Fruit";"Apple"})Returns the sample variance of matching Qty values
  • =DVAR({"Fruit","Qty";"Pear",5;"Pear",5},"Qty",{"Fruit";"Pear"})Returns 0

DVARP

Database
=DVARP(database, field, criteria)

Calculates population variance from matching database entries.

  • =DVARP({"Fruit","Qty";"Apple",4;"Apple",6;"Apple",8},"Qty",{"Fruit";"Apple"})Returns the population variance of matching Qty values
  • =DVARP({"Fruit","Qty";"Pear",5;"Pear",5},"Qty",{"Fruit";"Pear"})Returns 0

Engineering Functions in Excel (54)

When should I use an engineering function? Functions for unit conversion and number-base/complex-number arithmetic, such as CONVERT and BIN2DEC.

CONVERT

Engineering
=CONVERT(number, from_unit, to_unit)

Converts a number from one measurement system to another.

  • =CONVERT(1,"mi","km")Returns about 1.609, converting 1 mile to kilometers
  • =CONVERT(32,"F","C")Returns 0, converting 32°F to Celsius

BIN2DEC

Engineering
=BIN2DEC(number)

Converts a binary number to decimal.

  • =BIN2DEC("1010")Returns 10, converting binary 1010 to decimal
  • =BIN2DEC("11111")Returns 31

BIN2HEX

Engineering
=BIN2HEX(number, [places])

Converts a binary number to hexadecimal.

  • =BIN2HEX("1010")Returns "A", converting binary to hexadecimal
  • =BIN2HEX("11111111")Returns "FF"

BIN2OCT

Engineering
=BIN2OCT(number, [places])

Converts a binary number to octal.

  • =BIN2OCT("1010")Returns "12", converting binary to octal
  • =BIN2OCT("111")Returns "7"

DEC2BIN

Engineering
=DEC2BIN(number, [places])

Converts a decimal number to binary.

  • =DEC2BIN(10)Returns "1010", converting decimal to binary
  • =DEC2BIN(31)Returns "11111"

DEC2HEX

Engineering
=DEC2HEX(number, [places])

Converts a decimal number to hexadecimal.

  • =DEC2HEX(255)Returns "FF", converting decimal to hexadecimal
  • =DEC2HEX(16)Returns "10"

DEC2OCT

Engineering
=DEC2OCT(number, [places])

Converts a decimal number to octal.

  • =DEC2OCT(8)Returns "10", converting decimal to octal
  • =DEC2OCT(64)Returns "100"

HEX2BIN

Engineering
=HEX2BIN(number, [places])

Converts a hexadecimal number to binary.

  • =HEX2BIN("A")Returns "1010", converting hex to binary
  • =HEX2BIN("FF")Returns "11111111"

HEX2DEC

Engineering
=HEX2DEC(number)

Converts a hexadecimal number to decimal.

  • =HEX2DEC("FF")Returns 255, converting hex to decimal
  • =HEX2DEC("A")Returns 10

HEX2OCT

Engineering
=HEX2OCT(number, [places])

Converts a hexadecimal number to octal.

  • =HEX2OCT("FF")Returns "377", converting hex to octal
  • =HEX2OCT("A")Returns "12"

OCT2BIN

Engineering
=OCT2BIN(number, [places])

Converts an octal number to binary.

  • =OCT2BIN("12")Returns "1010", converting octal to binary
  • =OCT2BIN("7")Returns "111"

OCT2DEC

Engineering
=OCT2DEC(number)

Converts an octal number to decimal.

  • =OCT2DEC("12")Returns 10, converting octal to decimal
  • =OCT2DEC("100")Returns 64

OCT2HEX

Engineering
=OCT2HEX(number, [places])

Converts an octal number to hexadecimal.

  • =OCT2HEX("12")Returns "A", converting octal to hexadecimal
  • =OCT2HEX("377")Returns "FF"

COMPLEX

Engineering
=COMPLEX(real_num, i_num, [suffix])

Combines real and imaginary parts into a complex number.

  • =COMPLEX(3,4)Returns "3+4i", building a complex number
  • =COMPLEX(1,-2)Returns "1-2i"

IMABS

Engineering
=IMABS(inumber)

Returns the absolute value (modulus) of a complex number.

  • =IMABS("3+4i")Returns 5, the magnitude of the complex number
  • =IMABS("6+8i")Returns 10

IMAGINARY

Engineering
=IMAGINARY(inumber)

Returns the imaginary coefficient of a complex number.

  • =IMAGINARY("3+4i")Returns 4, the imaginary part
  • =IMAGINARY("5")Returns 0

IMREAL

Engineering
=IMREAL(inumber)

Returns the real coefficient of a complex number.

  • =IMREAL("3+4i")Returns 3, the real part
  • =IMREAL("5i")Returns 0

IMARGUMENT

Engineering
=IMARGUMENT(inumber)

Returns the argument (angle in radians) of a complex number.

  • =IMARGUMENT("3+4i")Returns about 0.927 radians, the angle of the complex number
  • =IMARGUMENT("1+0i")Returns 0

IMCONJUGATE

Engineering
=IMCONJUGATE(inumber)

Returns the complex conjugate of a complex number.

  • =IMCONJUGATE("3+4i")Returns "3-4i", flipping the sign of the imaginary part
  • =IMCONJUGATE("5-2i")Returns "5+2i"

IMCOS

Engineering
=IMCOS(inumber)

Returns the cosine of a complex number.

  • =IMCOS("0")Returns 1, the cosine of a purely real complex number
  • =IMCOS("1+1i")Returns a complex result

IMCOSH

Engineering
=IMCOSH(inumber)

Returns the hyperbolic cosine of a complex number.

  • =IMCOSH("0")Returns 1
  • =IMCOSH("1+1i")Returns a complex hyperbolic cosine result

IMCOT

Engineering
=IMCOT(inumber)

Returns the cotangent of a complex number.

  • =IMCOT("1")Returns the cotangent of the complex number 1
  • =IMCOT("1+1i")Returns a complex result

IMCSC

Engineering
=IMCSC(inumber)

Returns the cosecant of a complex number.

  • =IMCSC("1")Returns the cosecant of the complex number 1
  • =IMCSC("1+1i")Returns a complex result

IMCSCH

Engineering
=IMCSCH(inumber)

Returns the hyperbolic cosecant of a complex number.

  • =IMCSCH("1")Returns the hyperbolic cosecant of 1
  • =IMCSCH("1+1i")Returns a complex result

IMDIV

Engineering
=IMDIV(inumber1, inumber2)

Divides two complex numbers.

  • =IMDIV("10+2i","2")Returns "5+1i", dividing by a real number
  • =IMDIV("4+4i","2+2i")Returns "2"

IMEXP

Engineering
=IMEXP(inumber)

Returns the exponential of a complex number.

  • =IMEXP("0")Returns 1, e raised to 0
  • =IMEXP("1")Returns about 2.718 (e)

IMLN

Engineering
=IMLN(inumber)

Returns the natural logarithm of a complex number.

  • =IMLN("1")Returns 0, the natural log of 1
  • =IMLN("2.718")Returns about 1

IMLOG2

Engineering
=IMLOG2(inumber)

Returns the base-2 logarithm of a complex number.

  • =IMLOG2("8")Returns 3, since 2³=8
  • =IMLOG2("1")Returns 0

IMLOG10

Engineering
=IMLOG10(inumber)

Returns the base-10 logarithm of a complex number.

  • =IMLOG10("100")Returns 2, since 10²=100
  • =IMLOG10("1")Returns 0

IMPOWER

Engineering
=IMPOWER(inumber, number)

Returns a complex number raised to a power.

  • =IMPOWER("2+3i",2)Squares the complex number 2+3i
  • =IMPOWER("2",3)Returns 8

IMPRODUCT

Engineering
=IMPRODUCT(inumber1, [inumber2], ...)

Multiplies complex numbers.

  • =IMPRODUCT("3+4i","1-2i")Multiplies the two complex numbers
  • =IMPRODUCT("2","3")Returns 6

IMSEC

Engineering
=IMSEC(inumber)

Returns the secant of a complex number.

  • =IMSEC("1")Returns the secant of the complex number 1
  • =IMSEC("0")Returns 1

IMSECH

Engineering
=IMSECH(inumber)

Returns the hyperbolic secant of a complex number.

  • =IMSECH("0")Returns 1
  • =IMSECH("1")Returns the hyperbolic secant of 1

IMSIN

Engineering
=IMSIN(inumber)

Returns the sine of a complex number.

  • =IMSIN("0")Returns 0
  • =IMSIN("1+1i")Returns a complex sine result

IMSINH

Engineering
=IMSINH(inumber)

Returns the hyperbolic sine of a complex number.

  • =IMSINH("0")Returns 0
  • =IMSINH("1")Returns about 1.175

IMSQRT

Engineering
=IMSQRT(inumber)

Returns the square root of a complex number.

  • =IMSQRT("4")Returns 2, the square root of the complex number 4
  • =IMSQRT("-1")Returns "i"

IMSUB

Engineering
=IMSUB(inumber1, inumber2)

Subtracts two complex numbers.

  • =IMSUB("5+3i","2+1i")Returns "3+2i", subtracting the two complex numbers
  • =IMSUB("10","4")Returns 6

IMSUM

Engineering
=IMSUM(inumber1, [inumber2], ...)

Adds complex numbers.

  • =IMSUM("3+4i","1+2i")Returns "4+6i", adding the two complex numbers
  • =IMSUM("2","3")Returns 5

IMTAN

Engineering
=IMTAN(inumber)

Returns the tangent of a complex number.

  • =IMTAN("0")Returns 0
  • =IMTAN("1+1i")Returns a complex tangent result

BESSELI

Engineering
=BESSELI(x, n)

Returns the modified Bessel function In(x).

  • =BESSELI(1,0)Returns the modified Bessel function value at x=1, order 0
  • =BESSELI(1,1)Returns the value for order 1 instead

BESSELJ

Engineering
=BESSELJ(x, n)

Returns the Bessel function Jn(x).

  • =BESSELJ(1,0)Returns the Bessel function value at x=1, order 0
  • =BESSELJ(1,1)Returns the value for order 1 instead

BESSELK

Engineering
=BESSELK(x, n)

Returns the modified Bessel function Kn(x).

  • =BESSELK(1,0)Returns the modified Bessel function (2nd kind) at x=1, order 0
  • =BESSELK(1,1)Returns the value for order 1 instead

BESSELY

Engineering
=BESSELY(x, n)

Returns the Bessel function Yn(x).

  • =BESSELY(1,0)Returns the Bessel function (2nd kind) at x=1, order 0
  • =BESSELY(1,1)Returns the value for order 1 instead

ERF

Engineering
=ERF(lower_limit, [upper_limit])

Returns the error function integrated between two limits.

  • =ERF(1)Returns about 0.8427, the error function at x=1
  • =ERF(0)Returns 0

ERF.PRECISE

Engineering
=ERF.PRECISE(x)

Returns the error function.

  • =ERF.PRECISE(1)Returns about 0.8427, the error function at x=1
  • =ERF.PRECISE(0)Returns 0

ERFC

Engineering
=ERFC(x)

Returns the complementary error function.

  • =ERFC(1)Returns about 0.1573, the complementary error function at x=1
  • =ERFC(0)Returns 1

ERFC.PRECISE

Engineering
=ERFC.PRECISE(x)

Returns the complementary error function integrated from x to infinity.

  • =ERFC.PRECISE(1)Returns about 0.1573
  • =ERFC.PRECISE(0)Returns 1

DELTA

Engineering
=DELTA(number1, [number2])

Tests whether two numbers are exactly equal, returning 1 or 0.

  • =DELTA(5,5)Returns 1, since the two numbers are equal
  • =DELTA(5,6)Returns 0, since they differ

GESTEP

Engineering
=GESTEP(number, [step])

Tests whether a number is greater than or equal to a threshold, returning 1 or 0.

  • =GESTEP(5,3)Returns 1, since 5 is greater than or equal to 3
  • =GESTEP(2,3)Returns 0

BITAND

Engineering
=BITAND(number1, number2)

Returns a bitwise AND of two numbers.

  • =BITAND(5,3)Returns 1 — bitwise AND of binary 101 and 011
  • =BITAND(12,10)Returns 8

BITOR

Engineering
=BITOR(number1, number2)

Returns a bitwise OR of two numbers.

  • =BITOR(5,3)Returns 7 — bitwise OR of binary 101 and 011
  • =BITOR(12,2)Returns 14

BITXOR

Engineering
=BITXOR(number1, number2)

Returns a bitwise XOR (exclusive OR) of two numbers.

  • =BITXOR(5,3)Returns 6 — bitwise XOR of binary 101 and 011
  • =BITXOR(12,10)Returns 6

BITLSHIFT

Engineering
=BITLSHIFT(number, shift_amount)

Returns a number shifted left by the specified number of bits.

  • =BITLSHIFT(4,2)Returns 16, shifting binary 100 left by 2 places
  • =BITLSHIFT(1,3)Returns 8

BITRSHIFT

Engineering
=BITRSHIFT(number, shift_amount)

Returns a number shifted right by the specified number of bits.

  • =BITRSHIFT(16,2)Returns 4, shifting binary 10000 right by 2 places
  • =BITRSHIFT(8,3)Returns 1

Web Functions in Excel (4)

When should I use a web function? Functions that work with web services and URL-encoded text, such as ENCODEURL and WEBSERVICE.

ENCODEURL

Web
=ENCODEURL(text)

Returns a URL-encoded string, replacing special characters.

  • =ENCODEURL("hello world")Returns "hello%20world", URL-safe encoded text
  • =ENCODEURL("a&b")Returns "a%26b"

FILTERXML

Web
=FILTERXML(xml, xpath)

Returns specific data from XML content using an XPath expression.

  • =FILTERXML(xml,"//price")Extracts the "price" values from an XML string
  • =FILTERXML(xml,"//title")Extracts the "title" element's text from an XML string

WEBSERVICE

Web
=WEBSERVICE(url)

Retrieves data from a web service via a URL.

  • =WEBSERVICE("https://example.com/api")Returns the raw text response from a live web address
  • =WEBSERVICE(A1)Fetches data from whatever URL is stored in A1

IMAGE

Web
=IMAGE(source, [alt_text], [sizing], [height], [width])

Inserts an image into a cell from a URL.

  • =IMAGE("https://example.com/logo.png")Displays the image from that URL directly in the cell
  • =IMAGE(A1,"Company logo")Displays the image at the URL in A1, with alt text

Cube Functions in Excel (7)

When should I use a cube function? Functions that query OLAP cube data connected to Excel, such as CUBEVALUE and CUBEMEMBER.

CUBEVALUE

Cube
=CUBEVALUE(connection, [member_expression1], ...)

Returns an aggregated value from a data cube.

  • =CUBEVALUE("Sales","[Region].[West]","[Measures].[Total]")Returns the total from a connected OLAP cube for the West region
  • =CUBEVALUE("Sales","[Measures].[Total]")Returns the overall total measure with no filter applied

CUBEMEMBER

Cube
=CUBEMEMBER(connection, member_expression, [caption])

Returns a member or tuple from a data cube.

  • =CUBEMEMBER("Sales","[Region].[West]")Returns the "West" member from the cube's Region dimension
  • =CUBEMEMBER("Sales","[Product].[Bikes]")Returns the "Bikes" member from the Product dimension

CUBESET

Cube
=CUBESET(connection, set_expression, [caption], [sort_order], [sort_by])

Defines a calculated set of members from a data cube.

  • =CUBESET("Sales","[Region].Children","Regions")Defines a named set of all Region members, labeled "Regions"
  • =CUBESET("Sales","[Product].Children","Products")Defines a set of all Product members

CUBESETCOUNT

Cube
=CUBESETCOUNT(set)

Returns the number of items in a cube set.

  • =CUBESETCOUNT(A1)Returns how many items are in the cube set stored in A1
  • =CUBESETCOUNT(B2)Returns the item count for the set in B2

CUBERANKEDMEMBER

Cube
=CUBERANKEDMEMBER(connection, set_expression, rank, [caption])

Returns the nth ranked member from a cube set.

  • =CUBERANKEDMEMBER("Sales",A1,1)Returns the top-ranked member from the set in A1
  • =CUBERANKEDMEMBER("Sales",A1,2)Returns the 2nd-ranked member from the same set

CUBEMEMBERPROPERTY

Cube
=CUBEMEMBERPROPERTY(connection, member_expression, property)

Returns a property value of a member from a data cube.

  • =CUBEMEMBERPROPERTY("Sales","[Product].[Bikes]","Color")Returns the "Color" property of the Bikes member
  • =CUBEMEMBERPROPERTY("Sales","[Product].[Bikes]","Price")Returns the "Price" property of the Bikes member

CUBEKPIMEMBER

Cube
=CUBEKPIMEMBER(connection, kpi_name, kpi_property, [caption])

Returns a key performance indicator property from a cube.

  • =CUBEKPIMEMBER("Sales","Revenue Growth",1)Returns the KPI's current value
  • =CUBEKPIMEMBER("Sales","Revenue Growth",2)Returns the KPI's goal value

Compatibility (Legacy) Functions in Excel (39)

When should I use a legacy compatibility function? Older versions of functions (e.g. ST DEV, VAR, RANK) kept for backward compatibility with earlier Excel files.

BETADIST

Compatibility (Legacy)
=BETADIST(x, alpha, beta, [A], [B])

Legacy beta cumulative distribution function; replaced by BETA.DIST.

  • =BETADIST(0.5,2,2)Returns 0.5, the cumulative beta probability at the midpoint
  • =BETADIST(0.2,2,2)Returns a value below 0.5

BETAINV

Compatibility (Legacy)
=BETAINV(probability, alpha, beta, [A], [B])

Legacy inverse of the beta cumulative distribution; replaced by BETA.INV.

  • =BETAINV(0.5,2,2)Returns 0.5, the median of this beta distribution
  • =BETAINV(0.9,2,2)Returns a value closer to 1

BINOMDIST

Compatibility (Legacy)
=BINOMDIST(number_s, trials, probability_s, cumulative)

Legacy binomial distribution; replaced by BINOM.DIST.

  • =BINOMDIST(3,10,0.5,FALSE)Returns the probability of exactly 3 successes in 10 tries
  • =BINOMDIST(3,10,0.5,TRUE)Returns the probability of 3 or fewer successes

CHIDIST

Compatibility (Legacy)
=CHIDIST(x, deg_freedom)

Legacy right-tailed chi-squared distribution; replaced by CHISQ.DIST.RT.

  • =CHIDIST(2,3)Returns the right-tail chi-square probability
  • =CHIDIST(0,3)Returns 1

CHIINV

Compatibility (Legacy)
=CHIINV(probability, deg_freedom)

Legacy inverse right-tailed chi-squared distribution; replaced by CHISQ.INV.RT.

  • =CHIINV(0.05,1)Returns about 3.84, the standard 95% cutoff
  • =CHIINV(0.5,3)Returns the median

CHITEST

Compatibility (Legacy)
=CHITEST(actual_range, expected_range)

Legacy chi-squared test; replaced by CHISQ.TEST.

  • =CHITEST({10,20},{15,15})Compares observed vs. expected counts, returns a p-value
  • =CHITEST({8,12},{10,10})Returns a p-value testing how well the counts match

CONFIDENCE

Compatibility (Legacy)
=CONFIDENCE(alpha, standard_dev, size)

Legacy confidence interval; replaced by CONFIDENCE.NORM.

  • =CONFIDENCE(0.05,2,50)Returns the margin of error for a 95% confidence interval
  • =CONFIDENCE(0.01,1,100)Returns the margin of error for a 99% confidence interval

COVAR

Compatibility (Legacy)
=COVAR(array1, array2)

Legacy population covariance; replaced by COVARIANCE.P.

  • =COVAR({1,2,3},{2,4,6})Returns about 1.33, the population covariance
  • =COVAR({1,2,3},{1,2,3})Returns about 0.67

CRITBINOM

Compatibility (Legacy)
=CRITBINOM(trials, probability_s, alpha)

Legacy critical binomial value; replaced by BINOM.INV.

  • =CRITBINOM(10,0.5,0.5)Returns the smallest number of successes reaching 50% probability
  • =CRITBINOM(10,0.5,0.9)Returns the successes needed to reach 90% probability

EXPONDIST

Compatibility (Legacy)
=EXPONDIST(x, lambda, cumulative)

Legacy exponential distribution; replaced by EXPON.DIST.

  • =EXPONDIST(1,1,TRUE)Returns about 0.632, the cumulative probability
  • =EXPONDIST(0,1,TRUE)Returns 0

FDIST

Compatibility (Legacy)
=FDIST(x, deg_freedom1, deg_freedom2)

Legacy right-tailed F distribution; replaced by F.DIST.RT.

  • =FDIST(2,5,10)Returns the right-tail F-distribution probability
  • =FDIST(1,5,10)Returns a value near 0.5

FINV

Compatibility (Legacy)
=FINV(probability, deg_freedom1, deg_freedom2)

Legacy inverse right-tailed F distribution; replaced by F.INV.RT.

  • =FINV(0.05,5,10)Returns the standard 95% right-tail cutoff
  • =FINV(0.5,5,10)Returns the median

FTEST

Compatibility (Legacy)
=FTEST(array1, array2)

Legacy F-test; replaced by F.TEST.

  • =FTEST({10,12,14},{9,15,21})Returns a p-value comparing the variance of two samples
  • =FTEST({1,2,3},{1,2,3})Returns 1, since the samples have identical variance

GAMMADIST

Compatibility (Legacy)
=GAMMADIST(x, alpha, beta, cumulative)

Legacy gamma distribution; replaced by GAMMA.DIST.

  • =GAMMADIST(2,1,1,TRUE)Returns the cumulative gamma probability at x=2
  • =GAMMADIST(1,1,1,TRUE)Returns about 0.632

GAMMAINV

Compatibility (Legacy)
=GAMMAINV(probability, alpha, beta)

Legacy inverse gamma distribution; replaced by GAMMA.INV.

  • =GAMMAINV(0.5,1,1)Returns the median of this gamma distribution
  • =GAMMAINV(0.9,1,1)Returns a higher value, closer to the tail

HYPGEOMDIST

Compatibility (Legacy)
=HYPGEOMDIST(sample_s, number_sample, population_s, number_pop)

Legacy hypergeometric distribution; replaced by HYPGEOM.DIST.

  • =HYPGEOMDIST(2,4,10,20)Returns the probability of 2 successes drawing 4 from a mixed pool
  • =HYPGEOMDIST(1,4,10,20)Returns the probability of exactly 1 success

LOGINV

Compatibility (Legacy)
=LOGINV(probability, mean, standard_dev)

Legacy inverse lognormal distribution; replaced by LOGNORM.INV.

  • =LOGINV(0.5,0,1)Returns 1, the median of this log-normal distribution
  • =LOGINV(0.1,0,1)Returns a value below the median

LOGNORMDIST

Compatibility (Legacy)
=LOGNORMDIST(x, mean, standard_dev)

Legacy lognormal cumulative distribution; replaced by LOGNORM.DIST.

  • =LOGNORMDIST(4,0,1)Returns the cumulative probability for a log-normal distribution
  • =LOGNORMDIST(1,0,1)Returns 0.5

MODE

Compatibility (Legacy)
=MODE(number1, [number2], ...)

Legacy most-frequent-value function; replaced by MODE.SNGL.

  • =MODE({1,2,2,3})Returns 2, the most frequent value
  • =MODE({5,5,7,9})Returns 5

NEGBINOMDIST

Compatibility (Legacy)
=NEGBINOMDIST(number_f, number_s, probability_s)

Legacy negative binomial distribution; replaced by NEGBINOM.DIST.

  • =NEGBINOMDIST(2,3,0.5)Returns the probability of 2 failures before the 3rd success
  • =NEGBINOMDIST(0,3,0.5)Returns the probability of no failures at all

NORMDIST

Compatibility (Legacy)
=NORMDIST(x, mean, standard_dev, cumulative)

Legacy normal distribution; replaced by NORM.DIST.

  • =NORMDIST(70,60,10,TRUE)Returns the probability of a value ≤70 in a mean-60, sd-10 distribution
  • =NORMDIST(60,60,10,FALSE)Returns the height of the bell curve at the mean

NORMINV

Compatibility (Legacy)
=NORMINV(probability, mean, standard_dev)

Legacy inverse normal distribution; replaced by NORM.INV.

  • =NORMINV(0.5,60,10)Returns 60, the value at the 50th percentile (the mean)
  • =NORMINV(0.975,0,1)Returns about 1.96

NORMSDIST

Compatibility (Legacy)
=NORMSDIST(z)

Legacy standard normal distribution; replaced by NORM.S.DIST.

  • =NORMSDIST(0)Returns 0.5, since 0 is the mean of the standard normal curve
  • =NORMSDIST(1.96)Returns about 0.975

NORMSINV

Compatibility (Legacy)
=NORMSINV(probability)

Legacy inverse standard normal distribution; replaced by NORM.S.INV.

  • =NORMSINV(0.5)Returns 0, the mean of the standard normal curve
  • =NORMSINV(0.975)Returns about 1.96

PERCENTILE

Compatibility (Legacy)
=PERCENTILE(array, k)

Legacy percentile function; replaced by PERCENTILE.INC.

  • =PERCENTILE({1,2,3,4,5},0.5)Returns 3, the median (50th percentile)
  • =PERCENTILE({1,2,3,4},0.25)Returns 1.75

PERCENTRANK

Compatibility (Legacy)
=PERCENTRANK(array, x, [significance])

Legacy percent rank function; replaced by PERCENTRANK.INC.

  • =PERCENTRANK({1,2,3,4,5},3)Returns 0.5, since 3 sits at the midpoint
  • =PERCENTRANK({1,2,3,4,5},5)Returns 1

POISSON

Compatibility (Legacy)
=POISSON(x, mean, cumulative)

Legacy Poisson distribution; replaced by POISSON.DIST.

  • =POISSON(2,3,FALSE)Returns the probability of exactly 2 events when 3 are expected
  • =POISSON(2,3,TRUE)Returns the cumulative probability of 2 or fewer events

QUARTILE

Compatibility (Legacy)
=QUARTILE(array, quart)

Legacy quartile function; replaced by QUARTILE.INC.

  • =QUARTILE({1,2,3,4,5},1)Returns 2, the first quartile
  • =QUARTILE({1,2,3,4,5},2)Returns 3, the median

RANK

Compatibility (Legacy)
=RANK(number, ref, [order])

Legacy ranking function; replaced by RANK.EQ.

  • =RANK(80,{95,80,70,60})Returns 2, since 80 is the 2nd highest
  • =RANK(60,{95,80,70,60},1)Returns 1, lowest when ascending

STDEV

Compatibility (Legacy)
=STDEV(number1, [number2], ...)

Legacy sample standard deviation; replaced by STDEV.S.

  • =STDEV({2,4,4,4,5,5,7,9})Returns about 2.14, the sample standard deviation
  • =STDEV({10,20,30})Returns 10

STDEVP

Compatibility (Legacy)
=STDEVP(number1, [number2], ...)

Legacy population standard deviation; replaced by STDEV.P.

  • =STDEVP({2,4,4,4,5,5,7,9})Returns 2, the population standard deviation
  • =STDEVP({10,20,30})Returns about 8.16

TDIST

Compatibility (Legacy)
=TDIST(x, deg_freedom, tails)

Legacy Student's t-distribution; replaced by T.DIST family.

  • =TDIST(2,10,1)Returns the one-tailed t-distribution probability
  • =TDIST(2,10,2)Returns the two-tailed probability

TINV

Compatibility (Legacy)
=TINV(probability, deg_freedom)

Legacy two-tailed inverse t-distribution; replaced by T.INV.2T.

  • =TINV(0.05,10)Returns the two-tailed 95% cutoff value
  • =TINV(0.1,20)Returns the two-tailed 90% cutoff

TTEST

Compatibility (Legacy)
=TTEST(array1, array2, tails, type)

Legacy t-test; replaced by T.TEST.

  • =TTEST({10,12,14},{9,15,21},2,2)Returns a p-value comparing the two samples' means
  • =TTEST({1,2,3},{1,2,3},2,1)Returns 1, since the samples are identical

VAR

Compatibility (Legacy)
=VAR(number1, [number2], ...)

Legacy sample variance; replaced by VAR.S.

  • =VAR({2,4,4,4,5,5,7,9})Returns about 4.57, the sample variance
  • =VAR({10,20,30})Returns 100

VARP

Compatibility (Legacy)
=VARP(number1, [number2], ...)

Legacy population variance; replaced by VAR.P.

  • =VARP({2,4,4,4,5,5,7,9})Returns 4, the population variance
  • =VARP({10,20,30})Returns about 66.67

WEIBULL

Compatibility (Legacy)
=WEIBULL(x, alpha, beta, cumulative)

Legacy Weibull distribution; replaced by WEIBULL.DIST.

  • =WEIBULL(2,1,1,TRUE)Returns the cumulative Weibull probability at x=2
  • =WEIBULL(1,1,1,TRUE)Returns about 0.632

ZTEST

Compatibility (Legacy)
=ZTEST(array, x, [sigma])

Legacy z-test; replaced by Z.TEST.

  • =ZTEST({1,2,3,4,5},3)Returns 0.5, testing against the sample's own mean
  • =ZTEST({1,2,3,4,5},1)Returns a small p-value, since 1 is far from the mean

FORECAST

Compatibility (Legacy)
=FORECAST(x, known_ys, known_xs)

Legacy linear forecast function; replaced by FORECAST.LINEAR.

  • =FORECAST(4,{2,4,6},{1,2,3})Returns 8, predicting the next point on the line
  • =FORECAST(5,{2,4,6},{1,2,3})Returns 10

Unlock the Full Searchable Database

You've already tried 15 formulas live above. Enter your details in the quick form to unlock all 505 Excel formulas below, organised by category and fully searchable.

Takes 15 seconds · one-time only

Excel Formulas: Frequently Asked Questions

Straight answers to the questions people most often ask about Excel formulas and functions.

What is an Excel formula?
An Excel formula is an expression that starts with an equals sign (=) and performs a calculation, comparison, or lookup on values in a worksheet. Formulas can reference cells directly (like =A1+A2) or call built-in Excel functions such as SUM, IF, or VLOOKUP to process data automatically.
What is the difference between an Excel formula and an Excel function?
A formula is any expression that starts with “=” and returns a value, for example =A1+A2. A function is a named, pre-built calculation — like SUM, VLOOKUP, or IF — that you can use inside a formula, for example =SUM(A1:A10). Every function is used within a formula, but not every formula uses a function.
What are the most commonly used Excel formulas?
The most widely used Excel formulas include SUM, AVERAGE, IF, VLOOKUP, XLOOKUP, INDEX/MATCH, COUNTIF, SUMIF, CONCATENATE/TEXTJOIN, and date functions like TODAY and DATEDIF. This guide includes live, editable calculators for 15 of these so you can test them with your own numbers.
How do I use VLOOKUP in Excel?
Use =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]). Enter the value you're searching for, the table range where the first column holds that value, the number of the column (counting from the left) you want returned, and FALSE for an exact match or TRUE for an approximate match. Try the live VLOOKUP calculator above to see it in action.
What is the syntax of the VLOOKUP formula?
The syntax is =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]). lookup_value is what you're searching for, table_array is the range containing your data, col_index_num is the column number to return (1 = first column), and range_lookup is FALSE for an exact match or TRUE for an approximate match.
What is the difference between VLOOKUP and XLOOKUP?
VLOOKUP can only search the leftmost column of a range and look to its right, defaults to approximate matching, and returns #N/A with no easy fallback. XLOOKUP can search in either direction, defaults to exact matching, and lets you specify a custom fallback value with if_not_found — making it more flexible for modern Excel (365/2021+) users.
How do I use SUMIFS with multiple criteria?
Use =SUMIFS(sum_range, criteria_range1, criteria1, criteria_range2, criteria2, ...). Unlike SUMIF, the range to total comes first, and you can add as many criteria_range/criteria pairs as you need — all conditions must be true for a row to be included. Try the live SUMIFS calculator above with two conditions.
How do I write a nested IF formula in Excel?
Place one IF function inside another, for example =IF(A1>=90,"A",IF(A1>=75,"B","C")). Each nested IF only runs if the previous condition was false, letting you test multiple ranges in sequence. For more than 2–3 conditions, the IFS function is usually easier to read.
How do I use IFERROR in Excel?
Wrap any formula that might fail with =IFERROR(formula, value_if_error). If the formula returns an error (like #DIV/0! or #N/A), Excel shows your fallback value instead; if it calculates successfully, Excel shows the normal result. Try the live IFERROR calculator above.
Why isn't my Excel formula working?
Common causes include: mismatched parentheses, text values not wrapped in quotes, a range reference that shifted after inserting/deleting rows, extra spaces in lookup values (fix with TRIM), or a criteria argument using the wrong wildcard/operator syntax. Checking the exact syntax panel on each formula card above is a fast way to spot the issue.
How can I learn Excel formulas as a beginner?
Start with the fundamentals — SUM, AVERAGE, IF, and basic cell references — before moving to lookups (VLOOKUP/XLOOKUP), conditional aggregation (SUMIF/COUNTIF), and text cleanup (TRIM/PROPER). Practising with real, editable examples like the calculators above builds intuition faster than reading syntax alone.
How are Excel formulas used in Data Science and Analytics?
Excel formulas are typically the first tool analysts use to explore, clean, and summarise raw data — lookups (VLOOKUP/XLOOKUP), conditional aggregation (SUMIFS/COUNTIFS), and pivot-adjacent logic often run before the same data is analysed further in SQL, Python, or Power BI. Excel is covered as a foundation module in Imarticus Learning's Postgraduate Program in Data Science and Analytics with GenAI, before progressing to SQL, Python, machine learning, and GenAI tools.

Ready to Turn Excel Skills Into a Data Science Career?

Join the Postgraduate Program in Data Science and Analytics with GenAI — built on the same Excel foundations you just practised above.