Methodology

276 supported Excel functions

Every function the Basis engine compiles and evaluates from source. Each one is verified against Excel's cached values across 4,207 workbooks — a function that computes the wrong answer fails the corpus, not just a unit test.

Aggregates 36Logic 18Math & trig 50Statistical distributions 20Text 31Lookup & reference 11Date & time 22Financial 46Regression & forecasting 13Information 8Dynamic arrays 15Lambdas & higher-order 6

Aggregates

36
FunctionSignatureDescription
AGGREGATEfunction_num, options, ref1, …Aggregate with error/hidden-row skipping
AVERAGEnumber1, [number2], …Arithmetic mean of numeric values
AVERAGEIFrange, criteria, [avg_range]Average of cells meeting a criterion
AVERAGEIFSavg_range, crit_range1, crit1, …Average with multiple criteria pairs
COUNTvalue1, …Counts numeric cells (ignores errors)
COUNTAvalue1, …Counts non-empty cells
COUNTBLANKrangeCounts empty cells in a range
COUNTIFrange, criteriaCount cells meeting a criterion
COUNTIFScrit_range1, crit1, …Count with multiple criteria pairs
LARGEarray, kk-th largest value
MAXnumber1, …Largest numeric value
MAXIFSmax_range, crit_range1, crit1, …Largest value meeting criteria
MEDIANnumber1, …Middle value
MINnumber1, …Smallest numeric value
MINIFSmin_range, crit_range1, crit1, …Smallest value meeting criteria
PERCENTILEarray, kk-th percentile (inclusive)
PERCENTILE.EXCarray, kk-th percentile (exclusive, 0–1)
PERCENTILE.INCarray, kk-th percentile (inclusive, 0–1)
PRODUCTnumber1, …Multiplies its arguments
QUARTILEarray, quartQuartile value (0–4)
QUARTILE.EXCarray, quartQuartile (exclusive, 1–3)
QUARTILE.INCarray, quartQuartile (inclusive, 0–4)
RANKnumber, ref, [order]Rank of a value in a list
RANK.AVGnumber, ref, [order]Rank (ties get average rank)
RANK.EQnumber, ref, [order]Rank (ties get lowest rank)
SMALLarray, kk-th smallest value
STDEVnumber1, …Sample standard deviation
STDEVPnumber1, …Population standard deviation
SUBTOTALfunction_num, range, …Aggregate function by number; skips nested subtotals
SUMnumber1, [number2], …Adds its arguments; ranges skip text, errors propagate
SUMIFrange, criteria, [sum_range]Sum cells meeting a criterion
SUMIFSsum_range, crit_range1, crit1, …Sum with multiple criteria pairs
SUMPRODUCTarray1, [array2], …Sum of element-wise products
SUMSQnumber1, …Sum of squares
VARnumber1, …Sample variance
VARPnumber1, …Population variance

Logic

18
FunctionSignatureDescription
ANDlogical1, …TRUE if all are true
CHOOSEindex, value1, [value2], …Picks value by index
IFtest, value_if_true, [value_if_false]Conditional — untaken branch's errors are discarded
IFERRORvalue, value_if_errorFallback when value is an error
IFNAvalue, value_if_naFallback when value is #N/A
IFStest1, value1, [test2, value2], …First true condition wins
ISBLANKvalueTRUE for empty cells
ISERRvalueTRUE for any error except #N/A
ISERRORvalueTRUE for any error
ISLOGICALvalueTRUE for TRUE/FALSE
ISNAvalueTRUE for #N/A
ISNUMBERvalueTRUE for numbers
ISTEXTvalueTRUE for text
NA—The #N/A error value
NOTlogicalInverts a logical
ORlogical1, …TRUE if any is true
SWITCHexpression, value1, result1, …, [default]Matches expression to values
XORlogical1, …TRUE for an odd number of TRUEs

Math & trig

50
FunctionSignatureDescription
ABSnumberAbsolute value
ACOSnumberArccosine
ARABICtextRoman numeral to number
ASINnumberArcsine
ATANnumberArctangent
ATAN2x, yArctangent of y/x (Excel argument order)
BASEnumber, radix, [min_length]Number to text in given base
CEILINGnumber, significanceRound up to nearest multiple
CEILING.MATHnumber, [significance], [mode]Round up to nearest multiple
CEILING.PRECISEnumber, [significance]Round up to nearest multiple (sign-aware)
COMBINnumber, chosenCombinations without repetition
COMBINAnumber, chosenCombinations with repetition
COSangle_radCosine
DECIMALtext, radixText in given base to number
DEGREESradiansRadians to degrees
EVENnumberRound away from zero to even
EXPnumbere^number
FACTnumberFactorial
FACTDOUBLEnumberDouble factorial
FLOORnumber, significanceRound down to nearest multiple
FLOOR.MATHnumber, [significance], [mode]Round down to nearest multiple
FLOOR.PRECISEnumber, [significance]Round down to nearest multiple (sign-aware)
GCDnumber1, [number2], …Greatest common divisor
INTnumberRound down to integer (floor)
ISO.CEILINGnumber, [significance]Round up to nearest multiple (ISO)
LCMnumber1, [number2], …Least common multiple
LNnumberNatural log
LOGnumber, [base=10]Logarithm
LOG10numberBase-10 log
MODnumber, divisorRemainder — sign follows the divisor
MROUNDnumber, multipleRound to a multiple
MULTINOMIALnumber1, [number2], …Multinomial coefficient
NORM.DISTx, mean, sd, cumulativeNormal distribution (CDF or PDF)
ODDnumberRound away from zero to odd
PERMUTnumber, chosenPermutations
PI—3.14159…
POWERnumber, powernumber^power
QUOTIENTnumerator, denominatorInteger quotient
RADIANSdegreesDegrees to radians
RAND—Random number 0–1 (volatile)
RANDBETWEENbottom, topRandom integer in range (volatile)
ROMANnumber, [form]Number to Roman numeral text
ROUNDnumber, digitsRound half away from zero
ROUNDDOWNnumber, digitsRound toward zero
ROUNDUPnumber, digitsRound away from zero
SIGNnumber-1, 0, or 1
SINangle_radSine
SQRTnumberSquare root
TANangle_radTangent
TRUNCnumber, [digits]Truncate toward zero

Statistical distributions

20
FunctionSignatureDescription
BETA.DISTx, alpha, beta, cumulative, [A], [B]Beta distribution
BETA.INVprobability, alpha, beta, [A], [B]Inverse beta distribution
BINOM.DISTsuccesses, trials, prob, cumulativeBinomial distribution
CHISQ.DISTx, deg_freedom, cumulativeChi-squared distribution
CONFIDENCE.NORMalpha, sd, sizeNormal confidence interval half-width
CONFIDENCE.Talpha, sd, sizeStudent t confidence interval half-width
EXPON.DISTx, lambda, cumulativeExponential distribution
F.DISTx, deg1, deg2, cumulativeF distribution
GAMMAnumberGamma function
GAMMA.DISTx, alpha, beta, cumulativeGamma distribution
GAMMA.INVprobability, alpha, betaInverse gamma distribution
LOGNORM.DISTx, mean, sd, cumulativeLognormal distribution
LOGNORM.INVprobability, mean, sdInverse lognormal distribution
NORM.INVprobability, mean, sdInverse normal distribution
NORM.S.DISTz, cumulativeStandard normal distribution
NORM.S.INVprobabilityInverse standard normal distribution
POISSON.DISTx, mean, cumulativePoisson distribution
T.DISTx, deg_freedom, cumulativeStudent t distribution
T.INVprobability, deg_freedomInverse Student t (left-tail)
WEIBULL.DISTx, alpha, beta, cumulativeWeibull distribution

Text

31
FunctionSignatureDescription
ASCtextFull-width to half-width characters
BAHTTEXTnumberNumber to Thai Baht text
CHARnumberCharacter from code point
CLEANtextRemove non-printable characters
CODEtextCode point of first character
CONCATtext1, …Joins text (modern)
CONCATENATEtext1, [text2], …Joins text
DBCStextHalf-width to full-width characters
DOLLARnumber, [decimals]Format number as currency text
EXACTtext1, text2Case-sensitive equality
FINDfind_text, within_text, [start]Position of text (case-sensitive)
FIXEDnumber, [decimals], [no_commas]Format number as text with decimals
LEFTtext, [n=1]Leading characters
LENtextCharacter count
LOWERtextlowercase
MIDtext, start, nCharacters from the middle
NUMBERVALUEtext, [decimal_sep], [group_sep]Locale-aware text to number
PHONETICreferencePhonetic (furigana) text
PROPERtextTitle Case
REPLACEold_text, start, num_chars, new_textReplace characters by position
REPTtext, timesRepeat text n times
RIGHTtext, [n=1]Trailing characters
SEARCHfind_text, within_text, [start]Position of text (case-insensitive)
SUBSTITUTEtext, old_text, new_text, [instance]Replace occurrences of text
TEXTvalue, format_textFormat a number as text
TEXTJOINdelimiter, ignore_empty, text1, …Joins text with a delimiter
TRIMtextCollapse whitespace
UNICHARnumberUnicode character from code point
UNICODEtextUnicode code point of first character
UPPERtextUPPERCASE
VALUEtextText to number

Lookup & reference

11
FunctionSignatureDescription
ADDRESSrow, col, [abs_num], [a1], [sheet]Cell address as text
COLUMN[reference]Column number of a reference
HLOOKUPvalue, table, row_index, [approx]Horizontal lookup in first row
HYPERLINKurl, [friendly_name]Clickable hyperlink
INDEXrange, row, [col]Value at a position in a range
LOOKUPvalue, lookup_range, [result_range]Look up a value in a range
MATCHvalue, array, [type=1]Position of a value in an array
OFFSETreference, rows, cols, [height], [width]A reference shifted or resized from a base
ROW[reference]Row number of a reference
VLOOKUPvalue, table, col_index, [approx]Vertical lookup in first column
XLOOKUPvalue, lookup_array, return_array, [if_not_found]Modern exact-match lookup

Date & time

22
FunctionSignatureDescription
DATEyear, month, dayDate serial number
DATEDIFstart_date, end_date, unitDifference between dates in years, months, or days
DATEVALUEdate_textText to date serial
DAYserialDay of a date
DAYSend_date, start_dateDays between two dates
DAYS360start_date, end_date, [method]Days between dates (30/360 basis)
EDATEserial, monthsDate shifted by months
EOMONTHserial, monthsEnd of shifted month
HOURserialHour of a time (0–23)
MINUTEserialMinute of a time (0–59)
MONTHserialMonth of a date
NETWORKDAYSstart_date, end_date, [holidays]Working days between dates
NETWORKDAYS.INTLstart_date, end_date, [weekend], [holidays]Working days between dates (custom weekends)
NOW—Current date and time serial (volatile)
SECONDserialSecond of a time (0–59)
TIMEhour, minute, secondTime serial number
TODAY—Today's date serial (volatile)
WEEKDAYserial, [return_type]Day of the week (1–7)
WORKDAYstart_date, days, [holidays]Date offset by working days
WORKDAY.INTLstart_date, days, [weekend], [holidays]Date offset by working days (custom weekends)
YEARserialYear of a date
YEARFRACstart_date, end_date, [basis]Fraction of a year between dates

Financial

46
FunctionSignatureDescription
ACCRINTissue, first_interest, settlement, rate, par, frequency, [basis]Accrued interest (periodic)
ACCRINTMissue, settlement, rate, par, [basis]Accrued interest (maturity)
COUPDAYBSsettlement, maturity, frequency, [basis]Days from coupon start to settlement
COUPDAYSsettlement, maturity, frequency, [basis]Days in the coupon period
COUPDAYSNCsettlement, maturity, frequency, [basis]Days from settlement to next coupon
COUPNCDsettlement, maturity, frequency, [basis]Next coupon date after settlement
COUPNUMsettlement, maturity, frequency, [basis]Number of remaining coupons
COUPPCDsettlement, maturity, frequency, [basis]Previous coupon date before settlement
CUMIPMTrate, nper, pv, start, end, typeCumulative interest paid
CUMPRINCrate, nper, pv, start, end, typeCumulative principal paid
DBcost, salvage, life, period, [month]Declining-balance depreciation
DDBcost, salvage, life, period, [factor]Double-declining balance depreciation
DISCsettlement, maturity, pr, redemption, [basis]Discount rate of a security
DOLLARDEfractional_dollar, fractionFractional price to decimal
DOLLARFRdecimal_dollar, fractionDecimal price to fractional
DURATIONsettlement, maturity, coupon, yld, frequency, [basis]Macaulay duration
EFFECTnominal_rate, nperyEffective annual interest rate
FVrate, nper, pmt, [pv], [type]Future value
INTRATEsettlement, maturity, investment, redemption, [basis]Interest rate of a fully invested security
IPMTrate, per, nper, pv, [fv], [type]Interest portion of a payment
IRRvalues, [guess]Internal rate of return
MDURATIONsettlement, maturity, coupon, yld, frequency, [basis]Modified duration
MIRRvalues, finance_rate, reinvest_rateModified internal rate of return
NOMINALeffect_rate, nperyNominal annual interest rate
NPERrate, pmt, pv, [fv], [type]Number of periods
NPVrate, value1, …Net present value
ODDFPRICEsettlement, maturity, issue, first_coupon, rate, yld, redemption, frequency, [basis]Price with odd first period
ODDLPRICEsettlement, maturity, last_interest, rate, yld, redemption, frequency, [basis]Price with odd last period
PMTrate, nper, pv, [fv], [type]Loan payment
PPMTrate, per, nper, pv, [fv], [type]Principal portion of a payment
PRICEsettlement, maturity, rate, yld, redemption, frequency, [basis]Bond price per $100 face value
PRICEDISCsettlement, maturity, discount, redemption, [basis]Price of a discounted security
PRICEMATsettlement, maturity, issue, rate, yld, [basis]Price of a security paid at maturity
PVrate, nper, pmt, [fv], [type]Present value
RATEnper, pmt, pv, [fv], [type], [guess]Interest rate per period
RECEIVEDsettlement, maturity, investment, discount, [basis]Amount received at maturity
SLNcost, salvage, lifeStraight-line depreciation
SYDcost, salvage, life, perSum-of-years-digits depreciation
TBILLEQsettlement, maturity, discountT-bill bond-equivalent yield
TBILLPRICEsettlement, maturity, discountT-bill price per $100
TBILLYIELDsettlement, maturity, prT-bill yield
XIRRvalues, dates, [guess]IRR for irregular cash-flow dates
XNPVrate, values, datesNPV for irregular cash-flow dates
YIELDsettlement, maturity, rate, pr, redemption, frequency, [basis]Bond yield
YIELDDISCsettlement, maturity, pr, redemption, [basis]Discounted security yield
YIELDMATsettlement, maturity, issue, rate, pr, [basis]Security yield paid at maturity

Regression & forecasting

13
FunctionSignatureDescription
CORRELarray1, array2Correlation coefficient
COVARIANCE.Parray1, array2Population covariance
COVARIANCE.Sarray1, array2Sample covariance
FORECASTx, known_y's, known_x'sPredicted value (linear regression)
FORECAST.LINEARx, known_y's, known_x'sPredicted value (linear regression)
GROWTHknown_y's, [known_x's], [new_x's], [const]Exponential growth prediction
INTERCEPTknown_y's, known_x'sY-intercept of linear regression
LINESTknown_y's, [known_x's], [const], [stats]Linear regression statistics
LOGESTknown_y's, [known_x's], [const], [stats]Exponential regression statistics
RSQknown_y's, known_x'sR-squared of linear regression
SLOPEknown_y's, known_x'sSlope of linear regression
STEYXknown_y's, known_x'sStandard error of regression
TRENDknown_y's, [known_x's], [new_x's], [const]Linear trend prediction

Information

8
FunctionSignatureDescription
CELLinfo_type, [reference]Information about a cell
FORMULATEXTreferenceFormula as text
INFOtype_textEnvironment information
NvalueValue converted to number
SHEET[value]Sheet number of a reference
SHEETS[reference]Number of sheets
TvalueText if text, else empty
TYPEvalueType number of a value

Dynamic arrays

15
FunctionSignatureDescription
CHOOSECOLSarray, col1, [col2], …Spills selected columns
CHOOSEROWSarray, row1, [row2], …Spills selected rows
DROParray, rows, [cols]Spills array minus leading/trailing rows or columns
EXPANDarray, rows, [cols], [pad]Spills array padded to size
FILTERarray, include, [if_empty]Spills rows where include is TRUE
HSTACKarray1, [array2], …Spills arrays stacked horizontally
SEQUENCErows, [cols], [start], [step]Spills a sequence of numbers
SORTarray, [sort_index], [order]Spills array sorted
TAKEarray, rows, [cols]Spills leading/trailing rows or columns
TOCOLarray, [ignore], [scan_by_column]Spills array as single column
TOROWarray, [ignore], [scan_by_column]Spills array as single row
UNIQUEarray, [by_col], [exactly_once]Spills distinct values in first-seen order
VSTACKarray1, [array2], …Spills arrays stacked vertically
WRAPCOLSvector, wrap_count, [pad]Spills vector wrapped into columns
WRAPROWSvector, wrap_count, [pad]Spills vector wrapped into rows

Lambdas & higher-order

6
FunctionSignatureDescription
BYCOLarray, lambdaApplies a LAMBDA to each column
BYROWarray, lambdaApplies a LAMBDA to each row
LAMBDAparam1, [param2], …, calculationA reusable function value
LETname1, value1, …, calculationNames a value for reuse inside one formula
MAParray, [array2], …, lambdaApplies a LAMBDA to each element
REDUCEinitial, array, lambdaAccumulates across every element