Formula Guide

INDEX MATCH explained:
why it beats VLOOKUP

INDEX MATCH is the lookup combination that Excel power users swear by. It looks scarier than VLOOKUP but it's actually simpler once you understand what each part does.

EP
ExcelPro ยท May 25, 2026 ยท 7 min read
๐ŸŽฏ
In this guide
  1. The problem with VLOOKUP
  2. How INDEX works
  3. How MATCH works
  4. Combining them
  5. Real examples
  6. INDEX MATCH vs XLOOKUP

If you've been using Excel for a while, you've probably heard of INDEX MATCH. It gets mentioned by advanced Excel users as the "better VLOOKUP" โ€” but most people never actually learn it because it looks intimidating.

Here's the truth: INDEX MATCH isn't complicated. It's just two formulas working together. Once you understand what each one does separately, combining them is obvious.

First โ€” why bother?

VLOOKUP has one fundamental limitation: the thing you're looking for must always be in the leftmost column of your table. You can only return values to the right of it.

This means if someone restructures your data โ€” or if you need to look up something and return a value to its left โ€” VLOOKUP breaks. INDEX MATCH has no such limitation. It can look in any direction.

How INDEX works

INDEX returns the value at a specific position in a range. Think of it like navigating a grid โ€” you tell it which row and which column, and it gives you the value there.

=INDEX(array, row_number, [column_number])

Simple example: what's in row 3 of the range A1:A10?

=INDEX(A1:A10, 3) โ† returns whatever is in A3

On its own, INDEX isn't that useful โ€” you already know what's in A3. The power comes when you combine it with MATCH.

How MATCH works

MATCH finds the position of a value in a list. It returns a number โ€” the row (or column) where the value appears.

=MATCH(lookup_value, lookup_array, match_type)

Example: where does "Coffee" appear in column A?

=MATCH("Coffee", A1:A10, 0) โ† returns 3 if Coffee is in A3. Use 0 for exact match.

MATCH doesn't return the value itself โ€” it returns the position. The 0 at the end means exact match (which is almost always what you want).

Combining them โ€” the magic

Now put them together: use MATCH to find the position, feed that into INDEX to get the value at that position.

=INDEX(B1:B10, MATCH("Coffee", A1:A10, 0))

Read this as: "Find where Coffee appears in column A (that's MATCH), then return the value at that same position in column B (that's INDEX)."

๐Ÿ’ก The key insight

MATCH does the finding. INDEX does the returning. Feed MATCH's result into INDEX and you've built a lookup that works in any direction.

Real examples

Look up a price

=INDEX(C2:C10, MATCH(E2, A2:A10, 0)) โ† E2 has the product name. Return its price from column C.

Return a value to the LEFT (impossible with VLOOKUP)

Your product codes are in column C and names are in column A. VLOOKUP can't go left โ€” INDEX MATCH can.

=INDEX(A2:A10, MATCH("PRD-003", C2:C10, 0)) โ† find the product code in C, return the name from A (to the left)

Find the best performer

Return the name of whoever scored highest โ€” combine with MAX.

=INDEX(A2:A10, MATCH(MAX(B2:B10), B2:B10, 0)) โ† finds the max score, returns the name of that person

Handle missing values cleanly

=IFERROR(INDEX(B2:B10, MATCH(E2, A2:A10, 0)), "Not found")

INDEX MATCH vs XLOOKUP โ€” when to use each

The honest guide

Both INDEX MATCH and XLOOKUP are genuinely useful. Learning INDEX MATCH is worth it even if you use XLOOKUP day to day โ€” because eventually you'll encounter a spreadsheet that needs it, and you'll be glad you know it.

Practise INDEX MATCH live

ExcelPro has INDEX MATCH exercises built into every specialist track. Type real formulas, get instant feedback.

Try it free โ†’
Keep reading