Skip to content

Formula Coverage ​

This page explains which Excel function names Formulon recognizes and which of them execute locally. Internally, it reflects the runtime registry report from RegistryCatalog.CoverageReport and the availability annotations in tools/catalog/function_status.tsv.

Recognized does not mean locally executable

The 522-function number is the count of Excel function names Formulon recognizes. It includes names that Excel routes to external services or host-specific state, such as COPILOT, PY, IMAGE, RTD, STOCKHISTORY, WEBSERVICE, translation functions, and CUBE connection functions. Those are recognized deliberately, but they are not local implementations.

Summary ​

Formulon recognizes 522 Excel function names: 507 real implementations, including 2 environment-bound (CELL, INFO), plus 15 unavailable stubs.

StatusCountMeaning
Real implementation507Evaluated locally; 2 (CELL, INFO) depend on workbook or host state
Unavailable service stub15Recognized by name and arity, but returns a deterministic Excel error because the required external service is outside Formulon
Total recognized522
522 recognized function names507 real implementationsincludes CELL, INFO15 unavailable servicestubsservice/connectiondependent522 recognized function names507 real implementationsincludes CELL, INFO15 unavailable service stubsservice/connection dependent

This is the honest compatibility claim: Formulon has broad local formula coverage, but it does not embed Microsoft 365 cloud services, a Python cloud runtime, an HTTP client, an OLAP cube connection, an RTD COM provider, or Copilot.

The panel below reads that same registry at runtime — functionNames() for the index, functionMetadata(name, locale) for arity, availability class, and signature — and tallies the availability classes from the engine rather than from this page, so it answers per function what the tables here answer in aggregate. Its try-it field evaluates a call, which is the shortest way to see what a recognized-but-unavailable name actually returns instead of inferring it from the table below.

Look up the function catalog

The index and every count come from the running engine’s functionNames() / functionMetadata(); this page carries no function table of its own.

Powered by the real Formulon engine (WASM) — it runs entirely in your browser, nothing is uploaded.

Recognized Functions By Category ​

CategoryRecognizedNotes
Math & Trig81Local implementation
Statistical149Local implementation
Logical20Local implementation
Text50Local implementation
Date & Time25Local implementation
Lookup & Reference39Local implementation, including dynamic-array lookup behavior; IMAGE and RTD are unavailable service stubs
Financial56Includes STOCKHISTORY as an unavailable service stub
Engineering54Local implementation
Information19Includes environment-bound CELL and INFO; no unavailable service stubs in this category
Database12Local implementation
Web4ENCODEURL and FILTERXML are implemented; WEBSERVICE and PY are unavailable service stubs
Cube7Recognized as unavailable service stubs; live OLAP connections are outside Formulon
2024 / 2025 additions6Includes unavailable service stubs such as COPILOT, TRANSLATE, and DETECTLANGUAGE

Workbook oracle track ​

Formula oracle cases check cell values. Pivot tables and print layout need a workbook-level oracle because their behavior is stored in workbook structures, not just formula results.

That track uses win-365-ja_JP as its primary profile because reliable PivotTable automation depends on Windows Excel COM. The product-verified Windows Microsoft 365 ja-JP workbook oracle reports 66/66 passing with 10 documented skips. Its goldens carry a capture identifier that pins the suites to a single verified Microsoft 365 session.

Unavailable service stubs ​

These names are intentionally recognized so workbooks fail in a predictable, Excel-shaped way instead of producing #NAME? from an unknown parser path. They are outside Formulon's local calculation boundary.

Function(s)Why it is not locally implementedFormulon behavior
COPILOTRequires the Microsoft 365 Copilot / LLM serviceFixed unavailable error surface
PYRequires Microsoft 365's hosted Python runtimeFixed unavailable error surface
IMAGERequires image fetching and rendering host supportFixed unavailable error surface
RTDRequires an external Real-Time-Data providerFixed unavailable error surface
STOCKHISTORYRequires Microsoft market-data service / network I/OFixed unavailable error surface
WEBSERVICERequires HTTP/network I/OFixed unavailable error surface
TRANSLATE, DETECTLANGUAGERequire cloud translation / language servicesFixed unavailable error surface
CUBEKPIMEMBER, CUBEMEMBER, CUBEMEMBERPROPERTY, CUBERANKEDMEMBER, CUBESET, CUBESETCOUNT, CUBEVALUERequire a live OLAP cube connectionFixed unavailable error surface

Practical guidance ​

For an existing workbook, treat formula coverage as the first gate, not the final proof. Create a small fixture for every business-critical formula family and compare results against your target Excel profile.

Use the CLI to inspect a workbook:

sh
formulon dump --formulas workbook.xlsx > formulas.txt

Then create a small fixture for every business-critical formula family and run it through both Formulon and your target Excel profile.

Source of truth ​

The recognized-name list lives in tools/catalog/functions.txt. Availability annotations live in tools/catalog/function_status.tsv; omitted entries default to real local implementations. The runtime registry test verifies that recognized names resolve at runtime, while the status file prevents that recognition count from being mistaken for a local implementation count.