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 的頭像
    KKExcel

    KKExcel 格子趣

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