Excel中的条件平均值8个最新分数> 0

我有15个或更多的分数,我想平均最近的8个分数(基于date)大于零。 这是一个例子:

6/4/15, 6/18/15, 50 7/9/15, 46 7/16/15, 41 7/23/15, 47 7/30/15, 47 8/6/15, 8/13/15, 46 8/20/15, 49 8/27/15, 44 9/3/15, 5/5/16, 58 5/12/16, 53 5/19/16, 44 5/26/16, 42 

谢谢你的帮助!

你可以使用这个数组公式:

 =AVERAGE(IF(($A$1:$A$15>=LARGE(IF($B$1:$B$15<>"",$A$1:$A$15),8))*($B$1:$B$15<>""),$B$1:$B$15)) 

作为一个数组公式,它需要在退出编辑模式时用Ctrl-Shift-Enter代替Enter来input。 如果正确完成,则Excel将在公式周围放置{}

在这里输入图像说明


我们可以通过使用INDEX($B:$B,MATCH(1E+99,$A:$A))来设置数据集的最后一行,从而使公式更具dynamic性。

数组公式以指数forms计算,所以我们希望将引用的大小限制为数据集的实际大小。

公式所做的是find列A中最后一个数字/date的单元格,并将该行作为最后一行。

所以把它们放在一起:

 =AVERAGE(IF(($A$1:INDEX($A:$A,MATCH(1E+99,$A:$A))>=LARGE(IF($B$1:INDEX($B:$B,MATCH(1E+99,$A:$A))<>"",$A$1:INDEX($A:$A,MATCH(1E+99,$A:$A))),8))*($B$1:INDEX($B:$B,MATCH(1E+99,$A:$A))<>""),$B$1:INDEX($B:$B,MATCH(1E+99,$A:$A)))) 

它仍然是一个数组公式,所以使用Ctrl-Shift-Enter的上述条件仍然是需要的。

作为一个免责声明,我没有任何截图或实际的公式,但你没有给我们很多。

首先,按照分数降序sorting( ALT + D + S )。 这将把所有的零条目放在底部。 您现在可以忽略它们,因为您不希望它们成为平均值的一部分。

接下来, 按降序排列大于零的数据(即,不出现在最底部)(date栏再次按ALT + D + S )。

然后,使用AVERAGE()函数获取此类sorting后的前8行的AVERAGE()