What is MATCH in Google Sheets?

When to use it

Use MATCH inside INDEX for lookups, to find column numbers for dynamic references, or to locate ranks in sorted lists.

When to skip it

Skip MATCH alone when XLOOKUP returns the value directly. Use MATCH when you need position, not value.

How it works

  1. 1

    Pass lookup value and one-row or one-column search range.

  2. 2

    Set match_type 0 for exact match, 1 or -1 for sorted approximate.

  3. 3

    Wrap with INDEX to return the corresponding value from another column.

  4. 4

    Sort data when using approximate match modes as documented.

  5. 5

    Handle #N/A with IFERROR when keys may be missing.

  6. 6

    Use COUNTIF first if duplicate keys make first-match behavior risky.

Examples in Google Sheets

Column index finder

=MATCH("Revenue", B1:Z1, 0) returns column offset for a dynamic INDEX pull.

INDEX MATCH row

=INDEX(B:B, MATCH(D2, A:A, 0)) classic vertical lookup pair.

Bracket tier

=MATCH(E2, Tiers!A:A, 1) on ascending sorted tiers finds bracket position for tax logic.

Common mistakes

  • Approximate match on unsorted data returning wrong positions.
  • Duplicate keys returning only first match silently.
  • Horizontal vs vertical range mismatch with lookup value orientation.
  • Text number mismatch when keys look equal but types differ.
  • Whole-column MATCH on massive sheets slowing every recalc.

Frequently asked questions

MATCH vs XLOOKUP?
MATCH returns position. XLOOKUP returns the matched value directly.
MATCH exact mode?
Use 0 as third argument for exact match regardless of sort order.
MATCH wildcards?
Approximate modes may support wildcards in some contexts. Exact 0 does not.
Why #N/A?
Value not found in range with exact match.
MATCH on dates?
Works when dates are true serial values, not text.
Multiple matches?
MATCH returns first match only. FILTER for all.
MATCH with INDEX?
Classic flexible lookup pair predating XLOOKUP.

Related terms