VLOOKUP,HLOOKUP,LOOKUP 資料查詢

VLOOKUP 在表格陣列的最左邊欄中搜尋某個數值,並傳回該表格陣列中同一列之其他欄中的數值。 VLOOKUP 中的「V」代表「垂直」。

語法

VLOOKUP(Lookup_value,Table_array,Col_index_num,Range_lookup)
VLOOKUP(查詢值,查詢表,傳回相對應第n欄的資料,查詢方式)

Lookup_value  在Table_array的最左邊欄中搜尋Lookup_value ,可以是值也可以是參照位址。

Table_array  被搜尋資料且有兩欄以上的資料表格。通常table_array是個儲存格範圍的參照位址或範圍名稱,最左邊欄中的值可以是文字、數字或邏輯值 (不分大小寫)。

  • table_array 第一欄中的值必須以遞增順序排序;否則,VLOOKUP 可能無法提供正確的值。

Col_index_num  是個數字,代表要傳回的值位於 table_array 列中的第幾欄。如果 col_index_num 引數值為 1,則傳回 table_array 第一欄中的值;如果 col_index_num 引數值為 2,則傳回 table_array 第二欄中的值,依此類推。

Range_lookup  一個邏輯值,用來指定 VLOOKUP 應該要尋找完全符合(1)還是部分符合(0)的值:

  • 如果此引數值為 TRUE 或被省略了,則傳回完全符合或部分符合的值。如果找不到完全符合的值,將會傳回僅次於 lookup_value 的值。
  • 如果此引數值為 FALSE ,則 VLOOKUP 函數只會尋找完全符合的值。在此情況下,table_array 第一欄中的值便不需要排序。如果 table_array 第一欄中有兩個以上的值與 lookup_value 相符,將會使用第一個找到的值。如果找不到完全符合的值,則傳回錯誤值 #N/A。

按我觀看範例


HLOOKUP 在表格的最上方列中尋找含有某特定值的欄位,再傳回該表格陣列中同一欄之其他列中的數值。H 在 HLOOKUP 中表示 "水平"。

語法

HLOOKUP(Lookup_value,Table_array,Row_index_num,Range_lookup)
HLOOKUP(查詢值,查詢表,傳回相對應第n列的資料,查詢方式)

Lookup_value   在Table_array的最左邊欄中搜尋Lookup_value。lookup_value 可以是數值、參照位址或文字串。

Table_array   被搜尋資料且有兩列以上的資料表格。通常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 裡第二列的值,依此類推。

Range_lookup   一個邏輯值,用來指定 VLOOKUP 應該要尋找完全符合(1)還是部分符合(0)的值。

  • 如果此引數值為 TRUE 或被省略了,則傳回完全符合或部分符合的值。如果找不到完全符合的值,將會傳回僅次於 lookup_value 的值。
  • 如果此引數值為 FALSE ,則 HLOOKUP 函數只會尋找完全符合的值。在此情況下,table_array 第一欄中的值便不需要排序。如果 table_array 第一欄中有兩個以上的值與 lookup_value 相符,將會使用第一個找到的值。如果找不到完全符合的值,則傳回錯誤值 #N/A。

按我觀看範例


LOOKUP 函數有兩種語法形式:

向量  向量形式的 LOOKUP 函數會在一列或一欄的範圍中 (亦稱為向量) 尋找值並且從第二個一列或一欄範圍的相同位置中傳回值。

向量形式的 LOOKUP 函數會在一列或一欄的範圍中 (亦稱為向量) 尋找值並且從第二個一列或一欄範圍的相同位置中傳回值。當您想要指定包含您要比對的值的範圍,請使用這個形式的 LOOKUP 函數。其他形式的 LOOKUP 函數會自動尋找第一欄或列。

語法

LOOKUP」(Lookup_value,Lookup_vector,Result_vector)

Lookup_value  LOOKUP 函數在第一個向量中搜尋的值。Lookup_value 可為數字、文字、邏輯值,或是指向某值的名稱或參照位址。

Lookup_vector  僅包含一列或一欄的範圍。lookup_vector 中的值可為文字、數字,或邏輯值。

Result_vector  僅包含一列或一欄的範圍,而且大小一定與 lookup_vector 相同。

註解

  • 如果 LOOKUP 函數找不到 lookup_value,就會比對 lookup_vector 中,小於或等於 lookup_value 的最大值。
  • 如果 lookup_value 小於 lookup_vector 中的最小值,LOOKUP 函數會提供 #N/A 錯誤值。

陣列  陣列形式的 LOOKUP 函數則會在陣列的第一列或第一欄尋找指定值,然後從陣列中最後一列或最後一欄的相同位置中傳回值。

陣列形式的 LOOKUP 函數會在的第一個欄或列中尋找指定值,然後從陣列中最後一列或最後一欄的相同位置中傳回值。當您想要比對的值位在陣列第一列或第一欄時,請使用這個形式的 LOOKUP 函數。當您想要指定欄或列的位置時,請使用其他形式的 LOOKUP 函數。

語法

LOOKUP(Lookup_value,Array)

Lookup_value  LOOKUP 函數在陣列中搜尋的值。Lookup_value 可為數字、文字、邏輯值,或是指向某值的名稱或參照位址。

  • 如果 LOOKUP 函數找不到 lookup_value,就會使用陣列中小於或等於 lookup_value 的最大值。

  • 如果 lookup_value 小於第一列或第一欄 (視陣列的尺寸而定) 中的最小值,則 LOOKUP 函數會傳回 #N/A 錯誤值。

Array  包含文字、數字,或您要與 lookup_value 比較的邏輯值之儲存格範圍。陣列中的值必須以遞增順序排列。

陣列形式的 LOOKUP 函數與 HLOOKUP 和 VLOOKUP 函數非常類似;其差異是

HLOOKUP 會在第一列搜尋 lookup_value
VLOOKUP 會在第一欄搜尋 lookup_value
LOOKUP 會根據陣列的尺寸選擇第一列或第一欄的搜尋

  • 陣列區域欄比列多,則 LOOKUP 函數會在第一列中搜尋 lookup_value。
  • 陣列是正方形或是列比欄多,則 LOOKUP 函數會在第一欄中搜尋。
  • HLOOKUP 和 VLOOKUP,您可以向下或橫向索引,但是 LOOKUP 總是選取欄或列的最後一個值。


1 則留言:

  1. 如同時開了兩個FILE,為可被VLOOKUP的FILE開了在關,有公式的那個FILE便會全部"REF",什樣可以被VLOOKUP的FILE開後,也不會影響有公式FILE

    回覆刪除

[ 訊息 ]
本站將持續加入新的教學文章,請給予支持。若覺得文章寫的不錯,可以多按 " FUNP推推王 " 與 " 黑米書籤 " 。
到訪本站的朋友們,請在問題研討區多多留言或針對各文章發表意見或回應。