SUMIFS 函数仅返回第一次出现的值而不是对所有值求和

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

我在 Excel 中的

SUMIFS()
函数中遇到了一个不寻常的问题。我正在尝试根据特定日期标准对列中的值进行求和。该公式的结构是对另一张工作表 (Sheet6) 上的动态数组中的值求和。这是我正在使用的公式:

=SUMIFS(INDEX(Sheet6!$B$3#,,2),INDEX(Sheet6!$B$3#,,3),[@Date])

动态数组的第二列保存预期付款金额,第三列保存预期付款日期。

预期行为: 该公式应将动态数组中预期支付日期与指定日期匹配的所有值相加。

实际行为: 该公式仅返回满足日期条件的第一个出现的值,而不是对所有出现的值求和。

尝试解决的步骤:

验证数据类型和格式的一致性。 使用直接范围引用而不是使用

INDEX()
测试公式:

=SUMIFS(Sheet6!$C$3:$C$4000, Sheet6!$D$3:$D$4000, [@Date])

尝试使用

SUMPRODUCT()
作为替代方案:

=SUMPRODUCT((Sheet6!$C$3:$C$4000) * (Sheet6!$D$3:$D$4000 = [@Date]))

尝试使用

SUM()
IF()
的数组公式:

=SUM(IF(Sheet6!$D$3:$D$4000 = [@Date], Sheet6!$C$3:$C$4000, 0))

使用

FILTER()
SUM()
组合:

=SUM(FILTER(Sheet6!$C$3:$C$4000, Sheet6!$D$3:$D$4000 = [@Date]))

所有这些尝试都导致总和不正确(仅第一次出现)或

#N/A
错误,指示“公式或函数无法使用值。”

我还使用

COUNTIF()
来验证指定日期的出现次数,它返回正确的计数,指示多个匹配行。

=COUNTIF(Sheet6!$D$3:$D$4000, [@Date])

我不知道为什么

SUMIFS()
没有按预期运行。任何见解或替代解决方案将不胜感激!

excel excel-formula
2个回答
0
投票

正如 @RonRosenFeld 所说,问题是因为我正在平均日期。日期的平均值变成小数(Excel 将其解释为时间)。

非常感谢大家的帮助!


0
投票

其实,不仅仅是约会。即使您要求 SUMIF 对范围求和,SUMIF 也仅对第一列求和。 我在这里列出了一个简单的解决方案: https://stackoverflow.com/a/78209225/4476126

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