Searches for a value in the top row of a table or in an array of values, and then returns a value in the same column from a row you specify in the table or array. Use HLOOKUP when your comparison values are located in a row across the top of a table of data, and you want to look down a specified number of rows. Use VLOOKUP when your comparison values are located in a column to the left of the data you want to find.
The H in HLOOKUP stands for Horizontal.
Syntax
HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)
Lookup_value is the value to be found in the first row of the table. Lookup_value can be a value, a reference, or a text string.
Table_array is a table of information in which data is looked up. Use a reference to a range or a range name.
-
The values in the first row of table_array can be text, numbers, or logical values.
-
If range_lookup is TRUE, the values in the first row of table_array must be placed in ascending order: ..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE; otherwise, HLOOKUP may not give the correct value. If range_lookup is FALSE, table_array does not need to be sorted.
-
Uppercase and lowercase text are equivalent.
-
You can put values in ascending order by clicking on the spreadsheet toolbar.
Row_index_num is the row number in table_array from which the matching value will be returned. A row_index_num of 1 returns the first row value in table_array, a row_index_num of 2 returns the second row value in table_array, and so on. If row_index_num is less than 1, HLOOKUP returns the #VALUE! error value; if row_index_num is greater than the number of rows on table_array, HLOOKUP returns the #REF! error value.
Range_lookup is a logical value that specifies whether you want HLOOKUP 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, HLOOKUP will find an exact match. If one is not found, the error value #N/A is returned.
Remarks
- If HLOOKUP can't find lookup_value, and range_lookup is TRUE, it uses the largest value that is less than lookup_value.
- If lookup_value is smaller than the smallest value in the first row of table_array, HLOOKUP returns the #N/A error 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.
Axles | Bearings | Bolts |
---|---|---|
4 | 4 | 9 |
5 | 7 | 10 |
6 | 8 | 11 |
Formula | Description (Result) | |
=HLOOKUP("Axles",A1:C4,2,TRUE) | Looks up Axles in row 1, and returns the value from row 2 that's in the same column. (4) | |
=HLOOKUP("Bearings",A1:C4,3,FALSE) | Looks up Bearings in row 1, and returns the value from row 3 that's in the same column. (7) | |
=HLOOKUP("B",A1:C4,3,TRUE) | Looks up B in row 1, and returns the value from row 3 that's in the same column. Because B is not an exact match, the next largest value that is less than B is used: Axles. (5) | |
=HLOOKUP("Bolts",A1:C4,4) | Looks up Bolts in row 1, and returns the value from row 4 that's in the same column. (11) | |
=HLOOKUP(3,{1,2,3;"a","b","c";"d","e","f"},2,TRUE) | Looks up 3 in the first row of the array constant, and returns the value from row 2 in same column. (c) |