Searching Sorted Data in Excel with the XMATCH Formula

📅 Sep 11, 2026 📝 Sarah Miller

Searching through massive, sorted datasets in Excel often leads to sluggish workbook performance and frustrating calculation delays. Analysts frequently query large databases of standard funding sources to locate institutional capital, but traditional lookup methods quickly drain system resources. Leveraging XMATCH's advanced binary search algorithm grants users immediate access to critical data points, drastically reducing calculation times. However, as a strict stipulation, the target range must be sorted in ascending or descending order to ensure accuracy. For instance, retrieving "Federal Research Grants" from a sorted index takes only milliseconds. Below, we outline how to configure this highly efficient formula.

Searching Sorted Data in Excel with the XMATCH Formula

Excel Formula to Search Sorted Data with XMATCH

Excel formulas have evolved significantly over the years. For decades, spreadsheet power users relied on the classic MATCH function, often paired with INDEX, to perform complex lookups. However, with the release of modern Excel engines, Microsoft introduced a more robust, flexible, and efficient successor: XMATCH.

While many users associate XMATCH with simple, exact-match searches, its true potential is unlocked when searching sorted data. By leveraging the function's built-in binary search capabilities, you can execute lookups on massive datasets in a fraction of a millisecond. This guide explores how to construct XMATCH formulas for sorted data, understand the underlying search algorithms, and implement real-world solutions for unmatched performance.

Understanding the XMATCH Syntax

Before diving into sorted searches, it is essential to understand the syntax of XMATCH. The function accepts four arguments, the latter two of which are optional:

=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])
  • lookup_value: The value you want to search for.
  • lookup_array: The range or array containing the data you want to search.
  • match_mode (Optional): Specifies how Excel matches the lookup value:
    • 0: Exact match (Default).
    • -1: Exact match or the next smaller item.
    • 1: Exact match or the next larger item.
    • 2: Wildcard match (using *, ?, and ~).
  • search_mode (Optional): Specifies how Excel searches the array:
    • 1: Search from first to last (Default linear search).
    • -1: Search from last to first (Reverse linear search).
    • 2: Binary search on data sorted in ascending order.
    • -2: Binary search on data sorted in descending order.

The Power of Binary Search (Search Modes 2 and -2)

In computer science, search algorithms drastically impact execution speed. When you use the default search mode (1 or -1), Excel performs a linear search. It checks the first cell, then the second, then the third, and so on, until it finds a match. If your dataset contains 500,000 rows, a linear search might require 500,000 comparisons in the worst-case scenario.

By contrast, if your data is sorted, you can specify search_mode as 2 (ascending) or -2 (descending). This instructs Excel to perform a binary search.

A binary search works by looking at the middle element of the array. If the middle element is larger than your target value, Excel discards the upper half of the data and looks at the middle of the remaining lower half. It repeats this division process until the value is found.

Linear Search vs. Binary Search Efficiency

The difference in performance is staggering. The table below illustrates the maximum number of comparisons required for both search methods across different dataset sizes:

Dataset Size (Rows) Linear Search (Max Comparisons) Binary Search (Max Comparisons)
1,000 1,000 10
10,000 10,000 14
100,000 100,000 17
1,048,576 (Excel Max) 1,048,576 21

For large-scale models, switching to a binary search can reduce calculation times from several seconds (or even minutes) to imperceptible milliseconds.

How to Write XMATCH Formulas for Sorted Data

Let's look at practical implementations of XMATCH with sorted data, categorized by sorting order and match types.

Scenario 1: Fast Exact Match in Ascending Sorted Data

If you have an inventory sheet containing over 100,000 SKUs sorted in ascending order, you can perform an ultra-fast exact lookup using the following formula:

=XMATCH("SKU-99482", A2:A100000, 0, 2)

How it works:

  • "SKU-99482" is our target.
  • A2:A100000 is our sorted lookup array.
  • 0 tells Excel we only want an exact match.
  • 2 tells Excel the array is sorted in ascending order, enabling the fast binary search algorithm.

Scenario 2: Approximate Matches (e.g., Tax Brackets or Commission Tiers)

Binary searches are highly effective for locating thresholds, such as determining a sales rep's commission bracket based on total sales volume.

Assume you have the following sorted commission tiers in columns A and B:

Min Sales (Col A) Commission Rate (Col B)
$0 1.0%
$10,000 3.0%
$50,000 5.0%
$100,000 8.0%

If a representative achieves $45,000 in sales, they do not meet the $50,000 tier; they fall back to the $10,000 tier (yielding a 3% commission). To find the correct index using XMATCH on this ascending data, write:

=XMATCH(45000, A2:A5, -1, 2)

Explanation:

  • -1 as the match_mode tells Excel to look for an exact match, and if it is not found, return the next smaller item (which is $10,000).
  • 2 handles the search utilizing binary search on our sorted dataset.
  • The formula returns 2, indicating the target matches the 2nd item in the list.

To retrieve the actual commission rate (3.0%), you nest this within an INDEX function:

=INDEX(B2:B5, XMATCH(45000, A2:A5, -1, 2))

Scenario 3: Searching Descending Sorted Data

Sometimes datasets are sorted in descending order (e.g., high-to-low high-score lists, countdown periods, or volume discounts where higher quantities yield lower prices per unit).

To search a descending array, change the search_mode parameter to -2:

=XMATCH(75, A2:A100, -1, -2)

If A2:A100 is sorted from 100 down to 0, Excel will quickly execute a descending binary search to locate the index of the value 75 (or the next smaller value if 75 is missing).

Critical Hazard: The Danger of Unsorted Data

While binary search is exceptionally fast, it has one major vulnerability: it relies completely on the data being sorted.

If you set the search_mode to 2 or -2 on an unsorted range, Excel will not return an error. Instead, it will blindly run the binary search algorithm, jump across the unsorted indexes, and return a completely incorrect, unpredictable cell position.

Therefore, always ensure your lookup array is programmatically or manually sorted before applying binary search parameters. If you cannot guarantee the sorting status of your data, stick to the default linear search mode (1 or -1).

Comparing XMATCH with XLOOKUP and MATCH

Why use XMATCH when you could use XLOOKUP? While both support binary searches, they serve different design patterns:

  • XLOOKUP returns the actual value from a corresponding return array. It is the go-to for standard direct lookups.
  • XMATCH only returns the index (the position number). This makes it highly efficient when nested within administrative functions like INDEX, OFFSET, CHOOSE, or when calculating dynamic boundaries in larger, nested array formulas.
  • XMATCH vs. Legacy MATCH: Unlike MATCH, which defaults to approximate match (and requires manual sort tracking), XMATCH defaults to an exact match. It also adds reverse-order searching, supports modern dynamic arrays, and does not degrade in performance when columns are inserted or deleted.

Summary Checklist for High-Speed XMATCH

To ensure your spreadsheet models run as efficiently as possible, keep this quick checklist in mind when using XMATCH with sorted data:

  1. Verify your key lookup column is explicitly sorted (Ascending for 2, Descending for -2).
  2. Use match_mode = 0 for exact matches, -1 for the next smaller boundary, and 1 for the next larger boundary.
  3. Combine your XMATCH results with INDEX to return values from parallel columns safely.

By mastering binary search modes in XMATCH, you can future-proof your Excel sheets, ensuring they remain fast and responsive even as your data grows into hundreds of thousands of rows.

Disclaimer:
The documents and templates provided on this page are for informational and illustrative purposes only. They do not constitute professional, legal, or financial advice, and should not be relied upon as such. Because individual circumstances and regulatory requirements vary, these materials may not be suitable for your specific needs. We recommend consulting with a qualified professional before adapting or using any of these examples for official or commercial purposes.