本篇要練習多種指定項目計算總和,並且可以學習到:
(1) 將練習以下的函數應用:MOD、ROW、INDEX。
(2) 運算時陣列的應用
(3) True/False 邏輯值在運算時轉換為 1/0
【公式設計與解析】
選取儲存格A3:B31,按 Ctrl+Shift+F3 鍵,勾選「頂端列」,定義名稱:編號、數值。
1. 編號為奇數的數值和(1,3,5,…)
公式:=SUM((MOD(ROW(編號),2)=0)*數值)
(1) ROW(編號)
利用 ROW 函數取得編號儲存格的列號陣列。
(2) MOD(ROW(編號),2)=0
利用 MOD 函數計算除以2的餘數是否為0,來判斷編號是否為奇數。注意:編號1的列號為4(偶數)、編號2的列號為5(奇數)、…。結果傳回陣列:False, True, False, True, False, True,…。
(3) SUM((MOD(ROW(編號),2)=0)*數值)
將第2式乘以數值陣列,False 和 True 會分別轉為 0, 1。如此便可以取得間隔(編號為奇數者)的數值來加總。
2.編號為偶數的數值和(2,4,6,…)
公式:=SUM((MOD(ROW(編號),2)=1)*數值)
原理同上,只要改判斷 MOD(ROW(編號),2) 是否為「1」。
3. 編號3,7,10,16,22的數值和
公式:=SUM(INDEX(數值,{3,7,10,16,22}))
在此利用陣列 {3,7,10,16,22} 來執行陣列運算,即分別利用 INDEX 函數取得第3、第7、第10、第16、第22個數來加總。
4. 編號6~10的數值和
公式:=SUM(INDEX(數值,ROW(6:10)))
利用 ROW(6:10) 來代表 6, 7, 8, 9, 10,相當於 {6,7,8,9,10}。
5.數值大於50的數值和
公式:=SUM((數值>50)*數值)
條件判斷式「數值>50」會傳回 True/False 的陣列,當再執行「*」運算後,會轉換為 1/0 的陣列。如此便可以取得符合者的數值來加總。
留言列表