我有一张表格,其中的行如下(日期格式为 Excel 日期、实际值、差异),一年中的每一周有一组 3 列。
第一列中的值代表与特定客户签订的一周合同工作时间。
第二列代表这项工作实际花费了多少小时。
第三是区别。
在最后一列中,我需要计算所有合同工时的总和 - 即以日期为标题的列中的工时。
这是我尝试过的: =SUMIF(J1:FO1, ISNUMBER(J1), J2:FO2)
其中 J1:FO1 是标题(例如 1/5/18、实际、差异),当 J1 是日期(解析为数字)时,ISNUMBER 语句解析为 True,而 J2:FO2 是客户端数据的第一行。
虽然这不会引发错误,但它实际上也没有添加 J2:FO2 中的数字。
有任何想法吗?
答案1
这是因为ISNUMBER(J1)
解析为TRUE
或FALSE
基于中的内容J1
。然后 SUMIF() 尝试查找数字J1:FO1
在哪里TRUE
或不在哪里。FALSE
SUMIF 不能以这种方式使用。它经过优化,需要的是字符串而不是公式。
您将需要使用类似以下内容的东西:
=SUMPRODUCT(--ISNUMBER(J1:FO1),J2:FO2)
或以下数组公式:
=SUM(IF(ISNUMBER(J1:FO1),J2:FO2))
作为数组公式,需要使用 Ctrl-Shift-Enter 而不是 Enter 来确认。
ISNUMBER
两者都将迭代范围并添加返回的值TRUE
。