How to use VLOOKUP MATCH Combination in Excel


The Combo of VLOOKUP and MATCH is like a superpower.

Well, as we all know...

It can help you to quickly look up for a value in a column.


In VLOOKUP, col_index_no is a static value which is the reason VLOOKUP doesn’t work as a dynamic function.

And this is where you need to combine VLOOKUP with the MATCH. 


If you are working on  multiple column data, it’s a pain to change its reference... have to do (change column number) this manually.

The best way to solve this problem is to use...

...MATCH function in VLOOKUP for col_index_number.

Today in this post, I going to explain all the stuff you need to know to use this combo formula.

Using MATCH Function with VLOOKUP

To make you understand this formula I have to break it a simple part:

  1. Problems With VLOOKUP
  2. Why Match Function
  3. VLOOKUP and MATCH Together
  4. Problems Solved? without any further ado, let's get started.

Problems With VLOOKUP

I have found two biggest reasons to create a combination of these two functions.

1. Static Reference

Just look at the below data table...

...where you have 12-month sales for four different employees.

Now, let’s say you want to look up for the Feb month’s sale of “John”.

The formula should be like this.


And in this formula... have mentioned 2 as the col_index_num because John’s sale is in the second column.

But what will you do if your boss tells you to get the sales value for the “Peter”?

You need to change the value in col_index_num, because it’s not dynamic.

2. Add or Delete Columns

Now think in a different way. You need to add a new column for a new employee just before John’s column.

And here, John’s column number is 3 and your formula result is incorrect.

Again here, because col_index_num is a static value you need to change it manually from 2 to 3 and again if you need something else.

At this point, you are clear about one thing that you need to make col_index_num dynamic. And for this, the best way is to replace it with the MATCH function.

Why Match Function

Before you combine VLOOKUP and MATCH, you need to understand match function and its working.

The basic use of MATCH is to find the cell number of the lookup value from a range.



It has mainly three arguments, lookup value, a range to lookup for the value, and the match type to specify exact match or an approximate match.

For example, in the below data I am lookup for the name "John" with the match function from a heading row.

And, it has returned 2 in the result because the name is in the 2nd cell of the row.

VLOOKUP and MATCH Together

Now, it’s time to put VLOOKUP and MATCH together. So, let’s continue with our previous example.

First of all, let’s create a formula by using both of the functions and then we’ll understand how these two work together.

Steps to create this combo formula:

  • First of all, in a cell enter month name and in another cell enter the employee’s name.
  • After that, enter below formula in the third cell.

In the above formula, you have used VLOOKUP to lookup for the MAY month and for the col_index_num argument you have used match function instead of a static value.

And in match function, you have used “John” (employee name) for the lookup value.

Here match function has returned the cell number for the “John” from the above row. After that, VLOOKUP has used that cell number to return the value.

In simple words, MATCH function tells VLOOKUP the column number to get the value from.

learn more about vlookup with examples

Problems Solved?

Above you have learned about two different problems which are because of static col_index_num.

And, for this, you have combined VLOOKUP and MATCH.

Now, we need to check that those problems are solved or not.

1 Static Reference

You have referred employee name in match function to get the column number for VLOOKUP.

So now, when you change employee name in the cell, match function will change the column number.

...and when you need to get the value for a different employee you just have to change the employee name in the cell.

This way, you have a dynamic col_index_number.

Finally, you don’t have to edit formula again and again.

2 Add or Delete Columns

Before adding a new column John's data was is in the 2nd column and match function return 2.

And after you have inserted a new column john's data is in the 3rd column and match returned 3.