Lookup

Google Sheets INDEX MATCH — Syntax, Examples & Tips

Learn how to use INDEX MATCH in Google Sheets as a powerful VLOOKUP alternative. Left lookups, two-way lookups, and multiple criteria explained.

Syntax
=INDEX(range, MATCH(search_key, lookup_range, 0))

What INDEX MATCH Does

INDEX MATCH is a two-function combo that looks up a value much like VLOOKUP but without its limitations. MATCH finds the row position of your search key, and INDEX returns the value at that position from any column you choose. It can look left, handle column insertions gracefully, and works with very large datasets.

Syntax

=INDEX(return_range, MATCH(search_key, lookup_range, 0))
ParameterDescription
return_rangeThe column (or range) from which you want the result.
search_keyThe value you are searching for.
lookup_rangeThe column to search within. Must be the same height as return_range.
0Match type. Use 0 for exact match, 1 for less-than-or-equal (sorted ascending), -1 for greater-than-or-equal (sorted descending).

Basic Examples

Example 1: Look Up an Employee's Department

ABC
1Emp IDNameDepartment
2101AnnaEngineering
3102BrianSales
4103ClaraMarketing
=INDEX(C2:C4, MATCH(102, A2:A4, 0))

Result: Sales

Example 2: Left Lookup (something VLOOKUP can't do)

You need to find a product name from its SKU, but the name column is to the left of the SKU column.

AB
1ProductSKU
2LaptopSKU-441
3MouseSKU-228
=INDEX(A2:A3, MATCH("SKU-228", B2:B3, 0))

Result: Mouse

Advanced Examples

Two-Way Lookup

Find a value at the intersection of a specific row and column. Suppose you have quarterly revenue by region:

ABCDE
1RegionQ1Q2Q3Q4
2North5000620058007100
3South4300490051005600

To get Q3 revenue for "South":

=INDEX(B2:E3, MATCH("South", A2:A3, 0), MATCH("Q3", B1:E1, 0))

Result: 5100

Multiple Criteria Lookup

Look up a value using two conditions (e.g., find the price where product is "Widget" AND size is "Large") by concatenating criteria with MATCH on an array:

=INDEX(C2:C100, MATCH(1, (A2:A100="Widget")*(B2:B100="Large"), 0))

Press Ctrl+Shift+Enter or wrap with ARRAYFORMULA if needed. This multiplies two TRUE/FALSE arrays together so only the row matching both conditions equals 1.

Common Mistakes

  • Mismatched range heights. The lookup_range and return_range must have the same number of rows. MATCH(x, A2:A10, 0) paired with INDEX(C2:C20, ...) will return the wrong row.
  • Using the wrong match type. Always use 0 for exact match. The default (1) requires sorted data and rarely does what you expect on unsorted lists.
  • Forgetting to lock ranges. When copying the formula down, use $ to anchor ranges (e.g., $A$2:$A$100) so they don't shift.

SheetAI Tip

Don't want to memorize this syntax? With SheetAI, just type what you need in plain English — like "find the department for employee 102" — and the formula is generated for you. Install SheetAI to try it free.

Skip the formula. Describe what you need.

SheetAI lets you type what you want in plain English and generates the perfect formula — no syntax to memorize.

Try SheetAI Free