HyperFormula 3.0: Introducing the XLOOKUP Function
We’re excited to introduce HyperFormula 3.0, a major release with significant new features and improvements. This update includes the powerful new XLOOKUP function, better ES module compatibility, and improved documentation.
Please note that this version introduces breaking changes. Before upgrading, review the migration guide to ensure a swift transition.
New Feature: XLOOKUP Function
The XLOOKUP function is a powerful alternative to the well-known VLOOKUP and HLOOKUP, which makes searching and retrieving data easier and more intuitive. XLOOKUP can locate values within a range and return corresponding results from another range, simplifying operations that previously required combining INDEX and MATCH functions.
With XLOOKUP, you can:
- Perform both vertical and horizontal lookups in a single function.
- Avoid hardcoded column/row indexes and improve formula flexibility. Unlike
VLOOKUPorHLOOKUP, theXLOOKUPfunction dynamically identifies the correct match. - Replace the
INDEX+MATCHcombination with a cleaner, easier-to-maintain implementation.
By simplifying lookup operations, XLOOKUP reduces the need for nested functions and manual adjustments, saving you time and effort – especially when working with complex spreadsheet logic. Additionally, implementing this function in an Excel-standard format ensures smoother imports of spreadsheets from both Excel and Google Sheets into HyperFormula.
For a quick XLOOKUP example, try out our demo.
Big thanks to our community member – Selim Youssry – for contributing to this feature!
Updated ES Module Build
To improve compatibility with modern setups, we’ve changed our ES module build to use .mjs files and updated the exports property in package.json. This update enables:
- Import of i18n files in Node.js environments.
- Better integration with modern ES module tooling.
Documentation Improvements
We’ve updated the documentation and demos to make them cleaner, more developer-friendly, and easier to navigate. This includes fixing minor bugs, refining examples, and improving clarity.
Special thanks to Kenton Gray for contributing to these improvements.
Configuration and API Updates
- Changed Default Value for
precisionRounding: The default value of theprecisionRoundingconfiguration option is now 10, reducing the glitches caused by the floating-point numbers in your day-to-day calculations. See issue #1300 for more details. - Improved
simpleCellAddressToStringandsimpleCellRangeToString: These methods have been reworked to provide you with a more logical and developer-friendly API. For details, see issue #1151. - Removed
binarySearchThreshold: This version removes the deprecatedbinarySearchThresholdconfiguration option. If your project still uses this option, please update your configuration accordingly. See issue #1439 for context.
For more information, check out the release notes and explore the updated documentation.
As always, we welcome your feedback and contributions on GitHub.