2

我有一个看起来像这样的电子表格

在此处输入图像描述

我只想对其中包含数据的前 5 个单元格进行平均。我怎样才能做到这一点?

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

在此处输入图像描述

我希望能够定位一个单元格(如 A10)并从中返回 5。同样,仅当其中包含数据时。

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

它向后移动并跳过黑色空间,但仍然获得前 5 个。

4

1 回答 1

2

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

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

要理解上面的公式,请分别粘贴它的部分(当你得到一个没有Filter公式的部分时,你需要将它包装在一个ArrayFormula.eg

=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) )

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

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

=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有用。

于 2012-04-26T18:30:13.843 回答