Search Contextures Sites

Excel VLookup Function and VLookup Example

Select a Location for a Lookup Table 
Create a Lookup table 
Excel VLOOKUP Function Arguments 
Create an Excel VLookup formula 
Create an Excel VLookup formula for a range of values  
Combine IF and VLOOKUP 
Combine IFERROR and VLOOKUP 
Troubleshoot the VLOOKUP formula 

In a workbook, you can create a table that stores information about your products, or employees, or other data you want to refer to frequently. From other cells in the workbook, you can use an Excel VLookup formula to look up data from the master table.

Download the
sample Excel VLOOKUP workbook  

Download the
sample 2007 Excel VLOOKUP workbook  



Select a Location for a Lookup Table

It's a good idea to store each lookup table on a separate worksheet in the workbook. Then, as you add and delete rows in the lookup tables, you won't accidentally add or delete rows in any other table.

In this example, the lookup table is on a sheet named Products.

Create a Lookup Table

Lookup formulas can work vertically, looking for values down a column, or they can work horizontally, looking for values across a row. In this example, the information will be stored vertically, with values down a column, and later we'll use an Excel VLookup formula to do a vertical lookup.

  1. Enter the headings in the first row
  2. The first column should contain the unique key values on which you will base the lookup. In this example, you can find the price for a specific product code.
  3. If you have other data on the worksheet, leave at least one blank row at the bottom of the table, and one blank column at the right of the table, to separate the lookup table from the other data.

Note: To make it easier to refer to the table, you can name the range. There are instructions here: Naming a Range  

A
B
C
D
1
Code
Product
Price
 
2
A23
Paper
5.00
 
3
B14
Lamp
15.00
 
4
A27
Desk
75.00
 
5
C45
Pencil
0.50
 
6        


Excel VLOOKUP Function Arguments

The Excel VLOOKUP function has four arguments:

  1. lookup_value: What value do you want to look up? In this example, the product code is in cell A7, and you want to find its product name.
  2. table_array: Where is the lookup table? If you use an absolute reference ($A$2:$C$5), instead of a relative reference (A2:C5), it will be easier to copy to formula to other cells. Or, name the lookup table, and refer to it by name.
  3. col_index_num: Which column has the value you want returned? In this example, the product names are in the second column of the lookup table.
  4. [range_lookup]: Do you want an exact match? Is an approximate match okay?
    If you use TRUE as the last argument, or omit the last argument, an approximate match can be returned. This example has FALSE as the last argument, so if the product code is not found, the result will be #N/A. (Note: Excel is rather forgiving, and will accept 0 instead of FALSE, and 1 instead of TRUE.)

 


Create an Excel VLookup formula

To view the steps in a short Excel VLookup video, click here

Once you have created the lookup table, you can create other formulas in the workbook, and pull information from the product list. For example, to prepare an invoice, you can enter a product code, and formulas will get the product name or price from the product table.

In this example, the invoice is created on a sheet named Invoice. The Excel VLOOKUP formula should find an exact match for the product code, and return the product name.

  1. Select the Invoice sheet
  2. Enter product code A23 in cell A7
  3. In cell B7, start the VLOOKUP formula:
      =VLOOKUP(
  4. Click on cell A7 to enter its reference.
  5. Type a comma, to end the first argument
  6. Select the Products sheet
  7. Select cells A2:C5 (the product list)
  8. Press the F4 key, to change the cell references to absolute. The formula should now look like this: 
       =VLOOKUP(A7,Products!$A$2:$C$5
  9. Type a comma to end the second argument.
  10. Type a 2, which is the column in the lookup table that contains the Product name.
  11. Type a comma to end the third argument.
  12. Type FALSE, to specify that an exact match for the product code is found, and add the closing bracket.
  13. The formula should now look like this: 
       =VLOOKUP(A7,Products!$A$2:$C$5,2,FALSE)
  14. Press the Enter key to complete the formula. The product name will be displayed.

Note: To return the product price, create a VLOOKUP formula that refers to column 3 of the lookup table. For example, enter the following formula in cell C7:
          =VLOOKUP(A7,Products!$A$2:$C$5,3,FALSE)   


Create an Excel VLookup formula for a range of values

In some situations, an approximate match is preferred, so several values will return the same result. For example, when grading student papers, all papers with a grade of 85 or over should receive an A grade.

To view the steps in a short Excel VLookup video, click here

In this example, the lookup table is created on a sheet named Grades. To create the lookup table, enter the minimum score for each grade in column A. Enter the matching Grade in column B. Sort the Scores in Ascending order.

Cells A2:B6 were named GradeList.

The scores are entered on a sheet named Report Card, where an Excel VLOOKUP formula calculates the grade.

 

A
B
1
Score
Grade
2
0
F
3
50
D
4
60
C
5
75
B
6
85
A
  1. On the Report Card sheet, in cell B4, enter the score 77.
  2. In cell C4, enter the VLOOKUP formula:
      =VLOOKUP(B4,GradeList,2)
  3. Press the Enter key, and the grade for English -- B -- is returned.


Combine IF and VLOOKUP

You can use an IF formula with an Excel VLookup formula, to return exact values if found, and an empty string if not found.
  1. On the Invoice sheet, in cell A8, enter the product code A28. If the VLookup formula in cell B8 has FALSE as the fourth argument, the result is #N/A, because there is no exact match for the product code in the lookup table.
  2. Wrap the VLookup formula with an IF formula (in this example the product list has been named):
      =IF(ISNA(VLOOKUP(A8,ProductList,2,FALSE)),"",VLOOKUP(A8,ProductList,2,FALSE))
  3. Press the Enter key, and cell appears blank. Because no exact match was found, the VLookup formula returned an #N/A. The IF formula converted this to an empty string.

If the lookup table contains any blank cells, a VLOOKUP formula will return a zero, instead of a blank cell. You can use nested IFs to handle the #N/A results, and the empty cell results. For example:
      =IF(ISNA(VLOOKUP(A8,ProductList,2,FALSE)),"",
            IF(VLOOKUP(A8,ProductList,2,FALSE)="","",
              VLOOKUP(A8,ProductList,2,FALSE)))

 


Combine IFERROR and VLOOKUP

Thanks to Chip Pearson for suggesting this formula.

In Excel 2007, a new function, IFERROR, was introduced. You could use an IFERROR formula with VLookup to check several tables for a value, and return the related information when found. In this example, three regions, West, East and Central, have order sheets. On each sheet is a named range -- OrdersW, OrdersE and OrdersC.

On a sheet named Orders, you can enter an Order ID, then use a VLOOKUP with IFERROR to check each named range, and view the information about the selected order.

  1. On the Order sheet, in cell B6, enter a 4 as the OrderID. That order was placed in the Central region.
  2. To simply check the East region's table, the VLOOKUP formula in cell C6 would be:
      =VLOOKUP(B6,OrdersE,2,FALSE)
  3. Press the Enter key, and the VLOOKUP formula returns an #N/A, because Order ID 4 is not in the East regions order table.
  4. Because an order could have been placed in any of the three regions, you need a formula that will check each table.
    If the order ID is not found in the first table, the formula should check second table. If the order ID is not in the second table, it should check the third table. If the order ID isn't in the third table, then a "Not Found" message should appear in the cell.
  5. The IFERROR formula lets you check a value, then specify what to do if an error is found. If you use IFERROR with the existing formula, you can show "Not Found", instead of the #N/A error: 
     =IFERROR(VLOOKUP(B6,OrdersE,2,FALSE),"Not Found")
  6. To check all three tables, you can next IFERROR and VLOOKUP formulas:

      =IFERROR(VLOOKUP(B6,OrdersE,2,FALSE),                IFERROR(VLOOKUP(B6,OrdersW,2,FALSE),                IFERROR(VLOOKUP(B6,OrdersC,2,FALSE),"Not Found")))

This checks the OrdersE table and if an error is found, checks OrdersW table, then OrdersC. If the OrderID is not found in any of the three tables, the Not Found message is shown in the cell.

You can also check multiple tables in older versions of Excel, where IFERROR is not available, using a longer formula:

      =IF(NOT(ISERROR(VLOOKUP(B8,OrdersE,2,FALSE))),
                VLOOKUP(B8,OrdersE,2,FALSE),
        IF(NOT(ISERROR(VLOOKUP(B8,OrdersW,2,FALSE))),
                VLOOKUP(B8,OrdersW,2,FALSE),
        IF(NOT(ISERROR(VLOOKUP(B8,OrdersC,2,FALSE))),
                VLOOKUP(B8,OrdersC,2,FALSE),"Not Found"))))

 


Troubleshoot the Excel VLOOKUP formula

Your Excel VLOOKUP formula may return an #N/A, even though the value you're looking for appears to be in the lookup table.

Text vs. Number

A common cause for this error is that one of the values is a number, and the other is text. For example, the lookup table may contain '123 (text), and the value to look up is 123 (a number).

If possible, convert the text to numbers, using one of the methods shown here:
      Convert Text to Numbers

If you can't convert the data, you can convert the lookup value within the Excel VLOOKUP formula:

Lookup values are Text, and the table contains Numbers

If the lookup table contains numbers, and the value to look up is text, use a formula similar to the following:

=VLOOKUP(--A7,Products!$A$2:$C$5,3,FALSE)

The double unary (--) converts text to a number, and will work correctly even if the lookup values are numbers.

Lookup values are Numbers, and the table contains Text

If the lookup table contains text, and the value to look up is numeric, use a formula similar to the following:

=VLOOKUP(A7 & ""),Products!$A$2:$C$5,3,FALSE)
OR
=VLOOKUP(TEXT(A7,"00000"),Products!$A$2:$C$5,3,FALSE)

The TEXT function converts a number to text, and will work correctly even if the lookup values are text. In the first example, the & operator creates a text string from an unformatted number. In the second example, a number formatted with leading zeros (e.g. 00123) would match a text "number" with leading zeros.

Spaces in one value, and not the other

Another potential cause for no matching value being found is a difference in spaces. One of the values may contain leading spaces (or trailing, or embedded spaces), and the other doesn't. To test the values, you can use the LEN function, to check the length of each value.
For example:   =LEN(A7)     will return the number of characters in cell A7. It should be equal to the number of characters in the matching cell in the lookup table.

If possible, remove the unnecessary spaces, and the VLOOKUP formula should work correctly. If you can't remove the spaces, use the TRIM function in the VLOOKUP, to remove leading, trailing or duplicate spaces. For example:
    =VLOOKUP(TRIM(A7),ProductList,2,FALSE)

HTML characters in one value, and not the other

If you copied data from a web page, it may contain non-breaking space (&nbsp) characters. David McRitchie has written a macro to remove them, along with other spaces characters -- http://www.mvps.org/dmcritchie/excel/join.htm#trimall  

   Download zipped Excel VLookup sample workbook    Download zipped Excel VLookup sample 2007 workbook  

 

Learn how to create Excel dashboards.

Excel Tutorials

Excel SUM Function  
Excel VLOOKUP Function  
Excel INDEX function and Excel MATCH Function   
Excel Count Function  
Excel INDIRECT Function  

Excel Video Tutorials

Excel MATCH Function Video Tutorial  
Excel VLOOKUP Function Video Tutorial 

 

 

       Home     Excel Tips     Excel Files     The Excel Store     Blog     Contact

 

Privacy Policy

 

Contextures Inc., Copyright © 2009.
All rights reserved.

 

Search Contextures Sites
 

Last updated: December 21, 2009 1:23 AM

Create Excel dashboards quickly with Plug-N-Play reports.