本主題是 VLOOKUP 函數的前身:LOOKUP 函數,目的在於說明其參數 array 與上一主題介紹的 MATCH 函數的 lookup_array 有何差同?
回顧 MATCH 函數語法:
=MATCH(lookup_value, lookup_array, [match_type])。
MATCH 函數的第三個參數是 match_type,若 match_type 為 1 或省略,lookup_array 參數內的值必須以遞增次序排列,例如:...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE。
LOOKUP 函數語法:=LOOKUP(lookup_value, array)。如同省略了第三個參數的 MATCH 函數,所以 LOOKUP 函數的第二個參數 array 內的值也必須以遞增次序排列。array 就是 lookup_array,別被 EXCEL 騙了。
但 LOOKUP 函數並非找出 lookup_value 在 array 中的最小序位,而是找出與 array 各元素相對應的 "另一 array" 中的元素。"各元素相對應" 的兩個 array 說明了此兩個 array 必須同為單欄或單列的 "範圍",換句話說,兩個 array 為同方向的 "範圍"。
LOOKUP 函數 "正港" 語法:
=LOOKUP(lookup_value, lookup_vector, result_vector)。
終於將原本的 array 加上 lookup,又因 array 有方向性,也正名為 vector。而另一 array 存放查找的結果,又與 lookup_vector 同方向,故稱之 result_vector。
LOOKUP 函數 "簡潔" 語法:
=LOOKUP(lookup_value, lookup_table)。
也就是將 lookup_vector 與 result_vector 合併為一個 "查找資料表"。
一、 單欄的 lookup_vector:如下圖所示,lookup_vector 為一個單欄範圍 A3:A5 (有排序喔!),
result_vector 為一個單欄範圍 B3:B5,來源陣列1位址:A14:A22,來源陣列2位址:C14:C22。
1. 選取 D14:D22 (存放結果陣列),
輸入 =LOOKUP(A14:A22,A3:A5,B3:B5)*C14:C22,
按下 CTRL+SHIFT+ENTER。
{=LOOKUP(A14:A22,A3:A5,B3:B5)} 所產生的中繼陣列,再乘上來源陣列2 (位址;C14:C22)。(請參考 "系列二:四則運算")
二、 單列的 lookup_vector:如下圖所示,lookup_vector 為一個單列範圍 E3:G3 (有排序喔!),
result_vector 為一個單列範圍 E4:G4,相同來源陣列1及來源陣列2。
1. 選取 E14:E22 (存放結果陣列),
輸入 =LOOKUP(A14:A22,E3:G3,E4:G4)*C14:C22,
按下 CTRL+SHIFT+ENTER。
{=LOOKUP(A14:A22,E3:G3,E4:G4)} 所產生的中繼陣列,再乘上來源陣列2 (位址:C14:C22)。
三、 垂直查找的 lookup_table:如下圖所示,lookup_table 為一個資料表範圍 A3:B5 (有排序喔!),相同來源陣列1及來源陣列2。
1. 選取 F14:F22 (存放結果陣列),
輸入 =LOOKUP(A14:A22,A3:B5)*C14:C22,
按下 CTRL+SHIFT+ENTER。
{=LOOKUP(A14:A22,A3:B5)} 所產生的中繼陣列,再乘上來源陣列2 (位址:C14:C22)。
四、 水平查找的 lookup_table:如下圖所示,lookup_table 為一個資料表範圍 E3:G4 (有排序喔!),相同來源陣列1及來源陣列2。
1. 選取 G14:G22 (存放結果陣列),
輸入 =LOOKUP(A14:A22,E3:G4)*C14:C22,
按下 CTRL+SHIFT+ENTER。
{=LOOKUP(A14:A22,E3:G4)} 所產生的中繼陣列,再乘上來源陣列2 (位址:C14:C22)。
五、 利用垂直查找計算總應收:
1. 選取 J13 (存放單格結果陣列),
輸入 =SUM(LOOKUP(A14:A22,A3:B5)*C14:C22),
按下 CTRL+SHIFT+ENTER。如同 {=SUM(F14:F22)}。
六、 利用水平查找計算總應收:
1. 選取 J14 (存放單格結果陣列),
輸入 =SUM(LOOKUP(A14:A22,E3:G4)*C14:C22),
按下 CTRL+SHIFT+ENTER。如同 {=SUM(G14:G22)}。
結論:
1. 具 "查找資料表範圍" 的 LOOKUP 函數是否讓你聯想到赫赫有名的 VLOOKUP 函數及 HLOOKUP 函數。是的!VLOOKUP 函數及 HLOOKUP 函數就是 LOOKUP 函數及 MATCH 函數綜合進階版。更好用喔!下回介紹。
2. 如何以陣列公式計算某業務員的 "總應收" 呢?待 VLOOKUP 函數之後介紹。
留言列表