Lookup & Reference
All versions
◉ 23 views
=HLOOKUP()
Searches for a value in the top row of a table or 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."
Applies To:
Excel for Microsoft 365Excel for Microsoft 365 for MacExcel 2024Excel 2024 for MacExcel 2021Excel 2021 for MacExcel 2019Excel 2016
=HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
Hover argument names in the table for details.
Output typeMixed
Popularity40 / 100
VolatileNo
Dynamic ArrayNo
Download sample .xlsx ▦ Try in Playground
Dedicated file for this function — safe & lightweight · sample data + live formulas
⬇ Download Sample Workbook
A dedicated .xlsx for =HLOOKUP() with Persian sample data & live formulas — open in Excel and practice.
- Sheet “Sample” — data table + formula in place
- Sheet “Guide” — syntax, arguments & tips from this page
- Instant & secure (token + rate limit)
Quiz this function
%d questions — syntax, example & errors — test yourself!
◧ Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
lookup_value |
Any type | Required | 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 |
Range | Required | 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. Sort the values in ascending order, left to right. For more information, see Sort data in a range or table. |
row_index_num |
Number | Required | 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 |
Logical | Optional | 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. |
▣ Examples
▦ Data
| Cell | Value |
|---|---|
A2 |
Axles |
B2 |
Bearings |
C2 |
Bolts |
A3 |
4 |
B3 |
4 |
C3 |
9 |
A4 |
5 |
B4 |
7 |
C4 |
10 |
A5 |
6 |
B5 |
8 |
C5 |
11 |
A6 |
Axles |
B6 |
Bearings |
C6 |
Bolts |
A7 |
4 |
B7 |
4 |
C7 |
9 |
A8 |
5 |
B8 |
7 |
C8 |
10 |
A9 |
6 |
B9 |
8 |
C9 |
11 |
Looks up "Axles" in row 1, and returns the value from row 2 that's in the same column (column A).
=HLOOKUP("Axles", A1:C4, 2, TRUE)
Result:
4
Looks up "Bearings" in row 1, and returns the value from row 3 that's in the same column (column B).
=HLOOKUP("Bearings", A1:C4, 3, FALSE)
Result:
7
Looks up "B" in row 1, and returns the value from row 3 that's in the same column. Because an exact match for "B" is not found, the largest value in row 1 that is less than "B" is used: "Axles," in column A.
=HLOOKUP("B", A1:C4, 3, TRUE)
Result:
5
Looks up "Bolts" in row 1, and returns the value from row 4 that's in the same column (column C).
=HLOOKUP("Bolts", A1:C4, 4)
Result:
11
Looks up the number 3 in the three-row array constant, and returns the value from row 2 in the same (in this case, third) column. There are three rows of values in the array constant, each row separated by a semicolon (;). Because "c" is found in row 2 and in the same column as 3, "c" is returned.
=HLOOKUP(3, {1,2,3;"a","b","c";"d","e","f"}, 2, TRUE)
Result:
c
✦ Tips
- Try using the new XLOOKUP function, an improved version of HLOOKUP that works in any direction and returns exact matches by default, making it easier and more convenient to use than its predecessor.
⚠ Common Errors
#VALUE!
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.
Fix: برای row_index_num عددی بین ۱ تا تعداد سطرهای table_array وارد کنید.
#REF!
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.
Fix: برای row_index_num عددی در محدوده سطرهای جدول وارد کنید یا محدوده table_array را بزرگتر کنید.
#N/A
If one is not found, the error value #N/A is returned.
Fix: Check the lookup value and clean the data
💬 Comments & Q&A 0 approved
🔒 Your comment will be published after review.Share your thoughts — visible after admin approval
No comments yet — be the first!