# Release notes
This page lists HyperFormula release notes. The format is based on Keep a Changelog (opens new window).
HyperFormula adheres to Semantic Versioning (opens new window).
# 2.7.1
Release date: July 18, 2024
# Fixed
- Fixed an issue where adding or removing columns with
DenseStrategy
for address mapping resulted in theCannot read properties of undefined (reading 'splice')
error. #1406 (opens new window)
# 2.7.0
Release date: Apr 10, 2024
# Added
- Added method
getNamedExpressionsFromFormula
to extract named expressions from formulas. #1365 (opens new window) - Added
context
config option for passing data to custom functions. #1396 (opens new window)
# 2.6.2
Release date: Feb 15, 2024
# Changed
- Removed
unorm
dependency. #1370 (opens new window)
# 2.6.1
Release date: Dec 27, 2023
# Fixed
- Fixed an issue where operating on ranges of incompatible sizes resulted in a runtime exception. #1267 (opens new window)
- Fixed an issue where the
simpleCellAddressFromString()
method was crashing when called with a non-ASCII character in an unquoted sheet name. #1312 (opens new window) - Fixed an issue where adding a row to a very large spreadsheet resulted in the
Maximum call stack size exceeded
error. #1332 (opens new window) - Fixed an issue where using a column-range reference to an empty sheet as a function argument resulted in the
Incorrect array size
error. #1147 (opens new window) - Fixed an issue where the SUBSTITUTE function wasn't working correctly with regex special characters. #1289 (opens new window)
- Fixed a typo in the JSDoc comment of the
HyperFormula
class. #1323 (opens new window)
# 2.6.0
Release date: Sep 19, 2023
# Added
- Exported the
EmptyValue
symbol as a public API. This allows custom functions to handle empty cell values. #1232 (opens new window)
# Changed
- Improved the efficiency of the default date/time parsing methods. #876 (opens new window)
- Improved the efficiency of the operations on the dependency graph. #876 (opens new window)
# Fixed
- Fixed a bug where neighboring exported changes of an array formula were missing. #1291 (opens new window)
- Fixed a typo in the source code of the
MatrixPlugin
. #1306 (opens new window)
# 2.5.0
Release date: May 29, 2023
# Added
- Added a new function: ADDRESS. #1221 (opens new window)
- Added a new function: HYPERLINK. #1215 (opens new window)
- Added a new function: IFS. #1157 (opens new window)
# Changed
- Optimized the
updateConfig()
method to rebuild HyperFormula only when the new configuration is different from the old one. #1251 (opens new window)
# Fixed
- Fixed the SEARCH function to be case-insensitive regardless of HyperFormula's configuration. #1225 (opens new window)
# 2.4.0
Release date: April 24, 2023
# Added
- Exported the
CellError
class as a public API. #1232 (opens new window) - Exported the
SimpleRangeValue
class as a public API. #1178 (opens new window)
# Fixed
- Fixed an
EmptyCellVertex
data integrity issue between theAddressMapping
andDependencyGraph
objects. #1188 (opens new window) - Fixed a build issue with M1- and M2-chip MacBooks. #1166 (opens new window)
- Fixed an issue where the order of items returned by
removeColumns()
depended on the address mapping policy. #1205 (opens new window)
# 2.3.1
Release date: March 3, 2023
# Fixed
- Fixed an issue where named-expression names were not allowed to start with a cell reference. #1058 (opens new window)
- Fixed an issue where named-expression names were allowed to start with "R1C1"
cell references. For better compatibility with other spreadsheet software, strings such as
R4C5
,RC1000
,R1C
orRC
can't be used in named-expression names anymore. #1058 (opens new window) - Fixed an issue where using reversed ranges with absolute addressing could cause the
Incorrect array size
error. #1106 (opens new window) - Fixed an issue where removing a sheet (
removeSheet()
) without clearing it (clearSheet()
) could cause an error. #1121 (opens new window)
# 2.3.0
Release date: December 22, 2022
# Added
- Exported the
ArraySize
class as a public API. #843 (opens new window) - Renamed an internal interface from
ArgumentTypes
toFunctionArgumentType
, and exported it as a public API. #1108 (opens new window) - Exported
ImplementedFunctions
andFunctionMetadata
as public APIs. #1108 (opens new window)
# 2.2.0
Release date: November 17, 2022
# Added
- Added an American English (
enUS
) language pack. It's a convenience alias: it contains the same translations as the existing British English (enGB
) language pack. #1025 (opens new window)
# Fixed
- Fixed functions VLOOKUP and HLOOKUP to handle duplicates in the way specified by the OpenDocument (opens new window) standard. #1072 (opens new window)
- Fixed the MATCH function to handle descending ranges in the way specified by the OpenDocument (opens new window) standard. #1063 (opens new window)
# 2.1.0
Release date: September 8, 2022
# Added
- Added two new functions: MAXIFS and MINIFS. #1049 (opens new window)
# Changed
- Changed the rounding strategy of the default time-parsing function to be independent of
the
timeFormats
configuration option. Now, time values are always rounded to the nearest millisecond (0.001 s). #953 (opens new window)
# Fixed
- Fixed a rounding issue that caused the TEXT function to convert dates and times to strings incorrectly. #1043 (opens new window)
- Fixed an issue where functions SUMIF, SUMIFS, COUNTIF, COUNTIFS, and AVERAGEIF incorrectly handled complex numeric values. #951 (opens new window)
# Removed
- Removed all polyfills from the CommonJS build and the ES modules build. In the UMD build, kept only the polyfills required by the supported browsers (opens new window). #1011 (opens new window)
# 2.0.1
Release date: June 14, 2022
# Changed
- Changed the following npm scripts (used internally):
docs
,docs:api
,docs:dev
,docs:build
,coverage
,typings:check
. #977 (opens new window)
# Fixed
- Fixed an issue where it was impossible to add a custom function with no
parameters
. #968 (opens new window)
# 2.0.0
Release date: April 14, 2022
# Added
- Added support for reversed ranges. #834 (opens new window)
- Added a new configuration option,
ignoreWhiteSpace
, which allows for parsing formulas that contain whitespace characters of any kind. #898 (opens new window)
# Changed
- Breaking change: Removed the
gpu.js
dependency and its use, to speed up the installation time. #812 (opens new window) - Breaking change: Removed the deprecated
gpujs
andgpuMode
configuration options. #812 (opens new window)
# Fixed
- Fixed an issue where the RATE function didn't converge for some inputs. #905 (opens new window)
# 1.3.1
Release date: January 11, 2022
# Fixed
- Fixed an issue where warnings about deprecated configuration options were getting duplicated. #882 (opens new window)
# 1.3.0
Release date: October 20, 2021
# Added
- Added a new static property:
HyperFormula.defaultConfig
. #822 (opens new window) - The
getFillRangeData()
method can now use one sheet for its source and another sheet for its target. #836 (opens new window)
# Fixed
- Fixed the handling of Unicode characters and non-letter characters in the PROPER function. #811 (opens new window)
- Fixed unnecessary warnings caused by deprecated configuration options. #830 (opens new window)
- Fixed the SUMPRODUCT function. #810 (opens new window)
# 1.2.0
Release date: September 23, 2021
# Changed
- Removed
gpu.js
from optional dependencies and marked config optionsgpujs
andgpuMode
as deprecated.
# 1.1.0
Release date: August 12, 2021
# Added
- Added support for the array arithmetic mode in the
calculateFormula()
method. #782 (opens new window) - Added a new
CellType
returned bygetCellType
:CellType.ARRAYFORMULA
. It's assigned to the top-left corner of an array, and is recognized by theisCellPartOfArray()
anddoesCellHaveFormula()
methods. #781 (opens new window)
# Changed
- Deprecated the
binarySearchThreshold
configuration option, as every search of sorted data always uses binary search. #791 (opens new window)
# Fixed
- Fixed an issue with searching sorted data. #787 (opens new window)
- Fixed the
destroy
method to properly destroy HyperFormula instances. #788 (opens new window)
# 1.0.0
Release date: July 15, 2021
# Added
- Added support for array arithmetic. #628 (opens new window)
- Added performance improvements for array handling. #629 (opens new window)
- Added ARRAYFORMULA function. #630 (opens new window)
- Added FILTER function. #668 (opens new window)
- Added ARRAY_CONSTRAIN function. #661 (opens new window)
- Added casting to scalars from non-range arrays. #663 (opens new window)
- Added support for range interpolation. #665 (opens new window)
- Added parsing of arrays in formulas (together with respective config options for separators). #671 (opens new window)
- Added support for vectorization of scalar functions. #673 (opens new window)
- Added support for time in JS
Date()
objects on the input. #648 (opens new window) - Added validation of API argument types for simple types. #654 (opens new window)
- Added named expression handling to engine factories. #680 (opens new window)
- Added
getAllNamedExpressionsSerialized
method. #680 (opens new window) - Added parsing of arrays in formulas (together with respective config options for separators). #671 (opens new window)
- Added utility function for filling ranges with source from other range. #678 (opens new window)
- Added pretty print for detailedCellError. #712 (opens new window)
- Added
simpleCellRangeFromString
andsimpleCellRangeToString
helpers. #720 (opens new window) - Added
CellError
to exports. #736 (opens new window) - Added mapping policies to the exports:
AlwaysDense
,AlwaysSparse
,DenseSparseChooseBasedOnThreshold
. #747 (opens new window) - Added
#SPILL!
error type. #708 (opens new window) - Added large tests for CRUD interactions. #755 (opens new window)
- Added a flag to
getFillRangeData
to support different types of offsetting. #767 (opens new window)
# Changed
- Breaking change: Changed API of many sheet-related methods to take sheetId instead of sheetName as an argument. #645 (opens new window)
- Breaking change: Removed support for matrix formulas (
{=FORMULA}
) notation. Engine now supports formulas returning array of values (instead of only scalars). #652 (opens new window) - Breaking change: Removed numeric matrix detection along with matrixDetection and matrixDetectionThreshold config options. #669 (opens new window)
- Breaking change: Changed API of the following methods to take
SimpleCellRange
type argument:copy
,cut
,getCellDependents
,getCellPrecedents
,getFillRangeData
,getRangeFormulas
,getRangeSerialized
,getRangeValues
,isItPossibleToMoveCells
,isItPossibleToSetCellContents
,moveCells
. #687 (opens new window) - Breaking change: Changed the AGPLv3 license to GPLv3.
- Breaking change: Removed the free non-commercial license.
- Breaking change: Changed behaviour of
setCellContents
so that it is possible to override space occupied by spilled array. #708 (opens new window) - Breaking change: Changed behaviour of
addRows/removeRows
so that it is possible to add/remove rows across spilled array without changing array size. #708 (opens new window) - Breaking change: Changed behaviour of
addColumns/removeColumns
so that it is possible to add/remove columns across spilled array without changing array size. #732 (opens new window) - Breaking change: Changed config options #747 (opens new window):
before | after |
---|---|
matrixColumnSeparator | arrayColumnSeparator |
matrixRowSeparator | arrayRowSeparator |
- Breaking change: Changed CellType.MATRIX to CellType.ARRAY #747 (opens new window)
- Breaking change: Changed API methods #747 (opens new window):
before | after |
---|---|
matrixMapping | arrrayMapping |
isCellPartOfMatrix | isCellPartOfArray |
- Breaking change: Changed Exceptions #747 (opens new window):
before | after |
---|---|
SourceLocationHasMatrixError | SourceLocationHasArrayError |
TargetLocationHasMatrixError | TargetLocationHasArrayError |
- Changed SWITCH function, so it takes array as its first argument.
- Changed TRANSPOSE function, so it works with data of any type. #708 (opens new window)
- Changed the way how we include
gpu.js
making it even more optional #753 (opens new window)
# Fixed
- Fixed an issue with arrays and cruds. #651 (opens new window)
- Fixed handling of arrays for ROWS/COLUMNS functions. #677 (opens new window)
- Fixed an issue with nested namedexpressions. #679 (opens new window)
- Fixed an issue with matrixDetection + number parsing. #686 (opens new window)
- Fixed an issue with NOW and TODAY functions. #709 (opens new window)
- Fixed an issue with MIN/MAX function caches. #711 (opens new window)
- Fixed an issue with caching and order of evaluation. #735 (opens new window)
# 0.6.2
Release date: May 26, 2021
# Changed
- Modified a private field in one of the classes to ensure broader compatibility with older TypeScript versions. #681 (opens new window)
# 0.6.1
Release date: May 24, 2021
# Changed
- Remove redundant
'assert'
dependency from the code. #672 (opens new window)
# Fixed
- Fixed library support for IE11. The
unorm
package is added to the dependencies. #675 (opens new window)
# 0.6.0
Release date: April 27, 2021
# Added
- Added two new fired events, for suspending and resuming execution. #637 (opens new window)
- Added listing in scopes to
listNamedExpressions
method. #638 (opens new window)
# Changed
- Breaking change: Moved
GPU.js
fromdependencies
todevDependencies
andoptionalDependencies
. #642 (opens new window)
# Fixed
- Fixed issues with scoped named expression. #646 (opens new window) , #641 (opens new window)
- Fixed an issue with losing formating info about DateTime numbers. #626 (opens new window)
# 0.5.0
Release date: April 15, 2021
# Added
- Added support for row and column reordering. #343 (opens new window)
- Added type inferrence for subtypes for number. #313 (opens new window)
- Added parsing of number literals containing '%' or currency symbol (default '$'). #590 (opens new window)
- Added ability to fallback to plain CPU implementation for functions that uses GPU.js #355 (opens new window)
# Changed
- Breaking change: A change to the type of value returned via serialization methods. #617 (opens new window)
- An input value should be preserved through serialization more precisely. #617 (opens new window)
- GPU.js constructor needs to be provided directly to engine configuration. #355 (opens new window)
- A deprecated config option vlookupThreshold has been removed. #620 (opens new window)
# Fixed
- Fixed minor issue. #631 (opens new window)
- Fixed a bug with serialization of some addresses after CRUDs. #587 (opens new window)
- Fixed a bug with MEDIAN function implementation. #601 (opens new window)
- Fixed a bug with copy-paste operation that could cause out of scope references #591 (opens new window)
- Fixed a bug with date parsing. #614 (opens new window)
- Fixed a bug where accent/case sensitivity was ignored for LOOKUPs. #621 (opens new window)
- Fixed a bug with handling of no time format/no date format scenarios. #616 (opens new window)
# 0.4.0
Release date: December 17, 2020
# Added
- Added 50 mathematical functions: ROMAN, ARABIC, FACT, FACTDOUBLE, COMBIN, COMBINA, GCD, LCM, MROUND, MULTINOMIAL, QUOTIENT, RANDBETWEEN, SERIESSUM, SIGN, SQRTPI, SUMX2MY2, SUMX2PY2, SUMXMY2, CEILING.MATH, FLOOR.MATH, FLOOR, CEILING.PRECISE, FLOOR.PRECISE, ISO.CEILING, COMPLEX, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN. #537 (opens new window) , #582 (opens new window) , #281 (opens new window) , #581 (opens new window)
- Added 106 statistical functions: EXPON.DIST, EXPONDIST, FISHER, FISHERINV, GAMMA, GAMMA.DIST, GAMMADIST, GAMMALN, GAMMALN.PRECISE, GAMMA.INV, GAMMAINV, GAUSS, BETA.DIST, BETADIST, BETA.INV, BETAINV, BINOM.DIST, BINOMDIST, BINOM.INV, BESSELI, BESSELJ, BESSELK, BESSELY, CHISQ.DIST, CHISQ.DIST.RT, CHISQ.INV, CHISQ.INV.RT, CHIDIST, CHIINV, F.DIST, F.DIST.RT, F.INV, F.INV.RT, FDIST, FINV, WEIBULL, WEIBULL.DIST, HYPGEOMDIST, HYPGEOM.DIST, T.DIST, T.DIST.2T, T.DIST.RT, T.INV, T.INV.2T, TDIST, TINV, LOGNORM.DIST, LOGNORMDIST, LOGNORM.INV, LOGINV, NORM.DIST, NORMDIST, NORM.S.DIST, NORMSDIST, NORM.INV, NORMINV, NORM.S.INV, NORMSINV, PHI, NEGBINOM.DIST, NEGBINOMDIST, POISSON, POISSON.DIST, LARGE, SMALL, AVEDEV, CONFIDENCE, CONFIDENCE.NORM, CONFIDENCE.T, DEVSQ, GEOMEAN, HARMEAN, CRITBINOM, COVAR, COVARIANCE.P, COVARIANCE.S, PEARSON, RSQ, STANDARDIZE, Z.TEST, ZTEST, F.TEST, FTEST, STEYX, SLOPE, CHITEST, CHISQ.TEST, T.TEST, TTEST, SKEW.P, SKEW, WEIBULLDIST, VARS, TINV2T, TDISTRT, TDIST2T, STDEVS, FINVRT, FDISTRT, CHIDISTRT, CHIINVRT, COVARIANCEP, COVARIANCES, LOGNORMINV, POISSONDIST, SKEWP. #152 (opens new window) , #154 (opens new window) , #160 (opens new window)
- Added function aliases mechanism. #569 (opens new window)
- Added support for scientific notation. #579 (opens new window)
- Added support for complex numbers. #281 (opens new window)
# Changed
- A breaking change: CEILING function implementation to be consistent with existing implementations. #582 (opens new window)
# Fixed
- Fixed a problem with dependencies not collected for specific functions. #550 (opens new window) , #549 (opens new window)
- Fixed a minor problem with dependencies under nested parenthesis. #549 (opens new window) , #558 (opens new window)
- Fixed a problem with HLOOKUP/VLOOKUP getting stuck in binary search. #559 (opens new window) , #562 (opens new window)
- Fixed a problem with the logic of dependency resolving. #561 (opens new window) , #563 (opens new window)
- Fixed a minor bug with ATAN2 function. #581 (opens new window)
# 0.3.0
Release date: October 22, 2020
# Added
- Added 9 text functions EXACT, LOWER, UPPER, MID, T, SUBSTITUTE, REPLACE, UNICODE, UNICHAR. #159 (opens new window)
- Added 5 datetime functions: INTERVAL, NETWORKDAYS, NETWORKDAYS.INTL, WORKDAY, WORKDAY.INTL. #153 (opens new window)
- Added 3 information functions HLOOKUP, ROW, COLUMN. #520 (opens new window)
- Added 5 financial functions FVSCHEDULE, NPV, MIRR, PDURATION, XNPV. #542 (opens new window)
- Added 12 statistical functions VAR.P, VAR.S, VARA, VARPA, STDEV.P, STDEV.S, STDEVA, STDEVPA, VARP, VAR, STDEVP, STDEV. #536 (opens new window)
- Added 2 mathematical functions SUBTOTAL, PRODUCT. #536 (opens new window)
- Added 15 operator functions HF.ADD, HF.CONCAT, HF.DIVIDE, HF.EQ, HF.GT, HF.GTE, HF.LT, HF.LTE, HF.MINUS, HF.MULTIPLY, HF.NE, HF.POW, HF.UMINUS, HF.UNARY_PERCENT, HF.UPLUS. #543 (opens new window)
# Fixed
- Fixed multiple issues with VLOOKUP function. #526 (opens new window) and #528 (opens new window)
- Fixed MATCH and INDEX functions compatiblity. #520 (opens new window)
- Fixed issue with config update that does not preserve named expressions. #527 (opens new window)
- Fixed minor issue with arithmetic operations error messages. #532 (opens new window)
# 0.2.0
Release date: September 22, 2020
# Added
- Added 9 text functions LEN, TRIM, PROPER, CLEAN, REPT, RIGHT, LEFT, SEARCH, FIND. #221 (opens new window)
- Added helper methods for keeping track of cell/range dependencies:
getCellPrecedents
andgetCellDependents
. #441 (opens new window) - Added 22 financial functions FV, PMT, PPMT, IPMT, CUMIPMT, CUMPRINC, DB, DDB, DOLLARDE, DOLLARFR, EFFECT, ISPMT, NOMINAL, NPER, RATE, PV, RRI, SLN, SYD, TBILLEQ, TBILLPRICE, TBILLYIELD. #494 (opens new window)
- Added FORMULATEXT function. #422 (opens new window)
- Added 8 information functions ISERR, ISNA, ISREF, NA, SHEET, SHEETS, ISBINARY, ISFORMULA. #481 (opens new window)
- Added 15 date functions: WEEKDAY, DATEVALUE, HOUR, MINUTE, SECOND, TIME, TIMEVALUE, NOW, TODAY, EDATE, WEEKNUM, ISOWEEKNUM, DATEDIF, DAYS360, YEARFRAC. #483 (opens new window)
- Added 13 trigonometry functions: SEC, CSC, SINH, COSH, TANH, COTH, SECH, CSCH, ACOT, ASINH, ACOSH, ATANH, ACOTH. #485 (opens new window)
- Added 6 engineering functions: OCT2BIN, OCT2DEC, OCT2HEX, HEX2BIN, HEX2OCT, HEX2DEC. #497 (opens new window)
- Added a configuration option to evaluate reference to an empty cells as a zero. #476 (opens new window)
- Added new error type: missing licence. #306 (opens new window)
- Added detailed error messages for error values. #506 (opens new window)
- Added ability to handle more characters in quoted sheet names. #509 (opens new window)
- Added support for escaping apostrophe character in quoted sheet names. #64 (opens new window)
# Changed
- Operation
moveCells
creating cyclic dependencies does not cause losing original formula. #479 (opens new window) - Simplified adding new function modules, reworked (simplified) implementations of existing modules. #480 (opens new window)
# Fixed
- Fixed hardcoding of languages in i18n tests. #471 (opens new window)
- Fixed many compilation warnings based on LGTM analysis. #473 (opens new window)
- Fixed
moveCells
behaviour when moving part of a range. #479 (opens new window) - Fixed
moveColumns
/moveRows
inconsistent behaviour. #479 (opens new window) - Fixed undo of
moveColumns
/moveRows
operations. #479 (opens new window) - Fixed name-collision issue in translations. #486 (opens new window)
- Fixed bug in concatenation +
nullValue
. #495 (opens new window) - Fixed bug when undoing irreversible operation. #502 (opens new window)
- Fixed minor issue with CHAR function logic. #510 (opens new window)
- Fixed
simpleCellAddressToString
behaviour when converting quoted sheet names. #514 (opens new window) - Fixed issues with numeric aggregation functions. #515 (opens new window)
# 0.1.3
Release date: July 21, 2020
# Fixed
- Fixed a bug in coercion of empty string to boolean value. #453 (opens new window)
# 0.1.2
Release date: July 13, 2020
# Fixed
- Fixed a bug in topological ordering module. #442 (opens new window)
# 0.1.1
Release date: July 1, 2020
# Fixed
- Fixed a typo in a config option from
useRegularExpresssions
touseRegularExpressions
. #437 (opens new window)
# 0.1.0
Alpha release date: June 25, 2020 🎉
- Core functionality of the engine
- Support for data types: String, Error, Number, Date, Time, DateTime, Duration, Distinct Logical
- Support for logical operators: =, <>, >, <, >=, <=
- Support for arithmetic operators: +, -, *, /, %
- Support for text operator: &
- CRUD operations:
- modifying the value of a single cell
- adding/deleting row/column
- reading the value or formula from the selected cell
- moving a cell or a block of cells
- deleting a subset of rows or columns
- recalculating and refreshing of a worksheet
- batching CRUD operations
- support for wildcards and regex inside criterion functions like SUMIF, COUNTIF
- named expressions support
- support for cut, copy, paste
- undo/redo support
- The following functions: ABS(), ACOS(), AND(), ASIN(), ATAN(), ATAN2(), AVERAGE(), AVERAGEA(), AVERAGEIF(), BASE(), BIN2DEC(), BIN2HEX()BIN2OCT(), BITAND(), BITLSHIFT(), BITOR(), BITRSHIFT(), BITXOR(), CEILING(), CHAR(), CHOOSE(), CODE(), COLUMNS(), CONCATENATE(), CORREL(), COS(), COT(), COUNT(), COUNTA(), COUNTBLANK(), COUNTIF(), COUNTIFS(), COUNTUNIQUE(), DATE(), DAY(), DAYS(), DEC2BIN(), DEC2HEX(), DEC2OCT(), DECIMAL(), DEGREES(), DELTA(), E(), EOMONTH(), ERF(), ERFC(), EVEN(), EXP(), FALSE(), IF(), IFERROR(), IFNA(), INDEX(), INT(), ISBLANK(), ISERROR(), ISEVEN(), ISLOGICAL(), ISNONTEXT(), ISNUMBER(), ISODD(), ISTEXT(), LN(), LOG(), LOG10(), MATCH(), MAX(), MAXA(), MAXPOOL(), MEDIAN(), MEDIANPOOL(), MIN(), MINA(), MMULT(), MOD(), MONTH(), NOT(), ODD(), OFFSET(), OR(), PI(), POWER(), RADIANS() , RAND(), ROUND(), ROUNDDOWN(), ROUNDUP(), ROWS(), SIN(), SPLIT(), SQRT(), SUM(), SUMIF(), SUMIFS(), SUMPRODUCT(), SUMSQ(), SWITCH(), TAN(), TEXT(), TRANSPOSE(), TRUE(), TRUNC(), VLOOKUP(), XOR(), YEAR()
- Support for volatile functions
- Cultures supports - can be configured according to the application need
- Custom functions support
- Set OpenDocument v1.2 (opens new window) as a standard to follow
- Error handling:
- Division by zero: #DIV/0!
- Unknown function name: #NAME?
- Wrong type of argument in a function or wrong type of operator: #VALUE!
- Invalid numeric values: #NUM!
- No value available: #N/A
- Cyclic dependency: #CYCLE!
- Wrong address reference: #REF
- Built-in function translation support for 16 languages: English, Czech, Danish, Dutch, Finnish, French, German, Hungarian, Italian, Norwegian, Polish, Portuguese, Russian, Spanish, Swedish, Turkish.