What is MATCH in Google Sheets?
MATCH searches a range for a value and returns its relative position. Feeding INDEX or OFFSET with MATCH replaces brittle column index math. Sorted approximate match modes support tier tables and date brackets.
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
Pass lookup value and one-row or one-column search range.
-
2
Set match_type 0 for exact match, 1 or -1 for sorted approximate.
-
3
Wrap with INDEX to return the corresponding value from another column.
-
4
Sort data when using approximate match modes as documented.
-
5
Handle #N/A with IFERROR when keys may be missing.
-
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.
Better Sheets resources
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
INDEX
INDEX fetches a value from a range by row and column number. Combined with MATCH it powers flexible lookups. Alone it picks nth items from lists, dynamic headers, or matrix intersections without VLOOKUP column limits.
Read guide →OFFSET
OFFSET starts from a reference cell and returns a range moved by a row and column offset with optional height and width. Rolling averages, dynamic windows, and shifted blocks use OFFSET, though INDEX and FILTER are often clearer today.
Read guide →XLOOKUP
XLOOKUP searches a lookup array for a key and returns a matching value from a return array. It handles left lookups, approximate match, and custom not-found text without INDEX/MATCH gymnastics.
Read guide →VLOOKUP
VLOOKUP searches the first column of a range for a key and returns a value from a specified column to the right. It is still everywhere in legacy templates even as XLOOKUP offers more flexible replacements.
Read guide →Done reading about MATCH?
Membership unlocks 600+ tutorials, unlimited generators, and every template. Practical lessons. Zero fluff.
Need this once
Jump to a free tool or a single tutorial for this topic.
Learning Sheets for real
Unlock the full library, generators, and templates with membership.