Skip to content
Sheetwrite

Sheetwrite / Documentation

Formula function contract

Generated, source-linked formula names, signatures, semantics, dialect status, and unsupported boundaries.

Formula function contract

This page is generated from the checked version 1 sheetwrite.formula-capabilities inventory. It publishes 100 required-supported target functions and 54 incumbent functions (154 canonical functions total) without maintaining a second name list. Aliases are shown beside their canonical function.

A function's presence means only the signature and semantic profiles linked in its row. Microsoft Excel documentation supplies the naming/family taxonomy; it is not a blanket Excel claim. Google Sheets and OpenFormula behavior is unverified unless a dialect profile says otherwise.

Bounded evaluation contract

  • Parsing and dependency evaluation are each capped at 256 recursive levels. Range and matrix work is capped at 1,000,000 cells, 1,048,576 rows, 16,384 columns, and 64 MiB of value/intermediate storage; excess work returns an explicit formula error rather than truncating.
  • One dynamic-array recompute pass is capped at 2,000,000 cell operations. Spill installation is atomic and collision-checked; see the formula guide for admission rules.
  • LET permits at most 126 bindings and 16,384 expanded AST nodes. Bindings are lexical, shadow outer bindings, and are expanded lazily, so unused reads, errors, and volatility do not become dependencies.
  • Generated text is capped at 16 MiB and bounded searches at 4,000,000 steps. Text case conversion and parsing are Unicode-aware and host-locale independent; NUMBERVALUE defaults to . decimal and , grouping separators unless supplied explicitly.
  • IRR and RATE use deterministic root solving: 14 bracket steps, at most 100 solve steps, fixed 1e-12 convergence tolerances, and a finite search domain. Non-convergence or an invalid domain returns #NUM!.

No formula throughput or latency number is published here because this contract has no checked final formula-performance artifact. Use the performance evidence protocol to capture and validate measurements; limits above are implementation ceilings, not benchmark results.

Functions by family

Dynamic array

Taxonomy/source: Lookup and reference functions.

Function (aliases)ContractSignature profileSemantics profileDialect profileImplementation profile
FILTERincumbentfilterarrayexcel-documentedimplemented-assisted
SORTincumbentsortarrayexcel-documentedimplemented-assisted
UNIQUEincumbentuniquearrayexcel-documentedimplemented-assisted
TRANSPOSErequired targetarray-unaryarrayexcel-documentedimplemented-assisted
SEQUENCErequired targetsequencearrayexcel-documentedimplemented-assisted
TAKErequired targettake-droparrayexcel-documentedimplemented-assisted
DROPrequired targettake-droparrayexcel-documentedimplemented-assisted
CHOOSECOLSrequired targetchoose-axisarrayexcel-documentedimplemented-assisted
CHOOSEROWSrequired targetchoose-axisarrayexcel-documentedimplemented-assisted

Date and time

Taxonomy/source: Date and time functions.

Function (aliases)ContractSignature profileSemantics profileDialect profileImplementation profile
DATEincumbentdate-threedate-timeexcel-documentedimplemented-assisted
DATEVALUEincumbentunary-valuedate-timeexcel-documentedimplemented-assisted
DAYincumbentunary-numberdate-timeexcel-documentedimplemented-assisted
MONTHincumbentunary-numberdate-timeexcel-documentedimplemented-assisted
YEARincumbentunary-numberdate-timeexcel-documentedimplemented-assisted
TODAYincumbentzerovolatile-dateexcel-documentedimplemented-assisted
NOWincumbentzerovolatile-dateexcel-documentedimplemented-assisted
TIMErequired targetdate-threedate-timeexcel-documentedimplemented-assisted
TIMEVALUErequired targetunary-valuedate-timeexcel-documentedimplemented-assisted
HOURrequired targetunary-valuedate-timeexcel-documentedimplemented-assisted
MINUTErequired targetunary-valuedate-timeexcel-documentedimplemented-assisted
SECONDrequired targetunary-valuedate-timeexcel-documentedimplemented-assisted
DAYSrequired targetdate-pairdate-timeexcel-documentedimplemented-assisted
EDATErequired targetdate-offsetdate-timeexcel-documentedimplemented-assisted
EOMONTHrequired targetdate-offsetdate-timeexcel-documentedimplemented-assisted
WEEKDAYrequired targetweekday-weeknumdate-timeexcel-documentedimplemented-assisted
WEEKNUMrequired targetweekday-weeknumdate-timeexcel-documentedimplemented-assisted
WORKDAYrequired targetworkdaydate-timeexcel-documentedimplemented-assisted
NETWORKDAYSrequired targetnetworkdaysdate-timeexcel-documentedimplemented-assisted
YEARFRACrequired targetyearfrac-days360date-timeexcel-documentedimplemented-assisted
DAYS360required targetyearfrac-days360date-timeexcel-documentedimplemented-assisted

Financial

Taxonomy/source: Financial functions.

Function (aliases)ContractSignature profileSemantics profileDialect profileImplementation profile
PVrequired targetpv-fv-pmtfinancialexcel-documentedimplemented-assisted
FVrequired targetpv-fv-pmtfinancialexcel-documentedimplemented-assisted
PMTrequired targetpv-fv-pmtfinancialexcel-documentedimplemented-assisted
NPVrequired targetnpvfinancialexcel-documentedimplemented-assisted
IRRrequired targetirrfinancial-iterativeexcel-documentedimplemented-assisted
RATErequired targetratefinancial-iterativeexcel-documentedimplemented-assisted
IPMTrequired targetperiod-paymentfinancialexcel-documentedimplemented-assisted
PPMTrequired targetperiod-paymentfinancialexcel-documentedimplemented-assisted

Information and error

Taxonomy/source: Information functions.

Function (aliases)ContractSignature profileSemantics profileDialect profileImplementation profile
IFERRORincumbentif-errorlazy-controlexcel-documentedimplemented-assisted
IFNArequired targetif-errorlazy-controlexcel-documentedimplemented-assisted
ISBLANKrequired targetunary-valueinformationexcel-documentedimplemented-assisted
ISNUMBERrequired targetunary-valueinformationexcel-documentedimplemented-assisted
ISTEXTrequired targetunary-valueinformationexcel-documentedimplemented-assisted
ISLOGICALrequired targetunary-valueinformationexcel-documentedimplemented-assisted
ISERRORrequired targetunary-valueinformationexcel-documentedimplemented-assisted
ISERRrequired targetunary-valueinformationexcel-documentedimplemented-assisted
ISNArequired targetunary-valueinformationexcel-documentedimplemented-assisted
TYPErequired targetunary-valueinformationexcel-documentedimplemented-assisted
Nrequired targetunary-valueinformationexcel-documentedimplemented-assisted
Trequired targetunary-valueinformationexcel-documentedimplemented-assisted
NAincumbentzeroinformationexcel-documentedimplemented-assisted

Logical and control flow

Taxonomy/source: Logical functions.

Function (aliases)ContractSignature profileSemantics profileDialect profileImplementation profile
IFincumbentiflazy-controlexcel-documentedimplemented-assisted
ANDincumbentlogical-variadiclogicalexcel-documentedimplemented-assisted
ORincumbentlogical-variadiclogicalexcel-documentedimplemented-assisted
NOTincumbentunary-valuelogicalexcel-documentedimplemented-assisted
IFSrequired targetifslazy-controlexcel-documentedimplemented-assisted
SWITCHrequired targetswitchlazy-controlexcel-documentedimplemented-assisted
XORrequired targetlogical-variadiclogicalexcel-documentedimplemented-assisted
TRUErequired targetzerologicalexcel-documentedimplemented-assisted
FALSErequired targetzerologicalexcel-documentedimplemented-assisted
LETrequired targetletlet-bindingexcel-documentedimplemented-assisted

Lookup and reference

Taxonomy/source: Lookup and reference functions.

Function (aliases)ContractSignature profileSemantics profileDialect profileImplementation profile
INDEXincumbentindexlookupexcel-documentedimplemented-assisted
MATCHincumbentmatchlookupexcel-documentedimplemented-assisted
VLOOKUPincumbenttable-lookuplookupexcel-documentedimplemented-assisted
HLOOKUPincumbenttable-lookuplookupexcel-documentedimplemented-assisted
XLOOKUPincumbentxlookuplookupexcel-documentedimplemented-assisted
XMATCHrequired targetxmatchlookupexcel-documentedimplemented-assisted
CHOOSErequired targetchooselookupexcel-documentedimplemented-assisted
ROWrequired targetoptional-referencelookupexcel-documentedimplemented-assisted
ROWSrequired targetunary-valuelookupexcel-documentedimplemented-assisted
COLUMNrequired targetoptional-referencelookupexcel-documentedimplemented-assisted
COLUMNSrequired targetunary-valuelookupexcel-documentedimplemented-assisted
ADDRESSrequired targetaddresslookupexcel-documentedimplemented-assisted

Math and trigonometry

Taxonomy/source: Math and trigonometry functions.

Function (aliases)ContractSignature profileSemantics profileDialect profileImplementation profile
SUMincumbentoptional-variadic-valuesaggregateexcel-documentedimplemented-assisted
ABSincumbentunary-numberscalarexcel-documentedimplemented-assisted
ROUNDincumbentroundscalarexcel-documentedimplemented-assisted
SQRTincumbentunary-numberscalarexcel-documentedimplemented-assisted
MODincumbentbinary-numberscalarexcel-documentedimplemented-assisted
POWincumbentbinary-numberscalarexcel-documentedparser-assisted-evaluator-declared
FLOORincumbentbinary-numberscalarexcel-documentedimplemented-assisted
CEILINGincumbentbinary-numberscalarexcel-documentedimplemented-assisted
INTincumbentunary-numberscalarexcel-documentedimplemented-assisted
TRUNCincumbenttruncscalarexcel-documentedimplemented-assisted
SIGNincumbentunary-numberscalarexcel-documentedimplemented-assisted
PIincumbentzeroscalarexcel-documentedimplemented-assisted
SUMIFincumbentsumifcriteriaexcel-documentedimplemented-assisted
SUMIFSincumbentsumifscriteriaexcel-documentedimplemented-assisted
PRODUCTrequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
SUMPRODUCTrequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
POWERrequired targetbinary-numberscalarexcel-documentedimplemented-assisted
EXPrequired targetunary-numberscalarexcel-documentedimplemented-assisted
LNrequired targetunary-numberscalarexcel-documentedimplemented-assisted
LOGrequired targetlogscalarexcel-documentedimplemented-assisted
LOG10required targetunary-numberscalarexcel-documentedimplemented-assisted
ROUNDUPrequired targetroundscalarexcel-documentedimplemented-assisted
ROUNDDOWNrequired targetroundscalarexcel-documentedimplemented-assisted
MROUNDrequired targetbinary-numberscalarexcel-documentedimplemented-assisted
EVENrequired targetunary-numberscalarexcel-documentedimplemented-assisted
ODDrequired targetunary-numberscalarexcel-documentedimplemented-assisted
QUOTIENTrequired targetbinary-numberscalarexcel-documentedimplemented-assisted
GCDrequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
LCMrequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
SUBTOTALrequired targetsubtotalaggregateexcel-documentedimplemented-assisted

Statistical

Taxonomy/source: Statistical functions.

Function (aliases)ContractSignature profileSemantics profileDialect profileImplementation profile
AVERAGE (AVG)incumbentoptional-variadic-valuesaggregateexcel-documentedimplemented-assisted
MINincumbentoptional-variadic-valuesaggregateexcel-documentedimplemented-assisted
MAXincumbentoptional-variadic-valuesaggregateexcel-documentedimplemented-assisted
COUNTincumbentoptional-variadic-valuesaggregateexcel-documentedimplemented-assisted
COUNTAincumbentoptional-variadic-valuesaggregateexcel-documentedimplemented-assisted
COUNTIFincumbentcriteria-onecriteriaexcel-documentedimplemented-assisted
COUNTIFSincumbentcriteria-manycriteriaexcel-documentedimplemented-assisted
AVERAGEIFincumbentsumifcriteriaexcel-documentedimplemented-assisted
AVERAGEIFSincumbentsumifscriteriaexcel-documentedimplemented-assisted
MEDIANrequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
MODE.SNGLrequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
LARGErequired targetvalue-kaggregateexcel-documentedimplemented-assisted
SMALLrequired targetvalue-kaggregateexcel-documentedimplemented-assisted
RANK.EQrequired targetrankaggregateexcel-documentedimplemented-assisted
PERCENTILE.INCrequired targetpercentileaggregateexcel-documentedimplemented-assisted
QUARTILE.INCrequired targetpercentileaggregateexcel-documentedimplemented-assisted
STDEV.Srequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
STDEV.Prequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
VAR.Srequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
VAR.Prequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
GEOMEANrequired targetvariadic-valuesaggregateexcel-documentedimplemented-assisted
CORRELrequired targetpair-arraysaggregateexcel-documentedimplemented-assisted
COVARIANCE.Srequired targetpair-arraysaggregateexcel-documentedimplemented-assisted
COVARIANCE.Prequired targetpair-arraysaggregateexcel-documentedimplemented-assisted
COUNTBLANKrequired targetunary-valueaggregateexcel-documentedimplemented-assisted
MAXIFSrequired targetsumifscriteriaexcel-documentedimplemented-assisted
MINIFSrequired targetsumifscriteriaexcel-documentedimplemented-assisted

Text

Taxonomy/source: Text functions.

Function (aliases)ContractSignature profileSemantics profileDialect profileImplementation profile
LENincumbentunary-valuetextexcel-documentedimplemented-assisted
LEFTincumbentleft-righttextexcel-documentedimplemented-assisted
RIGHTincumbentleft-righttextexcel-documentedimplemented-assisted
MIDincumbentmidtextexcel-documentedimplemented-assisted
CONCAT (CONCATENATE)incumbentvariadic-valuestextexcel-documentedimplemented-assisted
UPPERincumbentunary-valuetextexcel-documentedimplemented-assisted
LOWERincumbentunary-valuetextexcel-documentedimplemented-assisted
TRIMincumbentunary-valuetextexcel-documentedimplemented-assisted
TEXTincumbenttext-formattextexcel-documentedimplemented-assisted
EXACTincumbentbinary-numbertext-sensitiveexcel-documentedimplemented-assisted
TEXTJOINrequired targettext-jointextexcel-documentedimplemented-assisted
SUBSTITUTErequired targetsubstitutetext-sensitiveexcel-documentedimplemented-assisted
REPLACErequired targetreplacetext-sensitiveexcel-documentedimplemented-assisted
FINDrequired targetfind-searchtext-sensitiveexcel-documentedimplemented-assisted
SEARCHrequired targetfind-searchtext-searchexcel-documentedimplemented-assisted
VALUErequired targetunary-valuetextexcel-documentedimplemented-assisted
CLEANrequired targetunary-valuetextexcel-documentedimplemented-assisted
REPTrequired targetrepeat-texttextexcel-documentedimplemented-assisted
CHARrequired targetunary-numbertextexcel-documentedimplemented-assisted
CODErequired targetunary-valuetextexcel-documentedimplemented-assisted
UNICHARrequired targetunary-numbertextexcel-documentedimplemented-assisted
UNICODErequired targetunary-valuetextexcel-documentedimplemented-assisted
PROPERrequired targetunary-valuetextexcel-documentedimplemented-assisted
NUMBERVALUErequired targetnumber-valuetextexcel-documentedimplemented-assisted

Formula operators

Taxonomy/source: Types of operators.

Function (aliases)ContractSignature profileSemantics profileDialect profileImplementation profile

Signature profiles

Argument order, required/default state, accepted shapes, repetition, and return shape come directly from the inventory.

Signature: zero

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
none

Signature: unary-value

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
valueyesnonescalar, range, array, referenceonce

Signature: unary-number

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
numberyesnonescalar, referenceonce

Signature: binary-number

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
number1yesnonescalar, referenceonce
number2yesnonescalar, referenceonce

Signature: variadic-values

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
valueyesnonescalar, range, array, referenceone-or-more

Signature: optional-variadic-values

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
valuenononescalar, range, array, referencezero-or-more

Signature: logical-variadic

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
logicalyesnonescalar, range, array, referenceone-or-more

Signature: if

Return shape: contextual.

ArgumentRequiredDefaultAcceptsRepetition
logicalTestyesnonescalar, referenceonce
valueIfTruenotruescalar, range, array, referenceonce
valueIfFalsenofalsescalar, range, array, referenceonce

Signature: if-error

Return shape: contextual.

ArgumentRequiredDefaultAcceptsRepetition
valueyesnonescalar, range, array, referenceonce
valueIfErroryesnonescalar, range, array, referenceonce

Signature: ifs

Return shape: contextual.

ArgumentRequiredDefaultAcceptsRepetition
testAndValueyesnonescalar, range, array, referencepaired

Signature: switch

Return shape: contextual.

ArgumentRequiredDefaultAcceptsRepetition
expressionyesnonescalar, referenceonce
valueAndResultyesnonescalar, range, array, referencepaired
defaultValueno#N/Ascalar, range, array, referenceonce

Signature: let

Return shape: contextual.

ArgumentRequiredDefaultAcceptsRepetition
nameAndValueyesnonescalar, range, array, name, referencepaired
calculationyesnonescalar, range, array, name, referenceonce

Signature: round

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
numberyesnonescalar, referenceonce
digitsyesnonescalar, referenceonce

Signature: trunc

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
numberyesnonescalar, referenceonce
digitsno0scalar, referenceonce

Signature: log

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
numberyesnonescalar, referenceonce
baseno10scalar, referenceonce

Signature: subtotal

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
functionNumberyesnonescalar, referenceonce
referenceyesnonerange, array, referenceone-or-more

Signature: left-right

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
textyesnonescalar, referenceonce
countno1scalar, referenceonce

Signature: mid

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
textyesnonescalar, referenceonce
startyesnonescalar, referenceonce
countyesnonescalar, referenceonce

Signature: text-format

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
valueyesnonescalar, referenceonce
formatTextyesnonescalar, referenceonce

Signature: text-join

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
delimiteryesnonescalar, referenceonce
ignoreEmptyyesnonescalar, referenceonce
textyesnonescalar, range, array, referenceone-or-more

Signature: substitute

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
textyesnonescalar, referenceonce
oldTextyesnonescalar, referenceonce
newTextyesnonescalar, referenceonce
instancenoallscalar, referenceonce

Signature: replace

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
oldTextyesnonescalar, referenceonce
startyesnonescalar, referenceonce
countyesnonescalar, referenceonce
newTextyesnonescalar, referenceonce

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
findTextyesnonescalar, referenceonce
withinTextyesnonescalar, referenceonce
startno1scalar, referenceonce

Signature: repeat-text

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
textyesnonescalar, referenceonce
countyesnonescalar, referenceonce

Signature: number-value

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
textyesnonescalar, referenceonce
decimalSeparatorno.scalar, referenceonce
groupSeparatorno,scalar, referenceonce

Signature: date-three

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
part1yesnonescalar, referenceonce
part2yesnonescalar, referenceonce
part3yesnonescalar, referenceonce

Signature: date-pair

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
endDateyesnonescalar, referenceonce
startDateyesnonescalar, referenceonce

Signature: date-offset

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
startDateyesnonescalar, referenceonce
offsetyesnonescalar, referenceonce

Signature: weekday-weeknum

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
serialNumberyesnonescalar, referenceonce
returnTypeno1scalar, referenceonce

Signature: workday

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
startDateyesnonescalar, referenceonce
daysyesnonescalar, referenceonce
holidaysnononerange, array, referenceonce

Signature: networkdays

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
startDateyesnonescalar, referenceonce
endDateyesnonescalar, referenceonce
holidaysnononerange, array, referenceonce

Signature: yearfrac-days360

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
startDateyesnonescalar, referenceonce
endDateyesnonescalar, referenceonce
basisOrMethodno0scalar, referenceonce

Signature: value-k

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
arrayyesnonerange, array, referenceonce
kyesnonescalar, referenceonce

Signature: rank

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
numberyesnonescalar, referenceonce
referenceyesnonerange, array, referenceonce
orderno0scalar, referenceonce

Signature: percentile

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
arrayyesnonerange, array, referenceonce
fractionyesnonescalar, referenceonce

Signature: pair-arrays

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
array1yesnonerange, array, referenceonce
array2yesnonerange, array, referenceonce

Signature: criteria-one

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
rangeyesnonerange, array, referenceonce
criteriayesnonescalar, referenceonce

Signature: criteria-many

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
rangeAndCriteriayesnonescalar, range, array, referencepaired

Signature: sumif

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
rangeyesnonerange, array, referenceonce
criteriayesnonescalar, referenceonce
sumRangenorangerange, array, referenceonce

Signature: sumifs

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
sumRangeyesnonerange, array, referenceonce
rangeAndCriteriayesnonescalar, range, array, referencepaired

Signature: match

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
lookupValueyesnonescalar, referenceonce
lookupArrayyesnonerange, array, referenceonce
matchModeno1scalar, referenceonce

Signature: xmatch

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
lookupValueyesnonescalar, referenceonce
lookupArrayyesnonerange, array, referenceonce
matchModeno0scalar, referenceonce
searchModeno1scalar, referenceonce

Signature: index

Return shape: contextual.

ArgumentRequiredDefaultAcceptsRepetition
arrayyesnonerange, array, referenceonce
rowyesnonescalar, referenceonce
columnno1scalar, referenceonce

Signature: xlookup

Return shape: contextual.

ArgumentRequiredDefaultAcceptsRepetition
lookupValueyesnonescalar, referenceonce
lookupArrayyesnonerange, array, referenceonce
returnArrayyesnonerange, array, referenceonce
ifNotFoundno#N/Ascalar, referenceonce
matchModeno0scalar, referenceonce
searchModeno1scalar, referenceonce

Signature: table-lookup

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
lookupValueyesnonescalar, referenceonce
tableyesnonerange, array, referenceonce
indexyesnonescalar, referenceonce
approximatenotruescalar, referenceonce

Signature: filter

Return shape: array.

ArgumentRequiredDefaultAcceptsRepetition
arrayyesnonerange, array, referenceonce
includeyesnonerange, array, referenceonce
ifEmptyno#CALC!scalar, referenceonce

Signature: sort

Return shape: array.

ArgumentRequiredDefaultAcceptsRepetition
arrayyesnonerange, array, referenceonce
sortIndexno1scalar, referenceonce
sortOrderno1scalar, referenceonce
byColumnnofalsescalar, referenceonce

Signature: unique

Return shape: array.

ArgumentRequiredDefaultAcceptsRepetition
arrayyesnonerange, array, referenceonce
byColumnnofalsescalar, referenceonce
exactlyOncenofalsescalar, referenceonce

Signature: choose

Return shape: contextual.

ArgumentRequiredDefaultAcceptsRepetition
indexyesnonescalar, referenceonce
valueyesnonescalar, range, array, referenceone-or-more

Signature: optional-reference

Return shape: contextual.

ArgumentRequiredDefaultAcceptsRepetition
referencenoformula-cellrange, array, referenceonce

Signature: address

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
rowyesnonescalar, referenceonce
columnyesnonescalar, referenceonce
absNumberno1scalar, referenceonce
a1notruescalar, referenceonce
sheetTextnononescalar, referenceonce

Signature: array-unary

Return shape: array.

ArgumentRequiredDefaultAcceptsRepetition
arrayyesnonerange, array, referenceonce

Signature: sequence

Return shape: array.

ArgumentRequiredDefaultAcceptsRepetition
rowsyesnonescalar, referenceonce
columnsno1scalar, referenceonce
startno1scalar, referenceonce
stepno1scalar, referenceonce

Signature: take-drop

Return shape: array.

ArgumentRequiredDefaultAcceptsRepetition
arrayyesnonerange, array, referenceonce
rowsyesnonescalar, referenceonce
columnsnoallscalar, referenceonce

Signature: choose-axis

Return shape: array.

ArgumentRequiredDefaultAcceptsRepetition
arrayyesnonerange, array, referenceonce
indexyesnonescalar, array, referenceone-or-more

Signature: pv-fv-pmt

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
rateyesnonescalar, referenceonce
nperyesnonescalar, referenceonce
paymentOrPresentValueyesnonescalar, referenceonce
futureValueno0scalar, referenceonce
typeno0scalar, referenceonce

Signature: npv

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
rateyesnonescalar, referenceonce
valueyesnonescalar, range, array, referenceone-or-more

Signature: irr

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
valuesyesnonerange, array, referenceonce
guessno0.1scalar, referenceonce

Signature: rate

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
nperyesnonescalar, referenceonce
paymentyesnonescalar, referenceonce
presentValueyesnonescalar, referenceonce
futureValueno0scalar, referenceonce
typeno0scalar, referenceonce
guessno0.1scalar, referenceonce

Signature: period-payment

Return shape: scalar.

ArgumentRequiredDefaultAcceptsRepetition
rateyesnonescalar, referenceonce
periodyesnonescalar, referenceonce
nperyesnonescalar, referenceonce
presentValueyesnonescalar, referenceonce
futureValueno0scalar, referenceonce
typeno0scalar, referenceonce

Semantic profiles

These values are normative for the listed Sheetwrite subset. function-defined and contextual are explicit limitations: consult the formula guide's function-specific sections rather than assuming another spreadsheet's edge behavior.

Semantics: scalar

DimensionContract
shapescalar: accepted
range: contextual
array: contextual
broadcast: function-defined
result: scalar
coercionblank: zero
text: number-if-parseable
boolean: number
error: propagate
textcase: not-applicable
wildcard: not-applicable
environmentlocale: invariant
dateSystem: not-applicable
numerictolerance: binary64
domain: function-defined
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: aggregate

DimensionContract
shapescalar: accepted
range: accepted
array: accepted
broadcast: none
result: scalar
coercionblank: ignored
text: ignored-in-ranges
boolean: ignored-in-ranges
error: propagate
textcase: not-applicable
wildcard: not-applicable
environmentlocale: invariant
dateSystem: not-applicable
numerictolerance: binary64
domain: function-defined
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: information

DimensionContract
shapescalar: accepted
range: contextual
array: contextual
broadcast: function-defined
result: scalar
coercionblank: preserved
text: preserved
boolean: preserved
error: function-defined
textcase: not-applicable
wildcard: not-applicable
environmentlocale: invariant
dateSystem: not-applicable
numerictolerance: exact
domain: all-inputs
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: logical

DimensionContract
shapescalar: accepted
range: accepted
array: contextual
broadcast: function-defined
result: scalar
coercionblank: false
text: function-defined
boolean: preserved
error: propagate
textcase: insensitive
wildcard: literal
environmentlocale: invariant
dateSystem: not-applicable
numerictolerance: exact
domain: all-inputs
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: lazy-control

DimensionContract
shapescalar: accepted
range: contextual
array: contextual
broadcast: function-defined
result: contextual
coercionblank: function-defined
text: function-defined
boolean: function-defined
error: trap-selected
textcase: insensitive
wildcard: literal
environmentlocale: invariant
dateSystem: function-defined
numerictolerance: function-defined
domain: function-defined
iteration: kind: none
maximum: none
calculationdependencies: contextual
lazy: lazy-branches
spill: contextual
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: let-binding

DimensionContract
shapescalar: accepted
range: accepted
array: accepted
broadcast: function-defined
result: contextual
coercionblank: preserved
text: preserved
boolean: preserved
error: propagate
textcase: insensitive
wildcard: literal
environmentlocale: invariant
dateSystem: function-defined
numerictolerance: function-defined
domain: function-defined
iteration: kind: none
maximum: none
calculationdependencies: contextual
lazy: lazy-bindings
spill: contextual
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: text

DimensionContract
shapescalar: accepted
range: contextual
array: contextual
broadcast: function-defined
result: scalar
coercionblank: empty-text
text: preserved
boolean: preserved
error: propagate
textcase: function-defined
wildcard: literal
environmentlocale: function-defined
dateSystem: function-defined
numerictolerance: not-applicable
domain: function-defined
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: text-sensitive

DimensionContract
shapescalar: accepted
range: contextual
array: contextual
broadcast: function-defined
result: scalar
coercionblank: empty-text
text: preserved
boolean: preserved
error: propagate
textcase: sensitive
wildcard: literal
environmentlocale: invariant
dateSystem: not-applicable
numerictolerance: not-applicable
domain: function-defined
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit
DimensionContract
shapescalar: accepted
range: contextual
array: contextual
broadcast: function-defined
result: scalar
coercionblank: empty-text
text: preserved
boolean: preserved
error: propagate
textcase: insensitive
wildcard: supported
environmentlocale: invariant
dateSystem: not-applicable
numerictolerance: not-applicable
domain: function-defined
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: criteria

DimensionContract
shapescalar: accepted
range: accepted
array: accepted
broadcast: pairwise
result: scalar
coercionblank: function-defined
text: function-defined
boolean: function-defined
error: propagate
textcase: insensitive
wildcard: supported
environmentlocale: invariant
dateSystem: function-defined
numerictolerance: binary64
domain: function-defined
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: date-time

DimensionContract
shapescalar: accepted
range: contextual
array: contextual
broadcast: function-defined
result: scalar
coercionblank: zero
text: number-if-parseable
boolean: number
error: propagate
textcase: insensitive
wildcard: literal
environmentlocale: invariant
dateSystem: excel-1900
numerictolerance: binary64
domain: bounded
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: volatile-date

DimensionContract
shapescalar: accepted
range: rejected
array: rejected
broadcast: none
result: scalar
coercionblank: preserved
text: preserved
boolean: preserved
error: propagate
textcase: not-applicable
wildcard: not-applicable
environmentlocale: not-applicable
dateSystem: host-clock
numerictolerance: binary64
domain: bounded
iteration: kind: none
maximum: none
calculationdependencies: none
lazy: not-applicable
spill: scalar
fill: source-preserved
copy: source-preserved
structuralRewrite: source-preserved
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: lookup

DimensionContract
shapescalar: accepted
range: accepted
array: accepted
broadcast: function-defined
result: contextual
coercionblank: function-defined
text: function-defined
boolean: function-defined
error: propagate
textcase: insensitive
wildcard: function-defined
environmentlocale: invariant
dateSystem: function-defined
numerictolerance: exact
domain: function-defined
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: contextual
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: array

DimensionContract
shapescalar: contextual
range: accepted
array: accepted
broadcast: function-defined
result: array
coercionblank: preserved
text: preserved
boolean: preserved
error: propagate
textcase: function-defined
wildcard: function-defined
environmentlocale: invariant
dateSystem: function-defined
numerictolerance: function-defined
domain: bounded
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: array
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: financial

DimensionContract
shapescalar: accepted
range: contextual
array: contextual
broadcast: function-defined
result: scalar
coercionblank: zero
text: number-if-parseable
boolean: number
error: propagate
textcase: not-applicable
wildcard: not-applicable
environmentlocale: invariant
dateSystem: not-applicable
numerictolerance: binary64
domain: bounded
iteration: kind: none
maximum: none
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Semantics: financial-iterative

DimensionContract
shapescalar: accepted
range: accepted
array: accepted
broadcast: none
result: scalar
coercionblank: zero
text: number-if-parseable
boolean: number
error: propagate
textcase: not-applicable
wildcard: not-applicable
environmentlocale: invariant
dateSystem: not-applicable
numerictolerance: binary64
domain: bounded
iteration: kind: bounded
maximum: 100
calculationdependencies: tracked
lazy: eager
spill: scalar
fill: relative-reference-rewrite
copy: relative-reference-rewrite
structuralRewrite: ast-reference-rewrite
persistencesnapshot: formula-source
history: formula-source
collaboration: formula-source
xlsxSource: rewrite-on-structural-edit

Dialect profiles

Dialect: excel-documented

DialectStatus
Microsoft Exceldocumented
Google Sheetsunverified
OpenFormulaunverified

Limitations: Google Sheets and OpenFormula results require producer evidence before compatibility is claimed.

Implementation profiles

Implementation: implemented-assisted

LayerStatus and source/evidence
Parserimplemented
packages/wasm/src/calc.rs
Evaluatorimplemented
packages/wasm/src/eval/mod.rs
packages/wasm/src/eval/functions.rs
Formula assistimplemented
packages/core/src/formula-assist.ts
Evidencesource-linked
packages/wasm/src/tests.rs
packages/core/test/formula-assist.test.ts

Implementation: parser-assisted-evaluator-declared

LayerStatus and source/evidence
Parserimplemented
packages/wasm/src/calc.rs
Evaluatordeclared
Formula assistimplemented
packages/core/src/formula-assist.ts
Evidencesource-linked
packages/core/src/formula-assist.ts

Implementation: parser-declared-target

LayerStatus and source/evidence
Parserimplemented
packages/wasm/src/calc.rs
Evaluatordeclared
Formula assistmissing
packages/core/src/formula-assist.ts
Evidenceregistration-tested
scripts/formula-contract.test.ts

Unsupported categories

Unknown functions retain their source and evaluate to #NAME?; Sheetwrite does not silently execute a network, custom-code, or compatibility fallback.

CategoryScopeExamplesSourceEvidence
Volatile recalculation (volatile)Automatic volatility semantics beyond the existing clock functions are outside the supported contract.INDIRECT, OFFSET, RAND, RANDBETWEEN, RANDARRAYMath and trigonometry functionsscripts/formula-contract.test.ts
Network functions (network)Formula evaluation never performs network requests.ENCODEURL, FILTERXML, IMAGE, WEBSERVICEWeb functionsscripts/formula-contract.test.ts
External data functions (external)Functions that query external providers or live data connections are not evaluated.GOOGLEFINANCE, IMPORTDATA, IMPORTHTML, IMPORTXML, RTDAdd-in and Automation functionsscripts/formula-contract.test.ts
Database functions (database)D-prefixed database aggregation functions are not evaluated.DAVERAGE, DCOUNT, DGET, DSUM, DVARDatabase functionsscripts/formula-contract.test.ts
Cube functions (cube)OLAP cube members, sets, and values are not resolved.CUBEMEMBER, CUBESET, CUBEVALUECube functionsscripts/formula-contract.test.ts
LAMBDA and higher-order functions (lambda)User-defined lambdas and higher-order array execution are not evaluated.BYCOL, BYROW, LAMBDA, MAKEARRAY, MAP, REDUCE, SCANLogical functionsscripts/formula-contract.test.ts
Arbitrary external workbook references (external-workbook)References to arbitrary workbook files are not loaded or dereferenced.'[Book.xlsx]Sheet1'!A1Lookup and reference functionsscripts/formula-contract.test.ts

In particular, automatic volatile functions beyond the explicit host-clock barrier, network/external-data functions, arbitrary external workbook links, database functions, cube/OLAP functions, and LAMBDA/higher-order execution are unsupported. TODAY and NOW are the documented clock-function exception; LET is supported and is not a LAMBDA fallback.