VLOOKUP function

Searches for a value in the leftmost column of a table, and then returns a value in the same row from a column that you specify in the table. Use VLOOKUP instead of HLOOKUP when your comparison values are located in a column to the left of the data you want to find.

The V in VLOOKUP stands for "Vertical."

Syntax

VLOOKUP(lookup_value,table_array,col_index_num, range_lookup )

Argument Description Remarks
lookup_value The value to be found in the first column of the array. The lookup_value argument can be a value, a reference, or a text string.
  • If VLOOKUP can't find lookup_value, and range_lookup is TRUE, it uses the largest value that is less than or equal to lookup_value.
  • If VLOOKUP can't find lookup_value, and range_lookup is FALSE, VLOOKUP returns the #N/A value.
  • If lookup_value is smaller than the smallest value in the first column of table_array, VLOOKUP returns the #N/A error value.
table_array The table of information in which data is looked up. You can use a reference to a range or a range name.
  • The values in the first column of table_array can be text, numbers, or logical values.
  • If range_lookup is TRUE, the values in the first column of table_array must be placed in ascending order: ..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE; otherwise VLOOKUP may not give the correct value. If range_lookup is FALSE, table_array does not have to be sorted.
  • You can put the values in ascending order by choosing the Sort command from the Data menu and selecting Ascending.
  • Uppercase and lowercase text are equivalent.
col_index_num The column number in table_array from which the matching value must be returned.
  • A col_index_num of 1 returns the value in the first column in table_array; a col_index_num of 2 returns the value in the second column in table_array, and so on.
  • If col_index_num is less than 1, VLOOKUP returns the #VALUE! error value.
  • If col_index_num is greater than the number of columns in table_array, VLOOKUP returns the #REF! error value.
range_lookup A logical value that specifies whether you want this function to find an exact match or an approximate match.
  • If TRUE or omitted, an approximate match is returned. In other words, if an exact match is not found, the next largest value that is less than lookup_value is returned.
  • If FALSE, this function will find an exact match.If one is not found, the error value #N/A is returned.

Example

The example uses values for air at 1 atm pressure.

To make the following example easier to understand, you can copy the data to a blank sheet and then enter the function underneath the data. Do not select the row or column headings (1, 2, 3... A, B, C...) when you copy the sample data to a blank sheet.

Density Viscosity Temperature
0.457 3.55 500
0.525 3.25 400
0.616 2.93 300
0.675 2.75 250
0.746 2.57 200
0.835 2.38 150
0.946 2.17 100
1.09 1.95 50
1.29 1.71 0
Formula Description (Result)  
=VLOOKUP(0.946,A2:C10,2) Looks up 0.946 in column A, and returns the value from column B in the same row. (2.17)  
=VLOOKUP(1,A2:C10,3, TRUE ) Looks up 1 in column A, matches the next smallest value (0.946), and returns the value from column C in the same row. (100)  
=VLOOKUP(.7,A2:C10,3, FALSE ) Looks up 0.7 in column A. Because there is no exact match in column A, an error is returned. (#N/A)  
=VLOOKUP(0.1,A2:C10,2, TRUE ) Looks up 0.1 in column A. Because 0.1 is less than the smallest value in column A, an error is returned. (#N/A)  
=VLOOKUP(2,A2:C10,2, TRUE ) Looks up 2 in column A, matches the next smallest value (1.29), and returns the value from column B in the same row. (1.71)  

See also

HLOOKUP function

INDEX (array) function

INDEX (reference) function

LOOKUP (array) function

LOOKUP (vector) function

MATCH function

List of all functions (by category)

I see #N/A instead of content in some cells

 
 
Applies to:
Excel for Mac 2011