AGGREGATE函数不应该忽略错误

问题描述 投票:0回答:1

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

这是表格的外观:

总和(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代表“忽略错误”):

=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)。知道我哪里错了吗?

excel excel-formula aggregate-functions sumifs
1个回答
2
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.