【问题标题】:Trouble using SUMPRODUCT with both AND and OR logic together将 SUMPRODUCT 与 AND 和 OR 逻辑一起使用时遇到问题
【发布时间】:2020-08-07 07:13:51
【问题描述】:

我有一张如下表:

我正在尝试计算所有满足特定条件的行:

如果 a DEC 小于 c DEC 并且 a APR 大于 c APR 或者如果 a DEC 小于 d DEC 并且 a APR 大于 d APR 然后计算这些行数。

这是我目前使用的公式,但不正确:

=SUMPRODUCT((G4:G6<K4:K6)*(H4:H6>L4:L6)+(G4:G6<M4:M6)*(H4:H6>N4:N6))

当我要查找的总和为 3 时,该公式将为该示例表提供 4 的总和。

任何帮助将不胜感激!

编辑:这是一张包含更多信息的表格图片:

【问题讨论】:

  • 了解您的数据样本所在的列会有所帮助。第一列是 G 吗??
  • @teylyn 没错,我刚刚添加了另一个包含更多信息的屏幕截图

标签: arrays excel excel-formula sumproduct


【解决方案1】:

您可以通过检查有多少返回值大于零来避免重复计数,然后将其用于 G(或任何其他列)中的数据

=SUMPRODUCT((((G4:G6<K4:K6)*(H4:H6>L4:L6)+(G4:G6<M4:M6)*(H4:H6>N4:N6))>0)*G4:G6)

使用评估公式工具,您可以逐步检查公式并查看需要调整的地方。

【讨论】:

  • 这解决了我的答案,评估工具绝对是缺少的步骤。我正在阅读的一篇文章说,使用双减号是将布尔数组转换为 1 和 0 的主要方法。你选择*G4:G6) 超过=SUMPRODUCT(--(((G4:G7&lt;K4:K7)*(H4:H7&gt;L4:L7)+(G4:G7&lt;M4:M7)*(H4:H7&gt;N4:N7))&gt;0)) 有什么原因吗?在您的解决方案中使用双减法,公式的工作方式会有所不同吗?
  • 双一元 -- 和运算符都会将 TRUE/FALSE 转换为 1 或 0,因此您可以使用其中任何一个。由于您已经选择了运算符(因为 OR 逻辑只能使用 + 运算符完成),我就继续这样做。我非常喜欢保持公式的可维护性,并且使用您已经了解的内容意味着您可能会在几个月后重新使用公式时记住它的作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
  • 1970-01-01
  • 1970-01-01
  • 2011-02-13
  • 2015-12-06
  • 1970-01-01
相关资源
最近更新 更多