聚合函数在应该忽略错误时不忽略错误

AGGREGATE function not ignoring errors when it should

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

这是 table 的样子:

总和 (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 用于 "sum",代码 6 用于 "ignoring errors"):

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

这也转化为(突出显示 + F9 键):

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

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

AGGREGATE 函数的引用形式不接受数组作为参数(除非数组是一系列单元格)。数组形式不包含 SUM 函数。

如果您想避免使用 CSE,可以这样使用 SUMPRODUCT

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

1/(…)FALSE returns 转换为错误,以消除除真实错误值之外的非二月月份。