我有 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 标准,但它们需要进行评估以匹配范围中包含的数据。