我在 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()
没有按预期运行。任何见解或替代解决方案将不胜感激!
正如 @RonRosenFeld 所说,问题是因为我正在平均日期。日期的平均值变成小数(Excel 将其解释为时间)。
非常感谢大家的帮助!
其实,不仅仅是约会。即使您要求 SUMIF 对范围求和,SUMIF 也仅对第一列求和。 我在这里列出了一个简单的解决方案: https://stackoverflow.com/a/78209225/4476126