You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何公式=SUMIF(C5:C19,NOT(ISFORMULA(C5:C19)))返回值为0?

问题分析与解决方案

我来帮你拆解下这个问题哈,你用SUMIF得不到预期结果的核心原因是这个函数不支持直接用数组型的条件判断。

原公式的问题所在

SUMIF的逻辑是针对指定范围里的每个单元格,匹配单个条件规则,但NOT(ISFORMULA(C5:C19))是一个数组运算——它会返回一组布尔值(对应C5到C19每个单元格是否为非公式),SUMIF没法正确解析这种数组作为判断条件,所以最终返回了0。

正确的解决公式

你可以改用SUMPRODUCT函数,它天生支持数组运算,能逐个处理每个单元格的判断:

=SUMPRODUCT(C5:C19*NOT(ISFORMULA(C5:C19)))

公式原理解释

  • NOT(ISFORMULA(C5:C19)):对C5到C19的每个单元格检查,返回TRUE(非公式,也就是你录入的实际工时)或FALSE(仍为公式的单元格)
  • 用这个布尔值数组乘以C列的工时数值:TRUE会自动转成1,FALSE转成0,这样非公式单元格的工时会被保留,公式单元格则变成0
  • SUMPRODUCT会把所有计算后的数值相加,正好得到你要的实际工时总和

内容的提问来源于stack exchange,提问作者JavaJd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:20:23