首页 > 解决方案 > Google 表格中的问题与 SU​​M、ARRAYFORMULA、SUMIF 和“不等于”运算符的组合

问题描述

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

我有一个公式,即 SUM 小时在一个月内用于两个项目。在 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 小时

(!)

可以在此处找到电子表格的副本。

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

标签: google-sheetsoperatorsgoogle-sheets-formulaarray-formulassumifs

解决方案


朱利安,试试

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

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

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

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

解释:

Countif 用于比较数据,如果它们匹配,我在 C7 中取和,如果它们不匹配,我在 C8 中取和,这就是交换 0 和 sum 的原因。

参考:


推荐阅读