學過程式設計的使用者,對於「陣列」一定不陌生!
陣列是一群相同資料類型的集合,在運算時透過相同規則可以處理大量的資料,並執行相同的運算。在 Excel 中陣列的觀念和程式設計中的觀念類似,為了讓 Excel 知道你是要使用陣列公式來運算,所以在輸入公式結束後,要按 Ctrl+Shift+Enter 鍵,而 Excel 會將公式以「{ }」來含括。
1. 水平一維常數陣列
(1) 選取儲存格A1:F1(共 6 個儲存格)。
(2) 輸入公式:={1,2,3,4,5,6}。(注意:每個數字以「,」分隔)
(3) 按 Ctrl+Shift+Enter 鍵。
儲存格A1:F1中的公式變為相同:{={1,2,3,4,5,6}}
當你想要刪除陣列中其中一個儲存格時,會看到「您不能只改變陣列中的一部分」的錯誤訊息。
2. 垂直一維常數陣列
(1) 選取儲存格A1:A6(共 6 個儲存格)。
(2) 輸入公式:={1;2;3;4;5;6}。(注意:每個數字以「;」分隔)
(3) 按 Ctrl+Shift+Enter 鍵。
儲存格A1:A6中的公式變為相同:{={1;2;3;4;5;6}}
3. 二維常數陣列
(1) 選取儲存格A1:D3(共 12 個儲存格)。
(2) 輸入公式:={1,2,3,4;5,6,7,8;9,10,11,12}。(注意:數字以「,」和「;」分隔)
(3) 按 Ctrl+Shift+Enter 鍵。
儲存格A1:D3中的公式變為相同:{={1,2,3,4;5,6,7,8;9,10,11,12}}。
{1,2,3,4;5,6,7,8;9,10,11,12} 陣列相當於
三個一維陣列組成:{1,2,3,4}、{5,6,7,8}、{9,10,11,12}
4. 公式中使用陣列公式
(1) 水平常數一維陣列運算
儲存格A1:{=SUM({1,2,3,4}*{5,6,7,8})}
(1) 選取儲存格E1:E4。
(2) 輸入公式:=C1:C4*D1:D4。
(3) 按 Ctrl+Shift+Enter 鍵。
儲存格E1:E4中的公式變為相同:{=C1:C4*D1:D4}
(2) 水平變數一維陣列運算
儲存格A1:{=SUM(C1:C4*D1:D4)}
(3) 常數垂直一維陣列和變數垂直一維陣列運算
儲存格A1:{=SUM({1;2;3;4}*D1:D4)}
(4) 常數水平一維陣列和變數水平一維陣列運算
儲存格A1:{=SUM({1,2,3,4}*C2:F2)}
(5)為陣列命名
將陣列命名後,在公式中使用顯得比較容易理解,而且可以縮短公式長度。
例如:選取儲存格D1:E6,按 Ctrl+Shift+F3 鍵,勾選「頂端列」。
儲存格D2:D6命名為「單價」;儲存格E2:E6命名為「數量」。
【例】計算所有商品販售總金額
儲存格A1:{=SUM(單價*數量)}
【例】計算商品販售總金額小於500者
儲存格A5:{=SUM(1*(單價*數量<500))}
單價*數量<500:會傳回 TRUE/FALSE。公式中「1*」運算,可以將 TRUE/FALSE轉換為 1/0。再藉由 SUM 函數計算總和(加計幾個 1,代表幾個小於 500 者。)
(6) 使用預設陣列運算的公式
儲存格A5:=SUMPRODUCT(1*(單價*數量<500))
藉由 SUMPRODUCT 函數可以不用在公式輸入完成後按 Ctrl+Shift+Enter 鍵。因為 SUMPRODUCT 函數內建以陣列來運算。
SUMPRODUCT 函數可以看成 SUM 和 PRODUCT,
單價*數量:{100*2,200*4,300*3,400*1,500*5}={200,800,900,400,2500}
單價*數量<500:{TRUE,FALSE,FALSE,TRUE,FALSE}
1*(單價*數量<500):{1,0,0,1,0}
最後:1+0+0+1+0=2