Google 工作表中的问题结合了 SUM、ARRAYFORMULA、SUMIF 和 "not equal to" 运算符

Issue in Google Sheets with a combination of SUM, ARRAYFORMULA, SUMIF and "not equal to" operator

编辑:读取“不等于”运算符不能与 SUMIF 一起使用。我会留下这个问题,以防有人使用替代函数来获得我正在寻找的结果。

我有一个公式可以计算两个项目在一个月内工作的总小时数。在 Sheet1 中,每一行都是一个月内在特定任务上的工作小时数。与任务相关联的是相应的 ID。在 Sheet2 中,一些任务 ID 列在两列之一中,列 A 和列 B,对应于 ProjectA 和 ProjectB,因此对于每个项目,我都有与其相关的任务列表。在 Sheet3 中,该公式汇总了与多个任务关联的两个项目的工时,并排除了与项目无关的任务的工时。它有意义吗?公式如下所示:

=SUM(ARRAYFORMULA(SUMIF('Sheet1'!B5:B;"="&{Sheet2!A2:B};'Sheet1'!C5:C)))

此公式运行良好,并给出以下结果:

80:45:00(小时)

但是,当我尝试在与 ProjectA 或 ProjectB 无关的任务上汇总剩余工作时间时,使用“不等于”运算符 (<>) 代替“等于”运算符 (=),要排除 ID 与任一项目关联的任务的工时,结果公式:

=SUM(ARRAYFORMULA(SUMIF('Sheet1'!B5:B;"<>"&{Sheet2!A2:B};'Sheet1'!C5:C)))

根本没有提供预期的结果。

我得到:

167251:45:00

而不是:

3:00:00 小时

(!)

可以找到电子表格的副本 here

一如既往的帮助将不胜感激。

到目前为止,我无法按照您的方式解决问题。但是,您不能将月份中的所有小时数相加,然后从工作公式中减去之前得到的值吗?

这是您的 Sheet 完成此建议后的副本 Exemple

朱利安,试试

=sum(arrayformula(if(COUNTIF(livrables!$A:$D;'résumé'!$B:$B);0;'résumé'!C:C)))

您可以对 C7 使用相同的公式

=sum(arrayformula(if(COUNTIF(livrables!$A:$D;'résumé'!$B:$B);'résumé'!C:C;0)))

https://docs.google.com/spreadsheets/d/1h0daTbk3S8yIH48ijk250ZnxTIf7DoLO8SEyolaWrRs/edit?usp=sharing

解释:

countif是用来比较数据的,如果匹配我在C7中求和,如果不匹配我在C8中求和,所以0和sum交换了。

参考: