AGGREGATE函数应该在不忽略错误的情况下

时间:2019-03-18 03:04:54

标签: excel excel-formula aggregate-functions sumifs

我需要一个聚合函数来根据下一列的内容对一列求和。我只想对格式化为日期(第二行和第四行)的单元格前面的值求和,这些日期仅对应于二月(第二行)。

这是表格的外观:

总和(1)|日期(2)

40      February
29,05   19/02/2019
0,00    February
10,00   23/03/2019
10,00   February
17,65   March
0,00    February

我找到了一种方法来执行此操作,但这是一个数组公式,必须避免使用Control-Shift-Enter组合键输入。

这是我现在拥有的有效公式(我在这里找到了该公式的一部分:Excel Formula to SUMIF date falls in particular month

={SUM(IFERROR(IF(MONTH(February_expenses[Date])=2;February_expenses[Sum];0);0))}

这给出了29.05的预期结果。现在,这里是聚合函数的内容(代码9代表“求和”,代码6代表“忽略错误”):

=AGGREGATE(9;6;February_expenses[Sum]/(MONTH(February_expenses[Date])=2))

还将翻译为(突出显示+ F9键):

=AGGREGATE(9;6;{#VALUE!;29,05;#VALUE!;#DIV/0!;#VALUE!;#VALUE!;#VALUE!})

问题是,此函数返回“ #VALUE!”。我不知道为什么,因为我指出了忽略错误的功能(代码6)。知道我哪里错了吗?

1 个答案:

答案 0 :(得分:2)

AGGREGATE函数的引用形式不接受数组作为参数(除非数组是单元格范围)。而且Array表单不包含SUM函数。

如果要避免使用CSE,可以使用SUMPRODUCT,如下所示:

=SUMPRODUCT(ISNUMBER(1/(MONTH(February_Expenses[Date])=2))*February_Expenses[Sum])

1/(…)FALSE返回的错误转换为错误,以消除除实际错误值之外的2月的非月份。