##title##

2019年8月7日

Excel:INDEX+MATCH=退著VLOOKUP

用vlookup的時候常常會遇到一個問題,只能傳回查的目標資料右方的資料。

如果用INDEX+MATCH就可以達到查目標資料左方的資料了。例如


=INDEX(C:C,MATCH(A2,D:D,0),1)

這樣的意思是在D欄查A2的資料,如果查到,回傳的值則當作INDEX函數中的列,並找出C欄對應列的值。


MATCH(lookup_value, lookup_array, [match_type])

MATCH 函數語法具有下列引數:

lookup_value    必要。 這是要在 lookup_array 中比對的值。 例如,當您在通訊錄中查閱某個人的號碼時,您是以那個人的姓名作為查閱值,但是電話號碼才是您要的值。

lookup_value 引數可以是一值 (數字、文字或邏輯值),也可以是數字、文字或邏輯值的儲存格參照。

lookup_array    必要。 這是要搜尋的儲存格範圍。

match_type    選擇性。 數字 -1、0 或 1。 match_type 引數會指定 Excel 如何將 lookup_value 與 lookup_array 中的值相比對。 這個引數的預設值是 1。

下表將描述該函數如何根據 match_type 引數的設定來尋找值。

MATCH函數參考:
https://support.office.com/zh-hk/article/match-%E5%87%BD%E6%95%B8-e8dffd45-c762-47d6-bf89-533f4a37673a


INDEX(array, row_num, [column_num])

陣列形式的 INDEX 函數具有下列引數:

array    必要。 儲存格範圍或陣列常數。

如果陣列包含只有一個資料列或欄,則相對應的 row_num 或 column_num 引數是選擇性的。

如果陣列有一個以上的列與多個欄中,使用 [僅限 row_num 或 column_num 設,INDEX 會傳回整列或欄的陣列陣列中。

row_num    必要。 選取列中的值傳回的陣列。 如果省略 row_num,column_num 是必要的。

column_num    選用。 選取要從中傳回值的陣列中的欄。 如果省略 column_num,row_num 是必要的。

註解
如果使用了 row_num 與 column_num 引數,INDEX 會傳回 row_num 與 column_num 交集處儲存格中的值。

row_num 及 column_num 必須對應到陣列; 內的儲存格否則,INDEX 會傳回 #REF ! 錯誤的非數字 (文字) 值,您的公式則會中斷。

如果將 row_num 或 column_num 設為 0 (零),INDEX 會分別傳回整欄或整列的值的陣列。 若要使用以陣列方式傳回的值,INDEX 函數輸入為陣列公式。

INDEX函數參考:
https://support.office.com/zh-hk/article/index-%E5%87%BD%E6%95%B8-a5dcf0dd-996d-40a4-a822-b56b061328bd

沒有留言:

張貼留言