Excel Functions

Excel Functions List

Below you will find a searchable list of ~200 Excel Functions. Next to each function, you'll see a description of the function along with the function's syntax.

If you'd like to learn more about a function, simply click it's row and go to the function page. Each function page contains detailed instructions on how to use the function, including multiple examples.

We also recommend checking out our Formula Examples Page. This page contains 100 (and growing rapidly) formula examples for specific use-cases (ex. count all cells with positive numbers)

New Functions
XLOOKUPReplaces VLOOKUP, HLOOKUP, and INDEX / MATCHXLOOKUP(lookup_value,lookup_array,return_array,[match_mode],[search_mode])
ANDChecks whether all conditions are met. TRUE/FALSEAND(logical1,logical2)
IFIf condition is met, do something, if not, do something else.IF(logical_test,value_if_true,value_if_false)
IFERRORIf result is an error then do something else.IFERROR(VALUE,value_if_error)
NOTChanges TRUE to FALSE and FALSE to TRUE.NOT(logical)
ORChecks whether any conditions are met. TRUE/FALSEOR(logical1,logical2)
XORChecks whether one and only one condition is met. TRUE/FALSEXOR(logical1,logical2)
Lookup & Referenceyes
FALSEThe logical value: FALSE.FALSE
TRUEThe logical value: TRUE.TRUE
ADDRESSReturns a cell address as text.ADDRESS(row_num,column_num,abs_num,C1,sheet_text)
AREASReturns the number of areas in a reference.AREAS(reference)
CHOOSEChooses a value from a list based on it's position number.CHOOSE(index_num,value1,value2)
COLUMNReturns the column number of a cell reference.COLUMN(reference)
COLUMNSReturns the number of columns in an array.COLUMNS(array)
HLOOKUPLookup a value in the first row and return a value.HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)
HYPERLINKCreates a clickable link.HYPERLINK(link_location,friendly_name)
INDEXReturns a value based on it's column and row numbers.INDEX(array,row_num,column_num)
INDIRECTCreates a cell reference from text.INDIRECT(ref_text,C1)
LOOKUPLooks up values either horizontally or vertically.LOOKUP(lookup_value,lookup_vector,result_vector)
MATCHSearches for a value in a list and returns its position.MATCH(lookup_value,lookup_array,match_type)
OFFSETCreates a reference offset from a starting point.OFFSET(reference,rows,cols,height,width)
ROWReturns the row number of a cell reference.ROW(reference)
ROWSReturns the number of rows in an array.ROWS(array)
TRANSPOSEFlips the oriention of a range of cells.TRANSPOSE(array)
VLOOKUPLookup a value in the first column and return a value.VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Date & Timeyes
DATEReturns a date from year, month, and day.DATE(year,month,day)
DATEDIFNumber of days, months or years between two dates.DATEDIF
DATEVALUEConverts a date stored as text into a valid dateDATEVALUE(date_text)
DAYReturns the day as a number (1-31).DAY(serial_number)
DAYSReturns the number of days between two dates.DAYS(end_date,start_date)
DAYS360Returns days between 2 dates in a 360 day year.DAYS360(start_date,end_date,method)
EDATEReturns a date, n months away from a start date.EDATE(start_date,months)
EOMONTHReturns the last day of the month, n months away date.EOMONTH(start_date,months)
HOURReturns the hour as a number (0-23).HOUR(serial_number)
MINUTEReturns the minute as a number (0-59).MINUTE(serial_number)
MONTHReturns the month as a number (1-12).MONTH(serial_number)
NETWORKDAYSNumber of working days between 2 dates.NETWORKDAYS(start_date,end_date,holidays)
NETWORKDAYS.INTLWorking days between 2 dates, custom weekends. NETWORKDAYS.INTL(start_date,end_date,weekend,holidays)
NOWReturns the current date and time.NOW()
SECONDReturns the second as a number (0-59)SECOND(serial_number)
TIMEReturns the time from a hour, minute, and second.TIME(hour,minute,second)
TIMEVALUEConverts a time stored as text into a valid time.TIMEVALUE(time_text)
TODAYReturns the current date.TODAY()
WEEKDAYReturns the day of the week as a number (1-7).WEEKDAY(serial_number,return_type)
WEEKNUMReturns the week number in a year (1-52).WEEKNUM(serial_number,return_type)
WORKDAYThe date n working days from a date.WORKDAY(start_date,days,holidays)
WORKDAY.INTLThe date n working days from a date, custom weekends.WORKDAY.INTL(start_date,days,weekend,holidays)
YEARReturns the year.YEAR(serial_number)
YEARFRACReturns the fraction of a year between 2 dates.YEARFRAC(start_date,end_date,basis)
CONVERTConvert number from one unit to another.CONVERT(number,from_unit,to_unit)
FVCalculates the future value.FV(rate,nper,pmt,pv,type)
PVCalculates the present value.PV(rate,nper,pmt,fv,type)
NPERCalculates the total number of payment periods.NPER(rate,pmt,pv,fv,type)
PMTCalculates the payment amount.PMT(rate,nper,pv,fv,type)
RATECalculates the interest Rate.RATE(nper,pmt,pv,fv,type,guess)
NPVCalculates the net present value.NPV(rate,value1,value2)
IRRThe internal rate of return for a set of periodic CFs.IRR(values,guess)
XIRRThe internal rate of return for a set of non-periodic CFs.XIRR(values,dates,guess)
PRICECalculates the price of a bond.PRICE(settlement,maturity,rate,yld,redemption,FREQUENCY,basis)
YIELDCalculates the bond yield.YIELD(settlement,maturity,rate,pr,redemption,FREQUENCY,basis)
INTRATEThe interest rate of a fully invested security.INTRATE(settlement,maturity,investment,redemption,basis)
CELLReturns information about a cell.CELL(info_type,reference)
ERROR.TYPEReturns a value representing the cell error.ERROR.TYPE(error_val)
ISERRTest if cell value is an error, ignores #N/A. TRUE/FALSEISERR(VALUE)
ISERRORTest if cell value is an error. TRUE/FALSEISERROR(VALUE)
ISEVENTest if cell value is even. TRUE/FALSEISEVEN(number)
ISFORMULATest if cell is a formula. TRUE/FALSEISFORMULA(reference)
ISNATest if cell value is #N/A. TRUE/FALSEISNA(VALUE)
ISNONTEXTTest if cell is not text (blank cells are not text). TRUE/FALSEISNONTEXT(VALUE)
ISODDTest if cell value is odd. TRUE/FALSEISODD(number)
ISREFTest if cell value is a reference. TRUE/FALSEISREF(VALUE)
NConverts a value to a number.N(VALUE)
NAReturns the error: #N/A.NA()
TYPEReturns the type of value in a cell.TYPE(VALUE)
ABSCalculates the absolute value of a number.ABS(number)
AGGREGATEDefine and perform calculations for a database or a list.AGGREGATE(function_num,options,array,k)
CEILINGRounds a number up, to the nearest specified multiple.CEILING(number,significance)
COSReturns the cosine of an angle.COS(number)
DEGREESConverts radians to degrees.DEGREES(angle)
DSUMSums database records that meet certain criteria.DSUM(database,field,criteria)
EVENRounds to the nearest even integer.EVEN(number)
EXPCalculates the exponential value for a given number.EXP(number)
FACTReturns the factorial.FACT(number)
FLOORRounds a number down, to the nearest specified multiple.FLOOR(number,significance)
GCDReturns the greatest common divisor.GCD(number1,number2)
INTRounds a number down to the nearest integer.INT(number)
LCMReturns the least common multiple.LCM(number1,number2)
LNReturns the natural logarithm of a number.LN(number)
LOGReturns the logarithm of a number to a specified base.LOG(number,base)
LOG10Returns the base-10 logarithm of a number.LOG10(number)
MODReturns the remainder after dividing.MOD(number,divisor)
MROUNDRounds a number to a specified multiple.MROUND(number,multiple)
ODDRounds to the nearest odd integer.ODD(number)
PIThe value of PI.PI()
POWERCalculates a number raised to a power.POWER(number,power)
PRODUCTMultiplies an array of numbers.PRODUCT(number1,number2)
QUOTIENTReturns the integer result of division.QUOTIENT(numerator,denominator)
RADIANSConverts an angle into radians.RADIANS(angle)
RANDCalculates a random number between 0 and 1.RAND()
RANDBETWEENCalculates a random number between two numbers.RANDBETWEEN(bottom,top)
ROUNDRounds a number to a specified number of digits.ROUND(number,num_digits)
ROUNDDOWNRounds a number down (towards zero).ROUNDDOWN(number,num_digits)
ROUNDUPRounds a number up (away from zero).ROUNDUP(number,num_digits)
SIGNReturns the sign of a number.SIGN(number)
SINReturns the sine of an angle.SIN(number)
SQRTCalculates the square root of a number.SQRT(number)
SUBTOTALReturns a summary statistic for a series of data.SUBTOTAL(function_num,REH1)
SUMAdds numbers together.SUM(number1,number2)
SUMIFSums numbers that meet a criteria.SUMIF(range,criteria,sum_range)
SUMIFSSums numbers that meet multiple criteria.SUMIFS(sum_range,criteria_range,criteria)
SUMPRODUCTMultiplies arrays of numbers and sums the resultant array.SUMPRODUCT(array1,array2,array3)
TANReturns the tangent of an angle.TAN(number)
TRUNCTruncates a number to a specific number of digits.TRUNC(number,num_digits)
AVERAGEAverages numbers.AVERAGE(number1,number2)
AVERAGEAAverages numbers. Includes text & FALSE =0, TRUE =1.AVERAGEA(value1,value2)
AVERAGEIFAverages numbers that meet a criteria.AVERAGEIF(range,criteria,average_range)
AVERAGEIFSAverages numbers that meet multiple criteria.AVERAGEIFS(average_range,criteria_range,criteria)
CORRELCalculates the correlation of two series.CORREL(array1,array2)
COUNTCounts cells that contain a number.COUNT(value1,value2)
COUNTACount cells that are non-blank.COUNTA(value1,value2)
COUNTBLANKCounts cells that are blank.COUNTBLANK(range)
COUNTIFCounts cells that meet a criteria.COUNTIF(range,criteria)
COUNTIFSCounts cells that meet multiple criteria.COUNTIFS(criteria_range,criteria)
FORECASTPredict future y-values from linear trend line.FORECAST(x,known_y's,known_x's)
FREQUENCYCounts values that fall within specified ranges.FREQUENCY(data_array,bins_array)
GROWTHCalculates Y values based on exponential growth.GROWTH(known_ys,known_x,new_x,const)
INTERCEPTCalculates the Y intercept for a best-fit line.INTERCEPT(known_ys,known_xs)
LARGEReturns the kth largest value.LARGE(array,k)
LINESTReturns statistics about a trendline.LINEST(known_ys,known_xs,const,stats)
MAXReturns the largest number.MAX(number1,number2)
MEDIANReturns the median number.MEDIAN(number1,number2)
MINReturns the smallest number.MIN(number1,number2)
MODEReturns the most common number.MODE(number1,number2)
PERCENTILEReturns the kth percentile.PERCENTILE(array,k)
PERCENTILE.INCReturns the kth percentile. Where k is inclusive.PERCENTILE.INC(array,k)
PERCENTILE.EXCReturns the kth percentile. Where k is exclusive.PERCENTILE.EXC(array,k)
QUARTILEReturns the specified quartile value.QUARTILE(array,quart)
QUARTILE.INCReturns the specified quartile value. Inclusive.QUARTILE.INC(array,quart)
QUARTILE.EXCReturns the specified quartile value. Exclusive.QUARTILE.EXC(array,quart)
RANKRank of a number within a series.RANK(number,ref,order)
RANK.AVGRank of a number within a series. Averages.RANK.AVG(number,ref,order)
RANK.EQRank of a number within a series. Top Rank.RANK.EQ(number,ref,order)
SLOPECalculates the slope from linear regression.SLOPE(known_ys,known_xs)
SMALLReturns the kth smallest value.SMALL(array,k)
STDEVCalculates the standard deviation.STDEV(number1,number2)
STDEV.PCalculates the SD of an entire population.STDEV.P(number1,number2)
STDEV.SCalculates the SD of a sample.STDEV.S(number1,number2)
STDEVPCalculates the SD of an entire populationSTDEVP(number1,number2)
TRENDCalculates Y values based on a trendline.TREND(known_ys,known_xs,new_xs,const)
CHARReturns a character specified by a code.CHAR(number)
CLEANRemoves all non-printable characters.CLEAN(text)
CODEReturns the numeric code for a character.CODE(text)
CONCATENATECombines text together.CONCATENATE(text1,text2)
DOLLARConverts a number to text in currency format.DOLLAR(number,decimals)
EXACTTest if cells are exactly equal. Case-sensitive. TRUE/FALSEEXACT(text1,text2)
FINDLocates position of text within a cell.Case-sensitive.FIND(find_text,within_text,start_num)
LEFTTruncates text a number of characters from the left.LEFT(text,num_chars)
LENCounts number of characters in text.LEN(text)
LOWERConverts text to lower case.LOWER(text)
MIDExtracts text from the middle of a cell.MID(text,start_num,num_chars)
PROPERConverts text to proper case.PROPER(text)
REPLACEReplaces text based on it's location.REPLACE(old_text,start_num,num_chars,new_text)
REPTRepeats text a number of times.REPT(text,number_times)
RIGHTTruncates text a number of characters from the right.RIGHT(text,num_chars)
SEARCHLocates position of text within a cell.Not Case-sensitive.SEARCH(find_text,within_text,start_num)
SUBSTITUTEFinds and replaces text. Case-sensitive.SUBSTITUTE(text,old_text,new_text,instance_num)
TEXTConverts a value into text with a specific number format.TEXT(VALUE,format_text)
TRIMRemoves all extra spaces from text.TRIM(text)
UPPERConverts text to upper case.UPPER(text)
VALUEConverts a number stored as text into a number.VALUE(text)

Excel Function FAQs

What are functions in Excel?

In Excel, functions can be called to easily perform complex operations. For example the AVERAGE Function will average an array of numbers: =AVERAGE(A1:A10).

How do you use Functions in Excel?

To use functions in Excel, select a cell, and type "=" followed by the function name and "(". For example, type "=IF(" and you'll see the syntax appear for the IF Function.

You can also press the small fx button next to the formula bar. This will open up the Formula Wizard.

How many Excel functions are there?

There are approximately 500 Excel Functions. However, even Excel experts only use a fraction of the total number of Excel functions.

What is syntax in Excel?

Syntax in Excel refers to the required inputs for Excel Functions. For example, the VLOOKUP syntax is =VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup]).