HLOOKUP 函數

Applies To
Excel for Microsoft 365 Excel for Microsoft 365 for Mac Excel 2024 Excel 2024 for Mac Excel 2021 Excel 2021 for Mac Excel 2019 Excel 2016

秘訣

請嘗試使用新的 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