第1个回答 2011-06-12
你是不是看错了?SUM不能做数组的点积和的,SUMPRODUCT才行:
=SUMPRODUCT(($F$3:$F$62>=P65)*($F$3:$F$62<P66))
SUMPRODUCT函数会将($F$3:$F$62>=P65)中的$F$3:$F$62拆开成F3、F4、F5.。。。F62单独计算F3>=P65、F4>=P65、。。。F62>=P65的值,($F$3:$F$62<P66)也是同样处理。
那么最精彩的部分就是($F$3:$F$62>=P65)*($F$3:$F$62<P66)是怎么乘积的,SUMPRODUCT函数会进行一一对应相乘后再相加,例如将F3>=P65的结果与F3<P66的结果相乘、将F4>=P65的结果与F4<P66的结果相乘、。。。将F62>=P65的结果与F62<P66的结果相乘,以上这些乘积最后相加就得到最终结果了。
我们知道逻辑运算的结果是TRUE和FALSE,TRUE也可以当作1、FALSE也可以当作0来运算,所以有
TRUE*TRUE=1
TRUE*FALSE=0
FALSE*FALSE=0
因此只有同时满足(>=P65)和(<P66)的单元格才被计数为1,SUMPRODUCT(($F$3:$F$62>=P65)*($F$3:$F$62<P66))最后的结果也就成了在$F$3:$F$62中有多少单元格既>=P65也<P66。