Excel使用SUMIFS对比MONTH命名范围出现#VALUE!错误求助
错误原因
#VALUE!报错的核心原因是SUMIFS函数的条件区域参数仅支持实际单元格区域引用,不支持内存数组作为入参。你自定义的命名范围Month_of_the_Day对应的公式=MONTH(Sheet1!$B$3:$B$7)返回的是内存运算得到的月份数组,不属于合法的单元格区域引用,因此SUMIFS无法识别触发错误。
可行解决方法
你可以选择以下任意一种方案实现按月份统计工时的需求:
- 方案1:使用支持数组运算的SUMPRODUCT函数,无需额外设置辅助列或命名范围,直接写入公式即可:
=SUMPRODUCT($C$3:$C$7*(MONTH($B$3:$B$7)=MONTH($B3))) - 方案2:新增辅助列存储月份值,在B列右侧空白列(比如E列)的E3单元格输入
=MONTH(B3),下拉填充到E7,再将命名范围Month_of_the_Day修改为=Sheet1!$E$3:$E$7,原有SUMIFS公式即可正常运行。 - 方案3:如果你使用的是365/2021及以上版本的Excel,也可以用SUM搭配FILTER实现:
=SUM(FILTER($C$3:$C$7,MONTH($B$3:$B$7)=MONTH($B3),0))
注意:求和结果所在的单元格需要和C列设置相同的
[hh]:mm "h"格式,避免结果显示为十进制数值。
你提供的参考表格如下:
内容的提问来源于stack exchange,提问作者MgntMoe
相关产品推荐
相关产品推荐

