HyperFormula 3.0: Introducing the XLOOKUP Function

Beata Mówka HyperFormula / January 15, 2025

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 VLOOKUP or HLOOKUP, the XLOOKUP function dynamically identifies the correct match.
  • Replace the INDEX + MATCH combination 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 the precisionRounding configuration 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 simpleCellAddressToString and simpleCellRangeToString: 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 deprecated binarySearchThreshold configuration 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.