【问题标题】:How to make countifs and sumifs operate as "OR" instead of "AND"如何使 countifs 和 sumifs 作为“OR”而不是“AND”运行
【发布时间】:2021-03-11 04:44:45
【问题描述】:

我正在尝试制作一个公式,该公式使用 SUMIFS 和 COUNTIFS 来查找来自不同列的两个条件之一的数字平均值。因此,如果在范围 1 或范围 2 或两者中都满足条件,我希望它在一列中添加数字,而不是仅满足两者。我需要为 COUNTIFS 做同样的事情。

现在我把它格式化为

=SUM(SUMIF(XX:XX,"<130"ZZ:ZZ),SUMIF(YY:YY,"<80",ZZ:ZZ))/SUM(COUNTIF(XX:XX,"<130"ZZ:ZZ),COUNTIF(YY:YY,"<80",ZZ:ZZ))

但我知道它会添加一些数字两次,因为它会沿着两列向下并计算同时具有这两个列的数字。

这是我尝试使用 COUNTIF 作为 COUNTIFS 作为 OR 运算符而不是 AND,有人有什么建议吗?

【问题讨论】:

  • 那么为什么不使用 AVERAGEIFS() 呢?
  • 对两个 sumif 求和,例如 sumifs criteria1 + sumifs criteria2

标签: excel formula countif sumifs


【解决方案1】:

您可以将 2 个 SUMPRODUCTS 组合起来,其中 1 个得到满足条件的所有值的总和,第二个得到满足条件的值的总和,然后求平均值。

在这种情况下,只有当 B 列或 C 列等于 1 时,我才希望获得 A 列中值的平均值。绿色值是唯一满足此要求的值,总共 8 个值。

如果我们做(3+4+5+7+8+9+11+12),我们得到59,59/8=7.375,我的公式的结果

我的公式是:

=SUMPRODUCT(--(((B1:B15<2)+(C1:C15<2))<>0);A1:A15)/SUMPRODUCT(--(((B1:B15<2)+(C1:C15<2))<>0))

第一个 SUMPRODUCT 将返回总和值:

SUMPRODUCT(--(((B1:B15&lt;2)+(C1:C15&lt;2))&lt;&gt;0);A1:A15)

这就是它的工作原理:

  1. (B1:B15&lt;2) 将返回一个数组,如果值 {0;0;1;1;1;0;0;1;1;0;1;1;0;0;0}
  2. (C1:C15&lt;2) 和以前一样,但是在 C 列,所以我们得到 {0;0;1;1;1;0;1;1;0;0;1;1;0;0;0}
  3. --(((B1:B15&lt;2)+(C1:C15&lt;2))&lt;&gt;0) 双一元运算符将检查前面两个数组的和是否不等于 0(这意味着 ROW 有效),如果为 true,则返回 1,如果为 false,则返回 0。所以它返回{0;0;1;1;1;0;1;1;1;0;1;1;0;0;0}
  4. 我们将步骤 3 中的数组与 A 列中的值相乘,然后将它们相加,得到 59

第二个 SUMPRODUCT 的工作原理完全相同,但没有第 4 步,因此我们只得到 1 和 0 的总和来获得符合条件的值的数量,在本例中为 8。

最后是59/8=7.375

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-02
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 2014-09-11
    • 2015-10-05
    • 1970-01-01
    相关资源
    最近更新 更多