Excel VLOOKUP Formulas Explained


Watch the video extract as seen on YouTube, then read the full tutorial below.

Click the Full Screen button on the player to watch it in HD. YouTube Full Screen Button

Excel VLOOKUP Formula -Exact Match Version Explained

VLOOKUP is my favourite Excel Formula! Perhaps because it was one of the first formulas I mastered that gave me an insight into the power of Excel and how it could help me in my job.

It enables you to get analysis and calculations done in minutes that would take hours manually. And once you master it you’ll find you have the occasion to use it all the time.

Interestingly there’s two ways you can use it but I find that most people know one way or the other, and only a few know both.

In this article we’re going take a look at the Exact Match version of the formula, but first let’s set the scene.

By the way, the other way is what I call the Sorted List VLOOKUP.

In the list below we want to calculate a commission in column F for each builder. But each builder has a specific commission rate they are entitled to. Thankfully we have this information in a table to the right, and this is where we give VLOOKUP the opportunity to strut its stuff.

Excel Vlookup Formula table

The Syntax is:

VLOOKUP(lookup_value, table_array, col_index_num ,range_lookup)

And to translate it into English it would read:

VLOOKUP(find this value, in that table, return the value in column x of the table, but only return a result if you can match the value exactly)

Let’s make it even clearer by applying it to our example:

VLOOKUP(find the name Doug from cell B2, in the Commission Rates table H2:I9, return the value in column 2 of the tablebut only return a value if you find the exact name Doug in the Commission Rates table, otherwise give me an error)

calculate commission with Excel Vlookup Formula

Firstly let me clarify some points:

1)      ‘Return the value in column 2 of the table’ is referring to the column number in the table H2:I9, not the column number of the spreadsheet.  The information we want returned is the percentage rate, and it is in the second column of the Commission Rates table.

2)      ‘Only return a result if you can match the value exactly’ is telling Excel that we only want information returned if it matches our criteria exactly.  i.e. Find Doug in our Commission Rates Table, and if you can’t find Doug, give me an error.  The error displayed will be #N/A.

On the other hand, if we told Excel it was ok to not find an exact match, it would return the next best result.  i.e. If Doug wasn’t in our Table Excel would return the next best result.  In this example we wouldn’t want it to do that, but this option is handy in other situations which we’ll cover in another tutorial.

OK, now that’s clarified, in Excel our formula in column F for the above example would be:


Note: Where ‘FALSE’ is telling Excel we want it to find an Exact Match only.

Our Excel table would then look like this with the VLOOKUP formula in column F:


You’ll notice in the formula bar above there are ‘$’ signs around the reference to the table H2:I9.  This is called an absolute reference and it allows us to quickly copy the formula down column F without Excel dynamically updating the table range as we copy.

How can we make this VLOOKUP formula even better?

Assuming the end result of our example exercise is to actually calculate the commission $ amount, we could make this formula even better by doing this in one step in column F.  Let’s say commission is calculated as Total $k x Commission %, our formula in cell F2 would read:


And in seconds we can have hundreds of calculations done!

VLOOKUP results

Rules, Common Mistakes and Troubleshooting!

1)      VLOOKUP formulas read from left to right.  You must have the information you are looking up (in our example Doug in the Commission Rates Table), in a column to the left of the information you want returned, in our example the ‘percentage rate’.  i.e. it has to go ‘Doug’, then ‘% rate’.  Excel wouldn’t be able to find it if it went ‘% Rate’ then ‘Doug’.

2)      You can have as many columns as you like in your Table, just so long as you follow the ‘left to right’ rule above.

3)      The ‘Table’ you are looking up can be in the same spreadsheet, or a different sheet in the same workbook, or in a different workbook altogether.

4)      The table doesn’t have to be sorted in any particular order, but you must not have duplicates, unless the information on each duplicate is exactly the same.  For example, if Doug appeared twice in our Commission Rates table with different percentage rates for each instance, Microsoft Excel would return the rate on the first instance of Doug.

5) The formula isn’t case sensitive, so ‘Doug’ could be ‘doug’ or ‘Doug’ in either column B or the table.

6)      What does it mean when my VLOOKUP returns a #N/A? It means Excel can’t find the value you’re trying to look up in your table.  If you get this, but you can ‘plain as day’ see it’s there in the table.  Then it’s likely you’ve got one value formatted as Text and another formatted as General.  To check this go to each cell you’re referencing and look in the formula bar to see if one is prefixed by an apostrophe ‘.  You can only see the apostrophe from the formula bar.  See example below.

Basically Excel reads text prefixed with an apostrophe as different to text without, even though on the face of the spreadsheet they might look the same.  You need to make sure both the value you’re looking up, and the value in the table either both have the apostrophe, or both don’t.  The quickest way to get rid of the apostrophes is to do ‘Text to Columns’, or run it through the VALUE function, which converts numbers formatted as text to actual numbers.

Text formatting in formula bar

7) This formula works the same in all versions of Microsoft Excel.

VLOOKUP is a fairly basic formula, but its applications are vast, especially when you combine it with other Functions like IF statements, SUMIF and so on.

Download the Excel workbook used in this example so you can practice to make sure you really get it and can take advantage of its power. Note: this is a .xlsx workbook, please ensure your browser doesn’t change the file extension on download.

More VLOOKUP Examples

Check out this list of our best VLookup tutorials

If you found this useful please share it with your friends and colleagues using the Google+1, LinkedIn, Facebook and Twitter buttons.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current ye@r *


  1. Emmanuel says

    Thanks a lot for the ebook Tips & Tricks. Unfortunately, it’s not as what I wanted. I am looking for help to do with lookup database pictures. The result from vlookup data from the table as the result should be picture as wanted. Although, I have some examples from the internet but Sorry I’m not satisfied with them. I hope might be you would help me, please. Thanks a lot.

    • Catalin Bombea says

      Hi Emmanuel,
      Can you please provide a sample file and detailed descriptions for what you are trying to achieve? You can use our Help Desk System to upload the file, please create a new ticket.

  2. kamalnath says

    Hi.. Pl help me identifying the 1st , 2nd and 3rd max values from an array…

    Project Version
    A 13
    A 3
    A 4
    A 2
    A 5
    A 8
    A 18
    A 11
    A 7
    A 23
    A 24
    A 6
    A 12
    A 1
    A 9
    B 5
    B 2
    B 3
    B 1
    B 6
    B 4

    I want the 1st , 2nd and 3rd max values of project ‘A’ in the cells z1, z2, & z3, likewise for project ‘B’ in y1, y2 & y3…

    Pl help…


    • Catalin Bombea says

      Hi Kamal,
      You can use this formula in Z1, and copy it down to Z3:
      =LARGE(IF($A$1:$A$21=”A”,$B$1:$B$21,0),ROW(A1)) entered with Ctrl+Shift+Enter (it’s an array formula)
      For largest B projects: use this formula in Y1, copied to Y3:
      =LARGE(IF($A$1:$A$21=”B”,$B$1:$B$21,””),ROW(A1)) entered with Ctrl+Shift+Enter (it’s an array formula)

      • kamalnath says

        Hi Catalin… It works for me… Thanks very much… Just now I m hearing about array formula.. if you have notes on that, pl share…

        Now I have another request… its continuation of my earlier request…

        Project sub-proj Version
        A qwe 13
        A rty 3
        A uio 4
        A plk 2
        A jhg 5
        A fds 8
        A azx 18
        A cvb 11
        A nml 7
        A kjh 23
        A gfd 24
        A saq 6
        A wer 12
        A tyu 1
        A iop 9
        B mnb 5
        B vcx 2
        B zas 3
        B dfg 1
        B hjk 6
        B lop 4

        I want the sub-proj name of 1st , 2nd and 3rd max values of project ‘A’ in the cells z1, z2, & z3, likewise for project ‘B’ in y1, y2 & y3…

        pl help…


        • Catalin Bombea says

          Hi Kamal,
          Please describe from the beginning the entire problem, because any little detail can change the approach, and the solution may be totally different.
          Try this file from our OneDrive folder. The solution works fine if you do not have duplicates, at least for the highest 3 numbers.

  3. kumar says

    Madam, I find the tuitorial guide very helpful. Would you please explain to me how we proceed with VLOOKUP using multiples sheet.

    Thanking you


  4. Mel says

    Hi Mynda, I am trying to do some analysis on a s/s. I have a worksheet which has data arranged in columns, such as instance, location, months. I have another s/s with new data for the current month. I am trying to compare data from the current month to the existing s/s and if data (instance and locations) match, then add this new data as a new column to the existing s/s. The instances column should have unique data, but if there are data in the new or existing s/s that do not match, then append them at the bottom of the existing s/s. What formula should I use? Thanks for your help.

    • Mynda Treacy says

      Hi Mel,

      I hate to say this but I think your approach isn’t ideal. There is no easy way to do what you describe using formulas… or any other Excel tool.

      Perhaps if you can send me your workbook I can better understand what you’re trying to do and give you some advice on how to acheive the same end result with some changes to your process.

      You can send your file and description of what you want and where via our help desk – anything you send is kept confidential.

      In the meantime you might find this tutorial on Tabular Data helpful.

      Kind regards,


  5. murtaza begi says

    hi can you please sent me a emaill and explean the why we use the VLOOKUP AND ALSO EXPLAN AS WELL THANKS A LOT PLEASE

    • Catalin Bombea says

      VLOOKUP is an Excel Function that is used within tables to help filter through large volumes of data and
      select the appropriate data based on given conditions. The VLOOKUP formula would automatically look through the list of your Objects and pick out
      the corresponding data.

      The function is very well described in this tutorial , please take your time to understand the explanations, you can also download an example workbook, the link for download is at the end of the tutorial.

  6. sim says

    by v look up the answer comes only up in the function arguments but in the cell only coming up v look up (example) but not the answer

  7. bns says

    In my Laptop Excel sheet’s are viewing as for Rows 1,2,3,… are making visible and for coloums 1,2,3….. are visibling insted of A,B,C… how to chage it?

    • says

      Hi BNS,

      You’ve got R1C1 reference style turned on. To turn it off you need to access the Options (Office button for 2007 or File tab for 2010) > Formulas category > uncheck ‘R1C1 reference style’.

      Kind regards,


  8. Charles Taylor says

    Can solve this puzzle from a spread sheet from 1996 deals with gas processing Question on VLOOKUP Function This is part of a spread sheet
    Amine Treater
    Amine type (MEA, DEA, MDEA) DEA Typical Amine solution properties are shown below:

    Many cells left out

    Amine Properties Lookup Table
    Amine Wt% Loading SG @ 120F Mole Wt BTU/Gal
    MEA 15 0.33 0.99 61.08 1200
    DGA 50 0.35 1.058 105.14 1300
    DEA 30 0.35 1.02 105.14 1100
    MDEA 50 0.35 1.03 119.16 1000

    Intermediate Calculation Results
    CO2 and H2S to be removed 60.84 lb-moles/hr
    Solution specific gravity 1.04 VLOOKUP(UPPER($C$27),PROP,4,FALSE)
    Amine molecular weight 105.14 =VLOOKUP(UPPER($C$27),PROP,5,FALSE) Do you know how cell DEA($C$27) at the top of the sheet is referenced to the two cells for Specific Gravity 1.04 & Molecular Weight 105.14 is nested or referenced?
    Can’t find the chart UPPER on the spread sheet. PROP is Amine Look Up Table, immediately above the text.
    Could send he spread sheet to you.

  9. ateny says

    It is very helpful website I have ever visited. I recommended already to all of my friends and the love it.

  10. David T says


    I got a format from a resigned employee, but I don’t understand “,IF({1,0},…”, I cannot find information why there is {1,0} in the IF.

    =VLOOKUP(B2&E2,IF({1,0},’PT New Sales’!$C$2:$C$200&’PT New Sales’!$F$2:$F$200,’PT New Sales’!$G$2:$G$200),2,FALSE)

    Please help, Thanks

    • says

      Hi David T,

      In the IF({1,0} the 1 = TRUE and the 0 = FALSE.

      The formula is testing to see if the value in B2 is in the range C2:C200, and if the value in E2 is in the range F2:F200, if both match return the value in column G.

      It’s an interesting formula. I have not seen it done this way before. I hope that helps.

      Kind regards,


      P.S. I have to thank Roberto Mensa for helping me clarify what this formula is doing :)

  11. Barb Laing says

    You bring clarity to Excel. I am not just applying a formula, now I know what each component parts mean.

    Thank you


  12. yash says

    It is very useful,thanks for that,but i want to ask,if Commissioning rates(As per example) is another excel sheet,so can we use vlookup,I tried but is showing error?

  13. Penelope says

    Firstly thanks for an awesome site. I have intermediate excel skills, but you’re explanations have made learning new formulas really easy!

    In relation to VLOOKUP – I’m using it in a training register to confirm who has completed which training on what date. The column with the formula is formatted for dates as dd/mm/yyyy. Some people haven’t completed the training yet, and rather than leaving the cell blank it gives the result 0/01/1900. This is the formula as I’ve put it in the sheet =VLOOKUP($A5,Induction!$A:$C,3,FALSE). Is there any thing I can do to make it leave the cell blank if the reference is blank or perhaps a different formula I could use

  14. Pero Peric says

    I need a help with Excel formula, probably it’s easy but I can’t get it!
    I have a table of one month and in 2right columns 2 figures, the form is used for account.
    I made a box with Now() and want to make a formula to take data from table for present day. So first have to confirm same date as today from table and then to take data from 2right columns.
    Thank You Very Much in Advance

    • Carlo Estopia says

      Hi Arvind,

      I would say either your browser has changed the file extension of the workbook from .xlsx to something else, or you are using Excel version pre-2007?

      You can try again and make sure the file extension is .xlsx of the saved file.

      If you have Excel 2003 or earlier let us know and we’ll make a pre-2007 version available.



  15. HASSAN KARIM says

    hi mynda,
    can u help me in vlookup formula.i think it is scarry for how use this formula in very easy.i have two difrent sheet in two difrent file .tell me how can i handle this…………plzzzzzzzzzzzzz

    • Carlo Estopia says

      Hi Hassan,

      Here’s an example. I want to lookup Aquino, Greg’s position in Sheet2

      The Formula:



            A                   B
      1 Aquino, Greg	[VLOOKUP FORMULA HERE]Pitcher

      Workbook2: Sheet1

      7  Name	         Position	Salary	 Pay Rise 2004 	Pay Rise 2005	Pay Rise 2006
      8  Aquino, Greg	 Pitcher	325,000	 29,250 	 28,340 	 22,955 
      9  Bruney, Brian Pitcher	322,500	 29,025 	 28,122 	 22,779 
      10 Choate, Randy Pitcher	550,000	 49,500 	 47,960 	 38,848 

      Read More: VLOOKUP



  16. Manoj Yadav says

    If some time invest the amt 12000 in medicine and after the selling received total amt 18000 , how many % income

    • Carlo Estopia says

      Hi Manoj,

      It’s a simple formula.

        A       B         C   
      12000	18000	0.333333333



      I hope it helps.



  17. Proficient says

    Hi Mynda!

    We can use Vlookup either side…



  18. mohammed adil says

    I have two tables one with colum name as “login id” and another with “computer name” and same colum in other sheet. i just want to compair login id and copy respective computer name to it. i tryed following funtion
    =VLOOKUP(A2,sheet2!A:b,2,0) result is #N/A

    • Carlo Estopia says

      Hi Mohammed Adil,

      Your VLookup should look like this:


      Your Table Array part don’t have the row arguments. It must have the numbers in other words i.e. Shee2!A2:B4.

      Read more on VLOOKUP BASICS



  19. Lynn says

    I have used this lookup formula for years with complete confidence.
    =if(vlookup(cell,range,1)=cell,vlookup(cell,range,Column # to be returned),” “). This returns an exact match if found and a blank cell if not.

    But I have run into a problem, my formula is not returning anything on some newly added items in the lookup range. The item are still in sorted order and still in the lookup range. The format of the information is a match. Have you come across this?

    • Carlo Estopia says

      Hi Lynn,

      Please try to send your file through HELP DESK so we can have a good look at your problem.

      Anyways, my diagnosis is that you did not have absolute references to your table_array part
      of your VLOOKUP.

      For example


      You can do this by highlighting the ranges -only i.e. C5:D9- and press F4; or
      You can simply put Dollar($) sign manually.



  20. 6tel says

    Hi Mynda. The best for you in 2013… As usual, finding the best answers here… Excellent job, really.

    Mynda, I’m having a trouble. Your explanation was great on the Vlookup formula syntaxis, but I was just wondering if the “col_index_num” requirement would look into rows instead of columns…. How would achieve that? I guess this function isn’t going to work for me, since I need to return a value that’s five rows under the respective “lookup_value” reference, and not to the side…

    Is there an equivalent to this formula, but reading from the top of a table to its bottom?

    =VLOOKUP(lookup_value, table_array, col_index_num ,range_lookup)

  21. SREEDHARA says

    And to translate it into English it would read:

    VLOOKUP(find this value, in that table, return the value in column x of the table, but only return a result if you can match the value exactly)
    TNK U

  22. Martin Williamson says

    I have a challenging excel vlookup problem I can’t solve and I can relate it to your example.

    In my problem there is an additional column in the table of rates called “effective date”.

    Insert a new column between Column G:H, and add title “Effective Date” Then give all those in your rates table an effective date of 01 Jan 08.

    However, Dave gets a raise on 01 Mar 08 to 6% commission. (Well done Dave!)

    Insert a new entry below Dave’s 01 Jan 08 entry and add:
    01 Mar 08 Dave 6%

    However, with your current formula, it does not find Dave’s new rate for sales after 01 Mar 08.

    I have tried index match formula’s but also to no avail.

    I really, really, hope you’re able to help as this has been bugging me for months.
    Many thanks for your time. Regards, Martin

    • says

      Hi Martin,

      If you know you are looking for the date on 01 Mar 08 you could use SUMIFS:


      or if you’re using Excel 2003 use SUMPRODUCT:


      However, if you’re just looking for the last record for Dave (your data would need to be sorted in ascending order) then you can use:




      Where column G contains your names, H your dates and I contains your commission rates.

      Kind regards,


      • Martin Williamson says

        Thanks for the prompt reponse and the numerous solutions.

        I’ll try those out and see if I can get them to fit my situation.
        Again, many thanks, your prompt response has been much appreciated. :)

  23. gshephard says

    Finally found a clear explanation in plain english on how to use this function. Wish i had found this site 1 hour ago! Thanks!

    • says

      Hi Prakash,

      When you build your VLOOKUP formula you can use your mouse to select the cells on another worksheet. Excel will automatically put in the cell references for you.

      Kind regards,


  24. Ana da Silva says

    Finally. I have found someone that can translate “computer lingo” into English.

    I have been lost in the land of technology, and then……. I have found my little slice of heaven. This website.

    From one bean counter to another. THANK YOU.

  25. Lynn Ashworth says

    This is excellent. I have been trying to teach myself vlookup today using the Help option and it didn’t help! What a difference it makes to actually see the data and have it so clearly explained. You have de-mystified vlookup for me and I’m now looking forward to getting to work tomorrow to try it out on my spreadsheet! Thank you very much.

  26. AV says

    Awesome breakdown of the VLOOKUP formula. This saved my day at work. I came here because it seemed intimidating but after seeing the tutorial, I now scoff at its fear-factor, lol. You also have a hot voice. Extra brownie points for you! : )

  27. Chris K says

    Is there any way to have a vlookup formula present where if the fields are left blank you can have a return of 0 instead of N/A? I tried including a blank line item in my chart with a 0 value but it still comes back as N/A and is killing my totals.
    I can show you my work so far but it is getting messy!

      • Manjinder Mavi says

        Hi Mynda,

        Your “plain english” style of explaining things motivated me to learn more.

        Related to Chris K’s query above, VLOOKUP puts a value 0 if the corresponding value cell (column index cell) is empty. It messes up my other calculations. Is there any way to get VLOOKUP with help of other function to return a particular value (say “Empty”) if the cell is empty.

        I understand we can use IFERROR with VLOOKUP the lookup value can’t be found. But I am interested when the lookup value is found but the corresponding column index cell for that lookup value is empty.


        Best regards,

  28. Imran says

    Dear Mynda,

    I like your videos , especially your style of narrating complex problems in a simple and effective manner.

    Keep up the good work and Allah bless you.


  29. Cheryl Blalock says

    I’m currently using vlookup in my work. Now I have an problem to solve. I have two reports that I need to work with. One FY12 customer sales with part numbers. The other FY13July customer sales with part numbers. I want to put the FY13July sales number in a column on the FY12 File and add to each month end so we have a running total. The problem is the look up value is not unique. Many customer buy the same part #. Is there a way to use 2 cells as the look up value? (acct # & part #) Thanks for your help.

  30. kashee says

    Great job !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

  31. Andi says

    Thanks so much! Starting a new job and had to refresh my vlookup skills! Great website. I’ll be back.

  32. Ramamoorthi says

    The article was simple and easy to understand. It cleared the doubts I had about VLOOKUp function. I want more such articles to improve my working with Excel. Thanks a lot

  33. RHC says

    Awesome post tim, it’s been a while since I’ve been on here. I see that nobody has lost their passion. Good to be back.