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.