在excel2007中,我們可以利用SUM、AVERAGE、COUNT等函數(shù)對某單元格區(qū)域內(nèi)的數(shù)據(jù)進(jìn)行加總、平均或計數(shù)等操作。下面通過兩個例子介紹應(yīng)用數(shù)組只對單元格區(qū)域中符合某些條件的數(shù)據(jù)進(jìn)行求和運算。
★實例1
如圖的左邊所示,在A1:F16單元格區(qū)域內(nèi)存儲的數(shù)字有正有負(fù)。現(xiàn)只希望對其中的正數(shù)求和。具體操作步驟如下:
選中B18單元格,在編輯欄內(nèi)輸入“=SUM(IF((A1:F16)>0,(A1:F16),""))”,按Ctrl+Shift+Enter組合鍵確認(rèn)輸入。
現(xiàn)分析這個數(shù)組公式如下:
①IF公式對A1:F16單元格區(qū)域內(nèi)的數(shù)據(jù)進(jìn)行判斷,如果數(shù)據(jù)大于零,則返回原數(shù)據(jù),如果數(shù)據(jù)小于或等于零,則返回空值。
②由于IF函數(shù)的返回值構(gòu)成一個新的數(shù)組(存儲在內(nèi)存中),原單元格區(qū)域內(nèi)大于零的數(shù)據(jù)直接成為新數(shù)組中的元素,原單元格區(qū)域內(nèi)小于或等于零的數(shù)據(jù)變?yōu)榭罩党霈F(xiàn)在新數(shù)組中。
③SUM公式對新數(shù)組內(nèi)的元素進(jìn)行加總,從而得到了A1:F16單元格區(qū)域內(nèi)大于零的數(shù)據(jù)的和。
根據(jù)IF函數(shù)的定義,可以簡化這個公式為“{=SUM(IF((A1:F16)>O,(A1:F16)))}”。
★實例2
有12個評委在比賽中評分,需要去掉一個最高分和一個最低分,再以其余分?jǐn)?shù)的和作為選手的得分,如圖的右邊所示。
具體步驟如下:
在I15單元恪內(nèi)輸入“=MAX(I2:I13)”,求出評委給出的最高分。
在I16單元恪內(nèi)輸入“=MIN(I2:I13)”,求出評委給出的最低分。
在I17單元格內(nèi)輸入“=SUM((I2:I13<>I15)*(I2:I13<>I16)*I2:I13)”。
按Ctrl+Shift+Enter組合鍵確認(rèn)輸入。
現(xiàn)分析這個數(shù)組公式如下:
①在這個公式中,首先計算的是兩個判斷條件,“I2:I13<>I15”和“I2:I13<>I16”,分別用來判斷是否是最高分或最低分。當(dāng)最高分或最低分參加運算時,兩個判斷條件之一返回邏輯值“FALSE”;當(dāng)非最高分或最低分參加運算時,兩個判斷條件均返回邏輯值“TRUE”。
②隨后的乘法計算(I2:I13<>I15)*(I2:I13<>I16)*I2:I13將前一步得出的兩個邏輯值和數(shù)據(jù)本身相乘(邏輯值“FALSE”在計算中以“0”計,邏輯值“TRUE”在計算中以“1”計)。這樣, 最高分和最低分在計算中返回“0”,而其他值返回原值。
③由上一步返回的各值構(gòu)成一個數(shù)組并存儲在內(nèi)存中。
④SUM函數(shù)對這個數(shù)組的各元素加總求和,即得出選手的得分。