具有复杂条件的 Excel SUMIFS 函数

具有复杂条件的 Excel SUMIFS 函数

我有 SUMIFS 公式,但它不起作用,因为 Criteria2 是一个公式,而不是一个条件:

=SUMIFS(Income!$C$3:$C$10000;Income!$D$3:$D$10000;C$2;Income!$A$3:$A$10000;IF(AND(YEAR(Income!$A3)=YEAR($A$3);MONTH(Income!$A3)=MONTH($A$3));Income!C$3;0))

Sum_range(需要求和的数字):Income!$C$3:$C$10000

Criteria_range1(需要匹配的名称):Income!$D$3:$D$10000

Criteria1(公式所在的第一张表中指定的名称):C$2

Criteria_range2(日期):Income!$A$3:$A$10000

标准2:IF(AND(YEAR(Income!$A3)=YEAR($A$3);MONTH(Income!$A3)=MONTH($A$3));Income!C$3;0)

标准 2 是单元格 A3(第一张表)中指定的日期的年份和月份与收入表 A 列单元格中的年份和月份相同。

是否可以包含如此复杂的条件作为标准,或者唯一的方法是先计算年份和月份,然后使用具有年份和月份值的范围作为函数?

答案1

不,它不起作用,因为 Criteria_range2 不包含您尝试与 Criteria2 匹配的相同类型的数据。

例如,您可能在 Criteria_range2 中输入了日期 14/12/2016,并且您尝试获取与单元格 A3 中输入的日期完全相同的匹配项。Criteria2 将评估为:

IF(AND(YEAR(Income!$A3)=YEAR($A$3);MONTH(Income!$A3)=MONTH($A$3));Income!C$3;0)
= IF(AND(2016=2016,12=12),Income,0)
= IF(TRUE,Income,0)
= Income

因此,此示例中的 Criteria2 计算结果为收入!C$3,并且与 Criteria_range2 中的日期不匹配。

如果日期不匹配,Criteria2 的计算结果将为 0,这也不会与 Criteria_range2 中的任何数据匹配。

但即使我们将 IF 语句更改为返回日期,该日期也并不总是与 Criteria_range2 的日期相匹配。例如,如果我们将 Criteria2 函数更改为:

date(year(A3),month(A3))

那么该函数将不起作用。我们还需要输入一个日期,以便 date() 进行评估。但是添加一天,或者简单地使用 A3,意味着 Criteria2 仅在精确日期匹配时才会评估为真,而不是像您想要的那样只检查月份和年份。

首先计算列中的年份和月份,然后使用标准分别检查每一列是否有效。

或者,如果你想不必要地花哨,你可以在收入中添加一列!E3:E10000 并填写公式

=YEAR(A3)&MONTH(A3)

然后,你可以制作你的 SUMFIFS:

=SUMIFS(Income!$C$3:$C$10000;Income!$D$3:$D$10000;C$2;Income!$E$3:$E$10000;YEAR(A3)&MONTH(A3))

公式确实可以作为 SUMIFS 标准,但它们需要进行评估以匹配范围中包含的数据。

相关内容