There are 122 built-in functions. Names and arguments follow Excel.
An unregistered function name produces #NAME?. You can add your own
(Custom Functions).
Math and trigonometry
| Basic | ABS SIGN INT TRUNC MOD POWER EXP SQRT PI |
| Logarithms | LN LOG LOG10 |
| Rounding | ROUND ROUNDUP ROUNDDOWN CEILING FLOOR MROUND |
| Trigonometry | SIN COS TAN ASIN ACOS ATAN ATAN2 DEGREES RADIANS |
| Aggregation | SUM SUMIF SUMIFS SUMPRODUCT SUMSQ PRODUCT |
| Random | RAND RANDBETWEEN |
Statistics
| Central tendency | AVERAGE AVERAGEIF AVERAGEIFS MEDIAN MAX MIN |
| Counting | COUNT COUNTA COUNTBLANK COUNTIF COUNTIFS |
| Rank | LARGE SMALL RANK |
| Dispersion | STDEV STDEVP VAR VARP |
Logic
IF IFS IFERROR IFNA AND OR NOT XOR SWITCH TRUE FALSE
Text
| Extraction | LEFT RIGHT MID LEN |
| Searching | FIND SEARCH EXACT |
| Conversion | UPPER LOWER PROPER TRIM VALUE TEXT N |
| Joining and replacing | CONCAT CONCATENATE TEXTJOIN REPLACE SUBSTITUTE REPT |
| Character codes | CHAR CODE |
FIND is case-sensitive and SEARCH is not (as in Excel).
Information
ISBLANK ISERR ISERROR ISNA ISNUMBER ISTEXT ISNONTEXT ISLOGICAL
ISEVEN ISODD NA
Lookup and reference
VLOOKUP HLOOKUP INDEX MATCH OFFSET CHOOSE ROW ROWS COLUMN COLUMNS
Functions that return a reference — ROW, COLUMN, OFFSET and the like — read their
arguments’ syntax tree directly, evaluating lazily. That is what lets OFFSET(A1, 1, 0)
return a reference itself.
Date and time
| Now | TODAY NOW |
| Constructing | DATE TIME DATEVALUE |
| Extracting | YEAR MONTH DAY HOUR MINUTE SECOND WEEKDAY |
| Arithmetic | DAYS EDATE EOMONTH |
Dates are held as OLE Automation serial numbers. Both 1900-based and 1904-based xlsx files can be read.
Criteria strings (the SUMIF family)
SUMIF, COUNTIF, AVERAGEIF and their multi-criteria versions accept the same criteria
strings as Excel.
| Criteria | Meaning |
|---|---|
">100" | greater than 100 |
"<=0" | 0 or less |
"<>" | not empty |
"apple" | exact match (case-insensitive) |
"ap*" | wildcards (* is zero or more characters, ? is exactly one) |
Error propagation
When any argument is an error, that error is generally what comes back. The exceptions are
IFERROR, IFNA, ISERROR, ISERR and ISNA, whose job is to receive one.
Differences from Excel
- Localized function names are not supported. Japanese names such as
合計do not work JIS/ASC/DBCS/PHONETICare not implemented.PHONETICpresupposes a way to attach furigana to a cell, so it is not implemented on its own- Dynamic-array functions are not implemented —
FILTERSORTUNIQUESEQUENCELETLAMBDA
Listing what is registered
foreach (string name in unvell.ReoGrid.Core.Formula.FunctionRegistry.Default.Names)
Console.WriteLine(name);
That list is always authoritative. Where it disagrees with this page, the implementation is right.