VLOOKUP vs INDEX-MATCH. Which is better?
This has got to be one of the oldest, and yet hottest topic among the Microsoft Excel's community.
Currently there are about 1.43 million search results in Google just on this topic alone.
And so, DefeatExcel has reached out to seek the opinions of Excel experts such as Microsoft MVPs and Excel community experts so that we can hear their views right here in a single article.
But before that, why is there so much interest among this single topic?
Shouldn't there be a clear winner since this topic has been discussed countless of times?
You see, whether VLOOKUP or INDEX-MATCH is better depends largely on how you define "better".
"Better" can mean different things to different people. "Better" can also change in different situations. What is better today may not be better tomorrow if circumstances change.
A white shirt can be better 'cos it looks simple or elegant as compared to shirts with patterns or colors.
Whereas a colored shirt can be better for a particular day if you want to stand out at a presentation where everyone is expected to be wearing white.
So who do we turn to for advice then?
Well, many readers have been asking who is this group of legendary Excel mages who fought and repelled the Excel monsters in the background story of DefeatExcel.com.
Yes, today we will turn to these highly skilled Excel mages who have been sparing with Excel monsters for a very long time.
Meet the Magic Avengers of DefeatExcel (a.k.a. M.A.D.).
They may come from all over the world, but they have a common characteristic – they are all MAD about Excel (myself included. Really, otherwise why would so many adults come together to talk about this one topic? *chuckles*).
Alright, here comes the MAD wisdom... I asked each of them (in no particular order) the following question:
I don't use VLOOKUP.
When I first needed to look up something in an Excel range, I needed to find a value from a two-dimensional table, so I needed something more flexible.
I soon learned about INDEX(MATCH,MATCH), where one MATCH got me the right row and the other got me the right column. It is this added dimensionality, and the ability to look for a match in any row or column and not just the first, that make INDEX(MATCH) superior.
Microsoft MVP since 2001
The problem is not which is better but that they both have serious and well-known shortcomings.
VLOOKUP is simpler but INDEX-MATCH is more flexible but more complex to use.
FastExcel’s MEMLOOKUP and the AVLOOKUP2-AMATCH2 family are faster, more powerful and often simpler to use.
Microsoft MVP since 2009
It does not matter that INDEX-MATCH is more flexible than VLOOKUP.
If you find 100 people who know and use VLOOKUP, only 3 percent of those people will be familiar with INDEX-MATCH.
My goal is to build spreadsheets that others can understand. Thus, VLOOKUP wins for me.
The one exception: If I have to do 12 columns of VLOOKUP (Jan, Feb, Mar, ... Dec) – then I suggest using one MATCH and 12 INDEX formulae.
Microsoft MVP since 2005
INDEX-MATCH is much better:
Microsoft MVP 2005-2014
VLOOKUP is the most important function to learn in Excel.
It has everything that Excel can throw at you for parameters including ranges, values, Boolean logic and defaults that are wrong 99% of the time. If a user can master this function, they can unlock any function in Excel.
Having said that, INDEX-MATCH is more robust and faster, but is a lot easier to learn for those who have mastered VLOOKUP than those coming to INDEX-MATCH without that background knowledge.
Microsoft MVP since 2006
I don’t think one is better than the other.
VLOOKUP is a great first function to learn. It’s relatively easy to understand and very powerful. For these reasons it will always be a great function.
INDEX & MATCH is able to overcome some of the limitations of VLOOKUP, particularly looking up to the left, but it’s more complex and can be daunting to beginners.
I always recommend people learn INDEX & MATCH once they have mastered VLOOKUP.
Microsoft MVP since 2014
VLOOKUP is better because it is easier to understand for beginner to intermediate Excel users.
INDEX-MATCH is better because it will continue to work if you insert or delete columns in the lookup table and allows the lookup column to be anywhere in the table. It can also be more efficient in case you need to lookup multiple columns of the same row, provided you place the MATCH in a separate column and refer to that MATCH result from each column having the INDEX function.
Microsoft MVP since 2002
I really don’t recommend VLOOKUP and HLOOKUP. As an accountant myself, I know this profession loves these functions but they don’t always work as expected. This link explains some of the issues and provides free examples to download.
LOOKUP, on the other hand, does have a useful function in the world of financial modelling.
Microsoft MVP since 2012
I am an INDEX-MATCH loyalist and prefer it over VLOOKUP.
The powerful combination of INDEX-MATCH allows me to do a lot more than VLOOKUP (such a looking to the left of the lookup value).
While I prefer INDEX-MATCH, in my online and in-person trainings, I always educate people about VLOOKUP first. VLOOKUP is easier to learn and far more popular.
Microsoft MVP since 2014
Microsoft MVP since 2009
I love VLOOKUP, but INDEX-MATCH is a better solution because it is less error prone. There are two major benefits of INDEX-MATCH over VLOOKUP:
I explain these differences in more detail in video #3 of my free video training series on Lookup Formulas.
Microsoft MVP since 2014
It depends on what you are looking up, what you expect the formula to return, your familiarity with Excel's nested functions, and if you care about tiny differences in execution times (INDEX and MATCH are faster), that can become noticeable in very large calculation projects.
VLOOKUP's syntax is a single-function construction with four arguments (one is optional), and it's a popular function for the world’s millions of Excel users who need a basic lookup tool for their work. VLOOKUP operates well in either direction: lookup value at left returning data at right, or vice versa with a nested array constant or CHOOSE function. VBA’s VLOOKUP worksheet function is intuitive for programmers. VLOOKUP and HLOOKUP are useful functions for basic lookup situations.
Combining the INDEX and MATCH functions provides you with everything VLOOKUP does, and more. Lookups can be much more complex than for generic text. Looking up values by case sensitivity; character count; first or last numeric value; positive or negative numbers; absolute values; partial strings; row and column header labels; the options are enormous with INDEX and MATCH that VLOOKUP and HLOOKUP do not handle efficiently, if at all. INDEX with MATCH provides a more versatile, straightforward construction syntax than VLOOKUP for range reference edits and complex lookups. To be fair, understanding INDEX with MATCH takes more time for some users to grasp than VLOOKUP, but the value of this function combination for diverse lookup scenarios cannot be understated, and is, in my opinion, the better choice.
Microsoft MVP since 2008
If it's a popularity contest, then VLOOKUP has won, since it is much more used that the INDEX-MATCH.
But if it's a real contest, INDEX-MATCH combination takes the trophy home, since it can do things, VLOOKUP cannot, like return data to the left of the lookup column, or return answers that are not in the same "table" as the lookup column.
However, I quite fancy a VLOOKUP-MATCH combination for a "two-dimensional" LOOKUP.
Microsoft MVP since 2016
This has become the Excel community's version of political debates. Lots of talk, lots of evidence, lots of facts, very little persuasion.
The merits of INDEX-MATCH over VLOOKUP have been established. However, for my usual purpose, the merits are irrelevant. A scenario:
In that case, I'm using VLOOKUP and skipping the syntax and jungle of parentheses with INDEX-MATCH.
Also, with the introduction of Get & Transform, I might skip the VLOOKUP and use a Left Outer Join.
In my work, INDEX-MATCH-MATCH has proven far more valuable than INDEX-MATCH.
Bottom line for me: these are just tools and I'm looking to get a task done.
If there is a fly in my home, I'll smash it with a newspaper, a shoe, or a paper bag. I'm not going to drive to the store to get proper fly poison. What's the goal? A dead fly.
VLOOKUP kills flies!
Microsoft MVP since 2015
In general, I prefer VLOOKUP when the data is properly set up for it with the lookup value on the left. I will make exceptions and use VLOOKUP in areas where I wouldn't normally if I'm dealing with any spreadsheet that is to be used by others at the company, since so few Excel novices know about INDEX-MATCH.
INDEX-MATCH is a lot more powerful in terms of reliability, and allows for the ability to change your data layout by adding columns and such without it affecting your formula.
However, I've found that users who are not very skilled in Excel have a very difficult time with the formula, and are much more receptive to a VLOOKUP. Especially anything that will need to be reviewed by or explained to the higher ups will likely get a VLOOKUP even if it is not the ideal solution for the problem.
I've even had to go through entire Excel models replacing INDEX-MATCH with VLOOKUP because certain users of the workbook just couldn't grasp it. If it's up to me, I'll likely use INDEX-MATCH but if other employees will need to use the workbook and understand it, I will usually bend over backwards trying to implement VLOOKUP.
Microsoft MVP since 2013
Both have advantages depending on your situation.
Personally, I make my decision based on the complexity and scope of the workbook I am working on. Writing VLOOKUP is quick and easy. If that's a small study I can use VLOOKUP.
However, If I am creating a complex template or developing a large financial model then I prefer to use INDEX-MATCH. Because it is more reliable (works independently from column numbers), it is faster and more reliable.
I also use VLOOKUP-MATCH pair sometimes as well.
Winner, Excel Turkey Championship 2016
INDEX-MATCH is more powerful and flexible.
The main reason I use INDEX-MATCH instead of VLOOKUP is that VLOOKUP requires the lookup range to be on the left of the table.
The lookup_array in the MATCH function doesn't even have to be in the same table or worksheet as the return array or reference in the INDEX function.
MATCH simply returns a number and you can use that number for the [row_num] or [column_num] or [area_num] or use two MATCH functions for a 2-D lookup or three MATCH functions for a 3-D lookup.
For me, it depends on the workbook.
If the value I'm trying to return is a number, I use SUMIFS. I know that wasn't one of the choices and that it is not a traditional lookup function. But it has big benefits, such as it matches equivalent values even when stored as different data types, supports multiple conditions, and returns zero instead of an error when no matches are found.
If the value I'm trying to return is a text string, I'll probably use INDEX-MATCH for recurring use workbooks that will be updated each period because it is less likely to break when new columns are inserted.
Or if this is a one-time workbook or the structure is unlikely to be updated, I'll break out VLOOKUP. But, if the data contains no duplicates and contains a numeric key column, I'll use SUMIFS as the first argument of a VLOOKUP.
Rowdy, I know. Next time you are faced with a lookup task, and the return value is numeric, give SUMIFS a try, it makes an amazing lookup function 🙂
Posts about using SUMIFS as a lookup function:
True story. My husband and I spent an entire evening arguing over which was better – VLOOKUP or INDEX-MATCH.
I championed the VLOOKUP and he the other. His big argument was that you didn’t need to sort your data using INDEX-MATCH while you needed to with VLOOKUP.
I personally like VLOOKUP better simply because I find it more intuitive and easier for people to understand how it works.
What many people fail to realize is that if you include the range_lookup argument as FALSE then you don’t need to worry about sorting.
VLOOKUP is superior to INDEX-MATCH as long as you control your “table” and can arrange it so that the lookup column is where you want it.
Some people claim INDEX MATCH is faster and perhaps if you are looking through millions of records you might notice a slight difference.
So, my vote is for VLOOKUP, using the False range_lookup, and incorporating the IFERROR or IFNA function into it to clean it up a bit.
Now, I use VLOOKUP and my husband remains unconvinced and uses INDEX-MATCH.
While VLOOKUP definitely is much easier to learn, there's really no doubt about it. INDEX-MATCH is the most powerful lookup tool in Excel because it's so flexible and solid. It even adapts to most structural changes in the sheet. Use it for all your lookup needs, even multi-criteria lookups.
I would have to say that both the INDEX-MATCH and the VLOOKUP formula both have their benefits. It depends on the data sets that I'm contending with and whether I need to do a multiple criteria lookup.
If I need to do a multiple criteria lookup, I'll use an INDEX-MATCH array formula to get my results (see article).
I would also use the INDEX-MATCH function out of necessity if on the data setup that I'm trying to lookup the value from, my returning column is located to the left of my lookup range.
Finally, if I have a standard lookup that is required where the returning column is located to the right of the lookup column, hands down I use the VLOOKUP formula because of it's ease of use.
INDEX-MATCH is way better as you can look to the left of your data, something that is not possible using VLOOKUP!
Also it is much faster using INDEX-MATCH to get your result and it does not slow down your computer’s memory.
When you are on top, everyone tries to take a shot at you. The VLOOKUP haters are in full force. They are relentless. INDEX-MATCH is faster. It’s sexier. it’s better. It makes a fluffier omelet. Blah, blah, blah.
To be clear, VLOOKUP haters have some good points. INDEX-MATCH is at least as fast as VLOOKUP, and likely faster if you have thousands of rows/columns. But if you have smaller data sets… meh… it’s not much of an issue. But if your large spreadsheets are grinding to a halt, then sure… take a look at replacing your VLOOKUPS and INDEX-MATCH.
Another plus for the INDEX-MATCH is its versatility. Need to LOOKUP to the Left? Want to delete columns from your VLOOKUP source? Errr… VLOOKUP isn’t the best for those scenarios. There are some workarounds, but who needs that kind of complication? Not me.
But remember… everybody knows how to do a VLOOKUP. Everybody.
You can pretty much guarantee that you can hand off your Excel model to just about anyone and they can read/understand your logic in the event something ever breaks or needs updating. Plus, it’s just so EASY. SIMPLE.
Jon Acampora over at Excel Campus compares VLOOKUP to ordering coffee from Starbucks. You go down the menu on the left until you find your Latte, then you go a few columns to the right until you find your size, then walah… there’s your price. Everyone can understand that, because it is how we are used to consuming columns of data in our everyday life.
My thoughts on it? Well, I’m a bit of an old-timer. I use VLOOKUP all day. It’s quick, easy and I know that anyone I hand my spreadsheet to can understand my logic. It’s a lowest common denominator kind of thing. But if my spreadsheets start slowing down, or I need to do more complex lookups (to the left, etc) then I opt for INDEX/MATCH.
So there you have it, first I go VLOOKUP and then INDEX/MATCH if needed.
For occasional Excel users who have limited time and patience the VLOOKUP function might be the best option. It is easier to master a single function.
However, those that can invest just a little bit of time to understand how to combine the INDEX and MATCH functions will definitely benefit!
Why? If you learn INDEX-MATACH then you'll never need to use a VLOOKUP or HLOOKUP (and for some reason the HLOOKUP annoys me!).
Let's not forget that INDEX-MATCH can easily look to the left (VLOOKUP requires a complex trick to do this).
It's often much more efficient (calculation time) to use INDEX-MATCH and in my experience less errors occur when using INDEX-MATCH as you are directly referencing the lookup and answer columns (no column index number is required). Hard coding the column index number in a VLOOKUP is dangerous!
Besides learning Pivot Tables, learning how to combine Excel's INDEX and MATCH functions is one of the best things that you can learn in Excel.
And lastly.. my take for this question:
VLOOKUP gets the overall thumbs-up for me due to it being a single function. I value simplicity a lot and anyone looking at a VLOOKUP function will know what you are trying to do.
However if I'm creating a model for others, I may use a VLOOKUP-MATCH for a dynamic column reference.
Lastly, if you requires more firepower to take down larger Excel monsters, go for INDEX-MATCH for its flexibility and prowess.
Learning when to use VLOOKUP, VLOOKUP-MATCH, and INDEX-MATCH is also a skill itself!
Awesome! You made it to the end of this epic post where so many Excel MVPs and community experts come together to give you a holistic view of the VLOOKUP vs INDEX-MATCH debate.
I'll like to thank all the experts above for setting aside their precious time to offer their sincere opinions. This post would not be possible without their help at all. Also a special thanks to Sumit Bansal, who gave me a huge inspiration with his post on a similar topic.
And.. if you're still craving for more details, here's other great discussions on the speed performance of VLOOKUP and INDEX-MATCH:
Now, leave your own opinion of VLOOKUP vs INDEX-MATCH below, and if you like this post where I gather the M.A.D. (Magic Avengers of DefeatExcel), share it on Facebook, Twitter or Google+ today!