在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函数对这个数组的各元素加总求和,即得出选手的得分。 |