【问题标题】:Excel averageifs with or function带有 or 函数的 Excel 平均值
【发布时间】:2015-05-27 16:37:21
【问题描述】:

我正在使用 averageifs 函数,如果有一个条件为真,我需要在其中计算平均值。

我试过使用 OR 函数,也试过大括号,但都给我错误。

=AVERAGEIFS(N1:N612,I1:I612,{"FL","IF"})

还有更多的范围,但它们的编码很好。

为了清楚起见,如果“I”列包含(特别是)字母 FL、OR 字母 IF,我想返回平均值。任何其他字母应表示该条目未平均。

TIA!

【问题讨论】:

    标签: excel average criteria


    【解决方案1】:

    AVERAGEIFS extra criteria 是布尔 AND 运算符,它不能执行 OR 运算。但是由于您的列没有改变,我们可以自己实现一些:

    这里有一个使用数组公式的简单方法(用ctrl + shift + enter输入):

    =AVERAGE(IF((I1:I612="IF")+(I1:I612="FL"),N1:N612))
    

    或者,如果您不喜欢使用数组公式,您基本上可以使用 SUMPRODUCTCOUNTIF 手动执行此操作:

    =SUMPRODUCT((I1:I612="IF")*(N1:N612)+(I1:I612="FL")*(N1:N612))/(COUNTIF(I1:I612,"IF")+COUNTIF(I1:I612,"FL"))
    

    【讨论】:

      【解决方案2】:

      Chancea 提供了一些很好的技术,我将列出另外一种避免使用数组公式的技术,因为许多人会发现避免使用 sumproduct 更容易阅读。

      =(SUMIF(I1:I612,"FL",N1:N612)+SUMIF(I1:I612,"IF",N1:N612))/(COUNTIF(I1:I612,"FL")+COUNTIF(I1:I612,"IF"))
      

      【讨论】:

      • 旧线程,但迄今为止这个答案仍然是最好的可读性,谢谢。
      【解决方案3】:

      不认为 Excel 有这个功能,但是在 Google 表格中,我一直在使用下面的方法来实现类似的结果

      =average(filter($A:$A,($C:$C=$E$6)+($C:$C=$E$7)))
      

      给我A:A 中值的平均值,其中C:CE6E7 中的值匹配

      ifs / sumifs 等不同,过滤器使用=,而不是逗号,因此使用$C:$C=$E$6,而不是$C:$C,$E$6

      数学符号只是输入(所以<>而不是"<>"&

      【讨论】:

      • 如果您使用的是 Google 表格,这似乎比其他解决方案干净得多,而且效果非常好。
      猜你喜欢
      • 1970-01-01
      • 2014-08-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多