MENU
Donate
=FUNCTIONS

XMATCH()

Lookup & Reference

Returns the relative position of a value within a range or array, with more flexible matching than MATCH.

XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])

XMATCH searches for a value and returns its position within the array, similar to MATCH, but defaults to an exact match instead of MATCH's default approximate match -- a common source of MATCH errors that XMATCH avoids.

match_mode adds options MATCH doesn't have: 0 for exact match (default), -1 for exact match or the next smaller item, 1 for exact match or the next larger item, and 2 for wildcard matching. search_mode controls the search direction and can perform a binary search on sorted data for better performance on large ranges.

Pair XMATCH with INDEX for two-way lookups, the same pattern used with MATCH, or nest it inside XLOOKUP's match_mode argument in advanced formulas. It requires Excel 365 or Excel 2021 or later.

Arguments

lookup_value
The value to search for.
lookup_array
The range or array to search.
match_modeoptional
0 = exact match (default), -1 = exact or next smaller, 1 = exact or next larger, 2 = wildcard match.
search_modeoptional
1 = first to last (default), -1 = last to first, 2 = binary search ascending, -2 = binary search descending.

Examples

=XMATCH(40, {10,20,30,40,50})
4

40 is the fourth item in the array.

=XMATCH(35, {10,20,30,40,50}, 1)
4

35 isn't in the array, so match_mode 1 finds the next larger value, 40, at position 4.

Tips / Tricks / Hacks

XMATCH tricks, tips, and workbook hacks

XMATCH is easier to remember when you learn the small patterns around it: where it fits, what can break it, and how to combine it with neighboring functions.

Use these practical notes as a working checklist before putting the formula into a real report, model, dashboard, tracker, or reusable template.

Quick wins before you trust the result

  • Start with the simplest XMATCH formula that answers the question, then add conditions or error handling only when needed.
  • Keep input ranges consistent in size, shape, and meaning.
  • Test the formula on one row or one small sample before filling it down a large workbook.
  • Add a note beside important formulas explaining what business question they answer.
  • Pair the formula with related checks so mistakes are easier to spot.
XMATCH tricks and formula patterns
Trick or hackFormula patternBest useWatch out
Build the formula in layersXMATCH(lookup_value, lookup_array, [match_mode], [search_mode])When the full formula feels hard to read or debug.Confirm each argument or nested function before combining everything.
Use structured references=XMATCH(Table1[Column])Excel Tables make formulas easier to read and expand automatically.Rename table columns carefully so formulas remain clear.
Protect against bad input=IFERROR(XMATCH(...),"Check input")Dashboards and shared templates where users need a readable message.Do not hide errors until you understand why they happen.
Document the expected resultAdd a note or nearby labelReusable workbooks, finance models, templates, and handoff files.A clever formula without context becomes expensive to maintain.
Common mistakes and how to fix them
MistakeWhat it looks likeFix
Using a wider range than intendedThe result changes unexpectedly after new rows or helper columns are added.Use Excel Tables or named ranges to make the intended input explicit.
Mixing text, numbers, dates, and blanksThe answer technically works but does not match the business meaning.Clean and validate the source column before applying the function.
Copying a formula with moving referencesThe first row works; later rows drift into the wrong range.Use absolute references, structured references, or named ranges where needed.
Decision table: when the formula is ready for real work
ScenarioUseAvoid
You need a quick answer from clean dataXMATCH with the smallest clear rangeOverbuilding the formula with unnecessary wrappers
The result will appear in a dashboardAdd checks, labels, and readable fallbacksLeaving raw errors or unexplained blanks for viewers
The workbook will grow over timeExcel Tables, named ranges, or structured referencesHard-coded ranges that miss new rows
The data comes from another systemClean inputs before summarizing or transformingAssuming pasted data has correct types and spacing

Practice drills

  1. Write XMATCH once with direct cell references and once with an Excel Table reference.
  2. Break the formula on purpose, then use the error message to identify which argument failed.
  3. Create a small before/after example that explains the formula to another learner.

Related functions