"系列一:入門篇" 中提到陣列函數的 "來源陣列" 可以是 "常數陣列" 或 "參考位址陣列"。本篇範例將採用 "常數陣列" 作為 VLOOKUP 函數的 "來源陣列"。
VLOOKUP 函數語法:
=VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)
在上一篇 "產品號碼" 的陣列函數:
{=VLOOKUP(A12:A20,A3:D5,3,FALSE)},
其中參考位址陣列 {=A12:A20} 作為 VLOOKUP 函數的來源陣列。
一、可擴展成 "常數陣列" 的參數:
1、若仍以第一個參數 lookup_value 作為 "來源陣列",必須將 {=A12:A20} 改成常數陣列,此陣列函數表示如下:
{=VLOOKUP({"Fax";"Phone";"Laptop";"Fax";"Phone";"PC";"Fax";"Phone";"PC"},A3:D5,3,FALSE)}
此陣列函數不僅不易輸入,且不易維護,非常不實用。故 VLOOKUP 函數的第一個參數不適合以 "常數陣列" 作為 "來源陣列"。
2、第二個參數 table_array:"查找資料表"範圍,既不是 "常數",也不是 "參考位址",故不能擴展成陣列。
3、第三個參數 col_index_num:"結果欄序",是一個 "常數",可擴展成 "常數陣列",例如:{={2,3,4}},來作為 "來源陣列"。此陣列函數表示如下:
{=VLOOKUP(A12,A3:D5,{2,3,4},FALSE)}
請注意:第一個參數必須 "縮減" 成參考位址,不再是 "來源陣列"。
二、作法:
如下圖所示,給定一個查找資料表範圍 A3:D5,
並以結果欄序3、4、2組成來源陣列:{={3,4,2}} 。
1. 選取 B12:D12 (存放結果陣列),
輸入 =VLOOKUP(A12,$A$3:$D$5,{3,4,2},FALSE),
按下 CTRL+SHIFT+ENTER。
2. 拖曳 B12:D12 的填滿空點至表格末列。
結論:
1. 若擴展第四個常數參數 range_lookup 作為來源陣列是何意義?
2. 此 VLOOKUP 範例函數是以單列來源陣列產生單列結果陣列。
3. 清楚了以常數陣列作為來源陣列的用法,即一次固定 3 個結果欄位的順序。
4. 承 "系列六:MATCH 函數",下一主題介紹其應用在 VLOOKUP 函數。
5. MATCH 函數也可產生 "結果欄序" 的陣列以取代上述的常數陣列,精彩可期。
留言列表