MATCH Function

Excel Functions › Lookup & Reference

All Excel versions Lookup & Reference

The Excel MATCH function returns the position of a value in a row or column — not the value itself. That position becomes powerful ammunition for other functions, most famously INDEX, making "INDEX/MATCH" the most flexible lookup technique that works in every version of Excel.


Quick answer: to find where "Apr" sits in a list:
=MATCH("Apr", A2:A13, 0) // returns 4 if Apr is the 4th item
Always supply 0 as the third argument for an exact match — the default is approximate.

Syntax

=MATCH(lookup_value, lookup_array, [match_type])
ArgumentDescription
lookup_valueRequiredThe value to find.
lookup_arrayRequiredA single row or single column to search.
match_typeOptional0 = exact match (use this 95% of the time) · 1 = largest value ≤ lookup_value, requires ascending sort (default!) · -1 = smallest value ≥ lookup_value, requires descending sort.

Same trap as VLOOKUP: the default match_type is 1 (approximate). On unsorted data that returns wrong positions with no error. Type the 0 every time.

Find a position (exact match)

The roster below has names in A2:A7. To find which row Priya Patel occupies:

ABDE
1NameOfficeFindPosition
2James ChenDallasPriya Patel4
3Maria LopezHouston
4Devon SmithAustin
5Priya PatelDenver
6Alex RiveraDallas
7Sam TanakaHouston
=MATCH("Priya Patel", A2:A7, 0) // returns 4 - the 4th item of the range

Note the result is 4 even though she sits on worksheet row 5 — MATCH counts positions within the range you give it.

With exact match, wildcards work too:

=MATCH("D*", A2:A7, 0) // first name starting with D -> 3 (Devon Smith)

Try it: interactive MATCH demo

Live demo

Pick a value and see the position MATCH returns from the roster above — including the wildcard and the not-found case.

Result:

Approximate match: brackets and thresholds

With match_type 1 and an ascending sorted list, MATCH returns the bracket a number falls into — here, which scoring tier an 84 lands in against thresholds 0 / 60 / 70 / 80 / 90:

=MATCH(84, A2:A6, 1) // returns 4 - the 80 bracket

This pairs naturally with INDEX to return the bracket label. (match_type -1 does the reverse for descending lists, useful for "smallest value that satisfies a minimum.")

Feed MATCH into INDEX

MATCH finds where; INDEX fetches what. Return Priya’s office without knowing her row:

=INDEX(B2:B7, MATCH("Priya Patel", A2:A7, 0)) // returns Denver

Use two MATCHes for a fully dynamic two-way lookup:

=INDEX(B2:E7, MATCH("Apr", A2:A7, 0), MATCH("East", B1:E1, 0))

Modern alternative: Excel 365 adds XMATCH — same idea with exact-match default, search-from-end, and wildcards without mode switches. And XLOOKUP often replaces the combo entirely.

Errors & common pitfalls

#N/A — value not found. With match_type 0, any miss returns #N/A. Check for stray spaces and text-formatted numbers, or wrap in IFERROR/IFNA for legitimate misses.

Pitfall: the approximate default. Omitting match_type means 1, which silently returns wrong positions on unsorted data.

Pitfall: position, not worksheet row. MATCH counts within the range you give it. If your range starts at A5, a result of 1 means row 5. Feeding MATCH positions into functions that expect worksheet rows (like INDIRECT or OFFSET against whole columns) causes off-by-N bugs.

Pitfall: one row OR one column. lookup_array must be a single row or single column — a 2-D range returns #N/A.

Practice workbook

📊
Download the free MATCH practice workbook
Every example on this page, ready to open in Excel — plus practice challenges with answers on a separate tab. No sign-up required.

Frequently asked questions

What's the difference between MATCH and VLOOKUP?
VLOOKUP returns a value; MATCH returns a position. MATCH paired with INDEX can do everything VLOOKUP does, plus look left and survive column changes.
How do I get the value instead of the position?
Wrap MATCH inside INDEX: =INDEX(return_range, MATCH(value, lookup_range, 0)).
Is MATCH case-sensitive?
No. To make it case-sensitive, combine it with EXACT in an array formula: =MATCH(TRUE, EXACT(range, value), 0).
What is XMATCH and should I use it?
XMATCH (Excel 365) is the modern MATCH: exact match by default, optional search-from-end, and binary search modes. If your audience is on 365, prefer it; MATCH remains the compatible choice.
Can MATCH work with two criteria?
Yes, with an array formula that concatenates ranges: =MATCH(value1&value2, range1&range2, 0). In older Excel, confirm with Ctrl+Shift+Enter.

Master functions like this in one day

This page covers one function. Our Excel Formulas and Functions class covers the 30 that matter most — live, hands-on, taught by professionals in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.

See the Formulas & Functions Class

Related functions: INDEX · XLOOKUP · VLOOKUP · XMATCH