2010年7月11日 星期日

Excel: VLOOKUP 和 INDEX 函數應用

Excel: VLOOKUP 和 INDEX 函數應用:
 
在辦公室工作,一定會用到 Excel 來處理平常事務,特別是在一大堆文字或數字內,找尋你需要的資料。 案例:如每月都會收到客戶傳真、電郵、電話的訂定,訂單會有客戶名、訂單編號、貨品名稱、數量、交貨期、金額等等。一般自己公司會設定獨有的客戶號碼給客戶,所以需要在資料庫內找尋配對,可以用 Excel 的標準函數 VLOOKUP 或 INDEX+MATCH 來解決。
  • VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
  • INDEX(array,row_num,column_num)
  • MATCH(lookup_value,lookup_array,match_type) 
1) VLOOKUP 函數是在一陣列或表格的最左欄中尋找含有某特定值的欄位,再傳回同一列中某一指定儲存格中的值。如果用來比對的數值位於您所要尋找的資料之左邊直欄時使用。
 

2) 但如果用來比對的數值位於您所要尋找的資料之右邊直欄時,由於 col_index_num 不可以是 -1,所以便會出現問題!

在這種情況下,我們可以使用 INDEX 和 MATCH 函數來找尋結果。 MATCH 函數是根據指定的比對方式,傳回一陣列中與搜尋值相符合之相對位置。

MATCH(lookup_value,lookup_array,match_type)
match_type 是個數字,其值有三種可能:-1、0 或 1。用以指定 Microsoft Excel 如何從 lookup_array 裡尋找 lookup_value。

  • 如果 match_type 是 1,則 MATCH 函數會找到等於或僅次於 lookup_value 的值。Lookup_array 必須以遞增次序排列:...,-2,-1,0,1,2,...A-Z,FALSE,TRUE。
  • 如果 match_type 是 0,則 MATCH 函數會找第一個完全等於 lookup_value 的比較值。Lookup_array 可以依任意次序排列。
  • 如果 match_type 是 -1,則 MATCH 函數會找到等於或大於 lookup_value 的值中的最小值。Lookup_array 必須以遞減次序排列:TRUE,FALSE,Z-A,...,2,1,0,-1,-2,...。
  • 如果 match_type 引數被省略,則假設其值為 1。
範例
請注意,C2:C8 包含格式化成百分比數字的文字。
在上面的工作表中:
  • MATCH(39000,B2:B8,1) 等於 3 
  • MATCH(38000,B2:B8,0) 等於 2 
  • MATCH(39000,B2:B8,-1) 等於 #N/A ,因為範圍 B2:B8 的內容與 match_type 為 -1 時規定之排列順序不符(其順序必須是遞減的) 
3) 用 MATCH 來找出搜尋值相符合之相對位置,然後再用 INDEX 函數傳回根據指定欄列號碼所決定的表格或陣列中一個元素的值。
 


沒有留言:

張貼留言