Google电子表格:如何平均具有值的前5个单元格

时间:2012-04-26 01:15:54

标签: function google-docs google-sheets

我的电子表格看起来像enter image description here

我想仅平均前五个包含数据的单元格。我怎么能这样做?

随着列表获得更多数据,如下所示:

enter image description here

我希望能够定位一个单元格(如A10),并从那里回到5。同样,只有它中有数据。

所以图像的公式应该是这样的:(23 + 60 + 53 + 42 + 40)/ 5 = 43.6

它正在倒退并且跳过黑色空间,但仍然获得了之前的5个。

1 个答案:

答案 0 :(得分:2)

以下公式假设您的值位于A列(如果不是,则调整所有A:A引用):

=Average(Filter(Sort(A:A;If(A:A="";0;Row(A:A));false);Row(A:A)<6))

要理解上面的公式,请分别粘贴其部分(当您获得没有Filter公式的部分时,您需要将其包装在ArrayFormula上。例如

=Filter(Sort(A:A;If(A:A="";0;Row(A:A));false);Row(A:A)<6)
=ArrayFormula( Sort(A:A; If(A:A="";0;Row(A:A)); false) )
=ArrayFormula( Row(A:A) )

将这些“辅助”公式放在工作表上可能包含的空列上(在第一个单元格中,例如D1T1)。

对于非整列,如您所建议的那样,您可能还需要将整个公式包装在数组公式中,例如

=ArrayFormula( Average(Filter(Sort(K1:K10;If(K1:K10="";0;Row(K1:K10));false);Row(K1:K10)<6)) )

我最初认为Filter公式的行为与ArrayFormula类似,但它似乎并非“递归”到其参数的内部。 Hance,ArrayFormula需要IF才能正常使用。我不知道它为什么适用于A:A