Excel Compatibility
RuleX follows Excel 2021 behaviour as the baseline for all formula evaluation. This includes dynamic array behaviour: formulas that produce multiple results spill into adjacent cells automatically. You do not need to use Ctrl+Shift+Enter (CSE) to enter array formulas.
Reference operators
Alongside the arithmetic, comparison and & concatenation operators, RuleX supports
Excel's three reference operators:
- Range (
:) — every cell between two corners, for exampleA1:B10. - Intersection (a space) — the cells two ranges have in common, for example
A1:C10 B1:B20resolves toB1:B10. Ranges that do not overlap return#NULL!. - Union (
,) — several ranges or cells treated as one reference, for exampleSUM((A1:A5, C1:C5)). Wrap the reference in parentheses so the comma is read as a union rather than an argument separator.
Text length and Unicode
A single cell holds at most 32,767 characters, matching Excel. Text that would
exceed this limit is truncated (for example by & concatenation), and REPT returns
#VALUE! when the result would be longer.
Text length and character positions are measured in UTF-16 code units, the same as
Excel. This differs from a plain per-character count only for characters outside the
Basic Multilingual Plane (such as many emoji), which count as two units in functions
like LEN, FIND, SEARCH, MID and REPLACE.
Iterative calculation
A circular reference normally returns #CyclicRef. If the source
workbook enables iterative calculation (File → Options → Formulas → Enable iterative
calculation in Excel), RuleX resolves circular references iteratively instead,
following the workbook's iteration count and maximum-change settings.
When the calculation converges within the configured iteration count, RuleX produces the same result as Excel.
When the calculation does not converge, the result from RuleX may differ from Excel. This is a known limitation of how the RuleX engine handles iterative resolution. Since a diverged result is not a meaningful value regardless of the engine used, this deviation is acceptable in practice.
Google Sheets
If your model was built in Google Sheets, two areas are likely to behave differently.
Dynamic arrays and ARRAYFORMULA
Google Sheets does not default to dynamic arrays. To produce multi-cell results in
Google Sheets, you wrap formulas in ARRAYFORMULA. RuleX does not support
ARRAYFORMULA, which is a Google Sheets-specific function.
If your model uses ARRAYFORMULA, rewrite those formulas using native Excel dynamic
array behaviour before uploading. In most cases this means removing the ARRAYFORMULA
wrapper. The formula will spill automatically in RuleX.
FILTER syntax
Excel and Google Sheets use different syntax for FILTER.
Excel:
=FILTER(array, include, [if_empty])
Google Sheets:
=FILTER(range, condition1, [condition2, ...])
These are not compatible. If your model uses FILTER with Google Sheets syntax,
rewrite it using the Excel syntax before uploading.
LibreOffice
LibreOffice only supports CSE-based array formulas (entered with Ctrl+Shift+Enter). It does not support dynamic arrays or automatic spilling.
If your model was built in LibreOffice and uses CSE array formulas, test carefully after uploading to RuleX. The formula logic should still work, but the spilling behaviour will follow Excel 2021 rules, not LibreOffice rules.
General guidance
If your model was built in Google Sheets or LibreOffice, verify each formula against Excel 2021 behaviour before using the Endpoint in production. The Supported Formulas list shows which functions RuleX implements.