我有一个看起来像这样的电子表格
我只想对其中包含数据的前 5 个单元格进行平均。我怎样才能做到这一点?
随着列表获得更多数据,如下所示:
我希望能够定位一个单元格(如 A10)并从中返回 5。同样,仅当其中包含数据时。
所以图像的公式应该是这样的:(23 + 60 + 53 + 42 + 40)/5 = 43.6
它向后移动并跳过黑色空间,但仍然获得前 5 个。
我有一个看起来像这样的电子表格
我只想对其中包含数据的前 5 个单元格进行平均。我怎样才能做到这一点?
随着列表获得更多数据,如下所示:
我希望能够定位一个单元格(如 A10)并从中返回 5。同样,仅当其中包含数据时。
所以图像的公式应该是这样的:(23 + 60 + 53 + 42 + 40)/5 = 43.6
它向后移动并跳过黑色空间,但仍然获得前 5 个。
以下公式假设您的值位于 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
有用。