【发布时间】:2015-05-27 16:37:21
【问题描述】:
我正在使用 averageifs 函数,如果有一个条件为真,我需要在其中计算平均值。
我试过使用 OR 函数,也试过大括号,但都给我错误。
=AVERAGEIFS(N1:N612,I1:I612,{"FL","IF"})
还有更多的范围,但它们的编码很好。
为了清楚起见,如果“I”列包含(特别是)字母 FL、OR 字母 IF,我想返回平均值。任何其他字母应表示该条目未平均。
TIA!
【问题讨论】:
我正在使用 averageifs 函数,如果有一个条件为真,我需要在其中计算平均值。
我试过使用 OR 函数,也试过大括号,但都给我错误。
=AVERAGEIFS(N1:N612,I1:I612,{"FL","IF"})
还有更多的范围,但它们的编码很好。
为了清楚起见,如果“I”列包含(特别是)字母 FL、OR 字母 IF,我想返回平均值。任何其他字母应表示该条目未平均。
TIA!
【问题讨论】:
AVERAGEIFS extra criteria 是布尔 AND 运算符,它不能执行 OR 运算。但是由于您的列没有改变,我们可以自己实现一些:
这里有一个使用数组公式的简单方法(用ctrl + shift + enter输入):
=AVERAGE(IF((I1:I612="IF")+(I1:I612="FL"),N1:N612))
或者,如果您不喜欢使用数组公式,您基本上可以使用 SUMPRODUCT 和 COUNTIF 手动执行此操作:
=SUMPRODUCT((I1:I612="IF")*(N1:N612)+(I1:I612="FL")*(N1:N612))/(COUNTIF(I1:I612,"IF")+COUNTIF(I1:I612,"FL"))
【讨论】:
Chancea 提供了一些很好的技术,我将列出另外一种避免使用数组公式的技术,因为许多人会发现避免使用 sumproduct 更容易阅读。
=(SUMIF(I1:I612,"FL",N1:N612)+SUMIF(I1:I612,"IF",N1:N612))/(COUNTIF(I1:I612,"FL")+COUNTIF(I1:I612,"IF"))
【讨论】:
不认为 Excel 有这个功能,但是在 Google 表格中,我一直在使用下面的方法来实现类似的结果
=average(filter($A:$A,($C:$C=$E$6)+($C:$C=$E$7)))
给我A:A 中值的平均值,其中C:C 与E6 或E7 中的值匹配
与ifs / sumifs 等不同,过滤器使用=,而不是逗号,因此使用$C:$C=$E$6,而不是$C:$C,$E$6
数学符号只是输入(所以<>而不是"<>"&)
【讨论】: