If you've ever used Excel for data lookups, you've probably heard of VLOOKUP(). While it’s one of Excel’s most used formulas, it's also limited — especially when you need to search data dynamically or deal with large spreadsheets.
Enter the INDEX + MATCH formula — the more flexible, accurate, and powerful alternative to VLOOKUP.
In this blog, we’ll explore everything you need to know about INDEX + MATCH, from how it works to real-world use cases, advantages, and practical examples.
Why Not Just Use VLOOKUP?
Before diving into INDEX + MATCH, let’s understand why VLOOKUP might not be enough:
-
Can only search left to right
If your lookup value is in a column that’s not the first, VLOOKUP won’t work. -
Breaks if you insert columns
If you insert a new column in your table, the column index in your VLOOKUP becomes incorrect. -
Slower with large datasets
It recalculates more than necessary, making large sheets sluggish.
Now let’s see how INDEX + MATCH overcomes all of this.
The Basics
🔹 INDEX() – Return a Value at a Given Position
Syntax:
=INDEX(array, row_num, [column_num])
-
array – Range of cells (e.g., A2:C100)
-
row_num – Row number in the array
-
column_num – Optional. Column number in the array.
Example:
=INDEX(B2:B10, 3) returns the 3rd value from B2:B10.
🔹 MATCH() – Find Position of a Value
Syntax:
=MATCH(lookup_value, lookup_array, [match_type])
-
lookup_value – The value to search for.
-
lookup_array – The range where to look.
-
match_type – 0 for exact match (most common).
Example:
=MATCH("Amit", A2:A10, 0) returns the position of "Amit" in the range.
Combining INDEX + MATCH
Now comes the magic. You can use MATCH to find the row number and feed it into INDEX to return the result.
Formula:
=INDEX(result_range, MATCH(lookup_value, lookup_range, 0))
This is dynamic and does not depend on the position of columns like VLOOKUP does.
Real-World Example
Let’s say you have an employee table like this:
| Employee ID | Name | Department |
|---|---|---|
| 101 | Amit | HR |
| 102 | Suresh | Finance |
| 103 | Rani | IT |
Goal:
Find the Department for Employee ID 102.
With INDEX + MATCH:
-
C2:C4is the column for Department -
A2:A4is the column for Employee ID -
102is the lookup value
✅ Output: Finance
Benefits Over VLOOKUP
1. Lookup Left or Right
With INDEX + MATCH, column order doesn’t matter. You can look up values to the left, something VLOOKUP cannot do.
2. Resistant to Structural Changes
Inserting columns won't break your formula. MATCH dynamically finds the row, and INDEX retrieves the value.
3. Faster with Large Data
INDEX + MATCH is more efficient and better for performance when dealing with thousands of rows.
4. Two-Way Lookups
You can combine INDEX + MATCH both horizontally and vertically for dynamic lookups in a matrix.
Advanced: Two-Way Lookup
Let’s say you have a table of product prices:
| Product | Jan | Feb | Mar |
|---|---|---|---|
| Pen | 10 | 12 | 11 |
| Pencil | 5 | 6 | 7 |
| Eraser | 3 | 4 | 4 |
Want to know the price of Pencil in Feb?
Formula:
✅ Output: 6
Now that's Excel power!
Nested with IFERROR
You can nest INDEX + MATCH with IFERROR to handle errors gracefully.
This returns "Not Found" if there’s no match — a professional touch to your dashboards and reports.
Use Cases
-
HR Admins: Look up employee names by ID or vice versa
-
Finance Teams: Fetch rates, totals, or tax slabs
-
MIS Executives: Cross-reference performance metrics
-
Purchase/Admin: Match vendors with products or costs
Final Thoughts
INDEX + MATCH is like upgrading from a regular car to a high-performance vehicle in Excel. It takes a little practice, but once you master it, you’ll never go back to VLOOKUP.
So the next time someone says “I use VLOOKUP for everything,” smile and introduce them to the smarter sibling — INDEX + MATCH.

