SUMIF(条件,值),SUMPROD(条件,值)和SUM(条件*值)之间的区别
比方说,我有一个Excel表格有两列:单元格A1到A10中的date和B1到B10中的值。
我想总结5月份date的所有值。 我有三种可能性:
{=SUM((MONTH(A1:A10)=6)*(B1:B10))}
要么
=SUMPRODUCT((MONTH(A1:A10)=6)+0;B1:B10)
要么
=SUMIFS(B1:B10;A1:A10;">="&DATE(2016;6;1);A1:A10;"<="&DATE(2016;6;30))
什么是最好的公式使用? 在这种情况下? 为什么?
我已经find了关于最后两个公式的答案,但没有任何关于第一个。
如果B1:B10
包含任何文本值,第一个公式会给你一个错误,第二个公式不会(只会忽略B1:B10
文本)。 您可以通过切换到以下语法来更改第一个允许B1:B10中的文本:
=SUM(IF(MONTH(A1:A10)=6;B1:B10))
前两个公式也会给你一个错误,如果A1:A10
包含文本 – SUMIFS
将不会,也可以处理这些范围内的错误值(只要不满足条件的行上的总和范围)
由于这些原因, SUMIFS
比Scott更好,速度更快。
SUMIFS
缺点:
无法使用封闭式工作簿 – 灵活性较差,无法接受数组,因此无法使用范围中的函数
在您的具体示例中, SUMIFS
仅对2016年 6 月的金额进行了总计。 前两个公式将在任何一年的任何六月份date中进行总结,以便在某些情况下灵活性可能更适合您
第一个和第二个(SUM和SUMPRODUCT)是数组types的公式; 他们会遍历整个范围,这很慢,如果太多,会导致计算速度减慢,甚至崩溃excel。
第三个不是数组types的公式,并且已经被优化,因此可以使用满列引用而不会影响速度。
当可以使用SUMIFS时,build议使用它。