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






