我有一个类似这样的电子表格
我只想对前 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
. e.g.
=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
,但它似乎没有“递归”到其参数的内部。汉斯ArrayFormula
需要为IF
才能正常工作。我不知道为什么它有效A:A
though.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)