查看文章 |
SUMPRODUCT多条件求和
2007-06-29 13:31
l 求和与条件求和 SUM和SUMIF :运行时间正比于其数据范围。所以如果数据区是排过序的,就可以适当地选择计算区域来减少计算时间。 SUMIF 和COUNTIF可以使用通配符?和* DSUM:速度很快,但使用不大方便 l 多条件求和 数组公式的一个经常使用的地方就是用SUM数组进行多条件求和。但它通常很慢。 优化的办法是: -用SUMPRODUCT代替。 它比SUM数组快约5%-10%,而且还能处理文本和空值。 {=SUM($D$2:$D$10301*$E$2:$E$10301)} =SUMPRODUCT($D$2:$D$10301*$E$2:$E$10301) =SUMPRODUCT($D$2:$D$10301,$E$2:$E$10301) 这三个公式结果相同,但第三个公式比前两个约快77% 用SUMPRODUCT条件求和,其形式如下: SUMPRODUCT(--(条件1),--(条件2),(求和区域)) 其中两个减号(--)的作用是把条件的逻辑值转变为数值以便计算,也可用+0和*1代替,但(--)比+0,*1都略快些。 但注意其中的各部分区域范围必须相同,且不能是同一列。 也可使用下式: SUMPRODUCT((条件1)*(条件2)*(求和区域)) 但这个公式略慢于用逗号分割的公式,而且其求和区域内不能有文本值。 -另一个办法是用DSUM代替SUM数组公式 如果多条件求和的数组公式不多,也可用DSUM来代替,它也比数组公式略快。但其缺点是必须有单独的区域来存放条件,所以使用不大方便。 |
最近读者: