Excel 一列中有多个条件的 Averageifs

Excel 一列中有多个条件的 Averageifs

我正在寻找有关如何整理下面第二个公式的帮助大胆的。我希望根据种族计算平均“Pupil_Score”(这也是我第一次尝试使用命名范围),我希望将一些组组合在一起,在本例中是种族 1 和 2。我想继续使用 Averageifs 公式,因为它看起来比我目前的解决方案更短,如第一个公式所示。稍后我将添加更多条件,这只会使当前 SUM/COUNT 格式的公式变得更长,看起来不切实际。

=AVERAGEIFS(学生成绩,种族,3)

=(SUMIFS(学生分数,种族,1)+SUMIFS(学生分数,种族,2)) / (COUNTIFS(种族,1)+COUNTIFS(种族,2))

每个人的答案都不一样,下面是我正在测试的数据,也许这能有所帮助。我的公式给出了 99.632,而其他人给出了 #Value 错误或 99.614 或 99.493。

种族 学生 分数 1 98.880 1 99.588 1 99.751 1 99.780 1 100.070 2 99.765 2 98.873 2 99.013 2 99.529 2 99.600 2 99.500 2 99.751 2 99.501 2 99.543 2 99.795 2 99.857 2 99.874 2 99.875 2 99.67 2 99.755 2 99.893 2 100.050

答案1

标准AVERAGEIFS以条件的形式出现AND。您需要一个OR条件,因为任何一行都不可能同时满足两个条件12

        在此处输入图片描述

上图中,蓝色/绿色的总和是23,他们的数量是5使平均值4.6。E2 中的公式可以是,

=SUMPRODUCT((C2:C8)*(B2:B8=F1:G1))/SUMPRODUCT(--(B2:B8=F1:G1))

...或者将颜色硬编码为,

=SUMPRODUCT((C2:C8)*(B2:B8={"Blue","Green"}))/SUMPRODUCT(--(B2:B8={"Blue","Green"}))

对于您的数字,硬编码版本看起来像,

=SUMPRODUCT((C2:C8)*(B2:B8={1, 2}))/SUMPRODUCT(--(B2:B8={1, 2}))

答案2

让公式保持简单的唯一方法是提出不相互排斥的标准。例如,

=AVERAGEIFS(Pupil_Score,Race,">=2",Race,"<=3")

这仅当比赛号码相邻时才有效。

其他人建议使用数组 (CSE) 公式,所以我就不重复了。这些公式往往相当复杂。如果您想保持简单,您可以尝试在原始数据中创建一个过滤列,=OR(race=1;race=3)并在 if 中使用它。您甚至可以将它们与比赛号码结合使用,只要条件不相互排斥即可。

答案3

您可以使用AVERAGE数组公式,例如

=AVERAGE(IF((Race=1)+(Race=2),Pupil_Score))

已确认CTRL++SHIFTENTER

“+”实际上相当于“OR”

您可以通过添加 IF 函数轻松添加额外条件,例如假设“range1”需要为“x”

=AVERAGE(IF((Race=1)+(Race=2),IF(range1="x",Pupil_Score)))

查看示例这里

答案4

=
sum( sumifs( columntoavg, criteriacolumn, {"1","2","3"}))
/
sum( countifs(  criteriacolumn, {"1","2","3"}))

我认为这是解决这个问题最干净、最灵活的方法。

相关内容