SUMIF(条件,值),SUMPROD(条件,值)和SUM(条件*值)之间的差异

时间:2017-12-11 17:23:38

标签: excel excel-formula

假设我有一个包含2列的excel表:单元格A1到A10中的日期和B1到B10中的值。

我想总结五月日期的所有值。我有3种可能性:

{=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))

使用的最佳配方是什么?在这种情况下?为什么?

我找到了关于最后两个公式的答案,但没有关于第一个公式的答案。

2 个答案:

答案 0 :(得分:2)

第一个和第二个(SUM和SUMPRODUCT)是数组类型公式;它们会在范围内迭代,这很慢,如果太多会导致计算速度变慢甚至崩溃,那就更好了。

第三个不是数组类型公式并且已经过优化,因此可以使用完整的列引用而不会影响速度。

当使用SUMIFS时,建议使用它。

答案 1 :(得分:2)

如果B1:B10包含任何文本值,第一个公式会给您一个错误,第二个公式将不会(它将忽略B1:B10中的文本)。您可以通过切换到以下语法来更改第一个允许B1:B10中的文本:

=SUM(IF(MONTH(A1:A10)=6;B1:B10))

如果A1:A10包含文本,前两个公式也会给出错误 - SUMIFS不会,并且还可以处理这些范围内的错误值(只要不在和范围内)在满足条件的行上

出于这些原因,SUMIFS比斯科特说的更好,更快。

SUMIFS的缺点:

无法使用已关闭的工作簿 - 不太灵活,因为它无法接受数组,因此您无法使用范围上的函数

在您的具体示例SUMIFS中,仅对6月 2016 的金额求和。前两个公式将为任何年份中的任何六月日期求和,以便在某些情况下灵活性可能更适合您