我的墓誌銘
[我生命中的鬼]
你字典裡沒有嫁,
罔顧我明媒正娶,
辜負我誠心真意,
我願望裡有相伴,
卻絕望中心死去。
你弟來家裡裝冷氣,深怕你弟多流一滴汗地如神明降駕般地幫忙道:「你自己去買早餐」,我心想:狗早餐吃了嗎?總是如此地「身在曹營心在漢」,何必嫁人呢?
每每週末,兒女總相伴逛街吃飯、或各自赴約。
我的墓誌銘
[我生命中的鬼]
你字典裡沒有嫁,
罔顧我明媒正娶,
辜負我誠心真意,
我願望裡有相伴,
卻絕望中心死去。
你弟來家裡裝冷氣,深怕你弟多流一滴汗地如神明降駕般地幫忙道:「你自己去買早餐」,我心想:狗早餐吃了嗎?總是如此地「身在曹營心在漢」,何必嫁人呢?
每每週末,兒女總相伴逛街吃飯、或各自赴約。
在介紹主題 SUMIFS 函數之前,先回顧 "系列十二:SUMIF 函數"。
SUMIF 函數語法:=SUMIF(range,criteria,[sum_range])。
從語法得知:一個 IF 就有一對 <range,criteria>,因此,SUMIFS 函數有一個以上的 IF,也就有一對以上的 <range,criteria>。
由於 SUMIFS 函數的 IF 個數可 "按需增加",所以將 sum_range 作為第一個參數,以便有更多對的 <range,criteria> 可向後延伸。
SUMIFS 函數語法:
=SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], …)
前幾個主題所介紹的 VLOOKUP 函數是製作報表中非常重要的查表工具,但更重要的是如何將查找出來的 "資料" 彙整出商業決策所需要的 "資訊"。自此篇起,將介紹一連串統計函數的陣列用法。
本主題是由 "系列七:LOOKUP 函數" 中提到的 "如何以陣列公式統計某業務員的總營業額"。而 "某業務員的總營業額是多少?",等同 "如果是某業務員,他的營業額總合是多少?",不難想出統計此問題的函數是 SUMIF 函數或 SUM(IF()) 公式。
在介紹主題 SUMIF 函數之前,先回顧 "系列五:COUNTIF 函數",
COUNTIF 函數語法:=COUNTIF(range,criteria)
所對應的陣列語意:{=COUNTIF(查找範圍,來源陣列)}。
如題,此篇是 VLOOKUP 函數搭配 MATCH 函數的應用範例二。
VLOOKUP 函數語法:
=VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)
MATCH 函數語法:
=MATCH(lookup_value, lookup_array, [match_type])
利用 MATCH 函數的陣列作法,產生 "結果欄序" 的陣列,以取代 "系列九:VLOOKUP 函數之二" 中的陣列公式:
{=VLOOKUP(A12,A3:D5,{2,3,4},FALSE)}
如題,此篇是 VLOOKUP 函數搭配 MATCH 函數的應用範例一。
VLOOKUP 函數語法:
=VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)
"系列八:VLOOKUP 函數之一" 中提到過 "產品號碼" 的陣列函數:
{=VLOOKUP(A12:A20,A3:D5,3,FALSE)},
其中第三個參數 3,稱為 "結果欄序",代表查找的結果必須在 "查找資料表" 範圍的第三欄。這個 "序位" 若是經過函數運算所得的結果,而不是 "常數",這樣的 VLOOKUP 函數更加自動化。
"系列一:入門篇" 中提到陣列函數的 "來源陣列" 可以是 "常數陣列" 或 "參考位址陣列"。本篇範例將採用 "常數陣列" 作為 VLOOKUP 函數的 "來源陣列"。
VLOOKUP 函數語法:
=VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)
在上一篇 "產品號碼" 的陣列函數:
{=VLOOKUP(A12:A20,A3:D5,3,FALSE)},
其中參考位址陣列 {=A12:A20} 作為 VLOOKUP 函數的來源陣列。
"系列七:LOOKUP 函數" 中提到:
"VLOOKUP 函數是 LOOKUP 函數及 MATCH 函數的綜合進階版"。
下面列出此三函數語法以說明 VLOOKUP 函數的 "綜合" 與 "進階"。
MATCH 函數語法:
=MATCH(lookup_value, lookup_array, [match_type])。
LOOKUP 函數語法:
=LOOKUP(lookup_value,lookup_vector, result_vector)。
VLOOKUP 函數語法:
=VLOOKUP(lookup_value, table_array, col_index_num, range_lookup)。
本主題是 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 為同方向的 "範圍"。
本主題是 MATCH 函數,目的在於說明其參數與上一主題所介紹 COUNTIF 函數的參數有何差同?
回顧 COUNTIF 函數語法:=COUNTIF(range, criteria),
其中第一個參數是 "(查找)範圍",可以是 "矩形或單欄、單列" 的範圍。此函數於陣列運算時,第二個參數是由參考位址所形成的陣列。
MATCH 函數語法:
=MATCH(lookup_value, lookup_array, [match_type])。
MATCH 函數是要找出 lookup_value 在指定的 lookup_array 中的最小序位。lookup_array 是 "範圍",但計算結果是 "序位" 而非 "座標" 。故此範圍不可是 "矩形" ,而必須是 "單欄或單列" ,因此不用 range 而用 array 來表示。