|
VLOOKUP
Searches for a value in the leftmost column of a table, and then returns a value in the same row from a column 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)
Lookup_value is the value to be found in the first column of the array. Lookup_value can be a value, a reference, or a text string.
Table_array is the table of information in which data is looked up. Use a reference to a range or a range name, such as Database or List.
-
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 need to be sorted.
-
You can put the values in ascending order by clicking Sort Ascending
on the spreadsheet toolbar.
-
The values in the first column of table_array can be text, numbers, or logical values.
-
Uppercase and lowercase text are equivalent.
Col_index_num is 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 is a logical value that specifies whether you want VLOOKUP 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, VLOOKUP will find an exact match. If one is not found, the error value #N/A is returned.
Remarks
- 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 lookup_value is smaller than the smallest value in the first column of table_array, VLOOKUP returns the #N/A error value.
- If VLOOKUP can't find lookup_value, and range_lookup is FALSE, VLOOKUP returns the #N/A value.
Example
The example may be easier to understand if you copy it to a blank spreadsheet.
- Create a blank spreadsheet.
- Select the example in the Help topic.
![]()
Selecting an example from Help
- Press CTRL+C.
- In the spreadsheet, select cell A1, and press CTRL+V.
- To switch between viewing the formula that returns the result and the result in the cell, select the cell and press F2 and then ENTER, or click Commands and Options on the spreadsheet toolbar, click the Formula tab, and look in the Formula in active cell (active cell) box.
The example uses values for air at 1 atm pressure.
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(1,A2:C10,2) | Looks up 1 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, and returns the value from column C in the same row. (100) | |
=VLOOKUP(.7,A2:C10,3,FALSE) | Looks up 0.746 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, and returns the value from column B in the same row. (1.71) |