close

本主題是 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)}

 

LOOKUP 參考位址陣列(多)

 

結論:

     1. 具 "查找資料表範圍" 的 LOOKUP 函數是否讓你聯想到赫赫有名的 VLOOKUP 函數及 HLOOKUP 函數。是的!VLOOKUP 函數及 HLOOKUP 函數就是 LOOKUP 函數及 MATCH 函數綜合進階版。更好用喔!下回介紹。

     2. 如何以陣列公式計算某業務員的 "總應收" 呢?待 VLOOKUP 函數之後介紹。

arrow
arrow
    文章標籤
    陣列公式 EXCEL教學
    全站熱搜

    KKExcel 發表在 痞客邦 留言(0) 人氣()