秘訣
請嘗試使用新的 XLOOKUP 函數,這是 HLOOKUP 的改良版本,可朝任何方向運作,並預設會傳回完全符合的比對,因此比其前置函數更容易且更方便使用。
本文將說明 Microsoft Excel 中 HLOOKUP 函數的公式語法及使用方式。
描述
在表格或值列陣的第一列尋找值,然後傳回表格或陣列之指定列中同一欄的值。 當比較值位於資料表的第一列中,而且您想要在指定列數下方尋找時,請使用 HLOOKUP。 當比較值位於您要尋找之資料左方的某一欄時,請使用 VLOOKUP。
H 在 HLOOKUP 中表示「水平」。
語法
HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])
HLOOKUP 函數語法具有下列引數:
Lookup_value 必填項目。 要在表格的第一列找到的值。 Lookup_value可以是數值、參照或文字字串。
Table_array 必填項目。 查詢資料的資訊表。 使用範圍或範圍名稱的參照。
- Table_array 第一列中的值可以是文字、數字或邏輯值。
- 如果 range_lookup 為 TRUE,table_array 第一列中的數值必須按照遞增順序排列:...-2,-1,0,1,2,...,A-Z,FALSE,TRUE;否則 HLOOKUP 不一定能找出正確的值。 如果 range_lookup 為 FALSE,table_array 就不需要排序。
- 文字不區分大小寫。
- 以遞增順序由左至右排序值。 如需詳細資訊,請參閱排序某個範圍或表格中的資料。
Row_index_num 必填項目。 將從中傳回相符值的 table_array 中的列號。 row_index_num為 1 會以 table_array 形式傳回第一列值,row_index_num為 2 會以 table_array 形式傳回第二列值,依此類推。 如果row_index_num小於 1,HLOOKUP 會傳回 #VALUE! 錯誤值;如果 row_index_num 大於 table_array 上的列數,HLOOKUP 會傳回 #REF! 的錯誤值。
Range_lookup 選用。 這是用以指定要 HLOOKUP 尋找完全相符或大約相符項目的邏輯值。 如果為 TRUE 或省略,則會傳回大約相符項目。 換句話說,如果找不到完全相符的項目,則會傳回小於 lookup_value 的下一個最大值。 如果為 FALSE,HLOOKUP 會尋找完全相符的項目。 如果找不到,則會傳回錯誤值 #N/A。
註解
- 如果 HLOOKUP 找不到 lookup_value,且 range_lookup 為 TRUE 時,則使用僅次於 lookup_value 的最大值。
- 如果 lookup_value 比 table_array 第一列中的最小值還小,則 HLOOKUP 會傳回錯誤值 #N/A。
- 如果 range_lookup 為 FALSE 且 lookup_value 為文字,則您可以在 lookup_value 中使用萬用字元、問號 (?) 和星號 (*)。 問號可比對任一字元;星號可比對任一連續的字元。 若要尋找實際的問號或星號,請在該字元前輸入波狀符號 (~)。
範例
請在下列表格中複製範例資料,再將之貼到新 Excel 活頁簿中的儲存格 A1。 若要讓公式顯示結果,請選取公式,按 F2,然後再按 Enter。 如有需要,您可以調整欄寬來查看所有資料。
| 輪軸 | 軸承 | 螺栓 |
|---|---|---|
| 4 | 4 | 9 |
| 5 | 7 | 10 |
| 6 | 8 | 11 |
| 公式 | 描述 | 結果 |
| =HLOOKUP("輪軸", A1:C4, 2, TRUE) | 在列 1 中查詢 "輪軸",從同一欄 (欄 A) 的列 2 傳回值。 | 4 |
| =HLOOKUP("軸承", A1:C4, 3, FALSE) | 在列 1 中查詢 "軸承",從同一欄 (欄 B) 的列 3 傳回值。 | 7 |
| =HLOOKUP("B", A1:C4, 3, TRUE) | 在列 1 中查詢 "B",從同一欄的列 3 傳回值。 由於找不到與 "B" 完全相符的項目,因此使用列 1 中小於 "B" 的最大值:欄 A 中的 "輪軸"。 | 5 |
| =HLOOKUP("螺栓", A1:C4, 4) | 在列 1 中查詢 "螺栓",從同一欄 (欄 C) 的列 4 傳回值。 | 11 |
| =HLOOKUP(3, {1,2,3;"a","b","c";"d","e","f"}, 2, TRUE) | 在三列的常數陣列中查詢數字 3,並從同一欄 (在此案例中為第三欄) 的列 2 傳回值。 常數陣列中有三列的值,每一列均以分號 (;) 區隔。 由於在列 2 找到 "c",而在同一欄是 3,因此會傳回 "c"。 | c |