如何在Google表格中找到列中最后7个值的平均值?

时间:2016-11-24 06:12:48

标签: google-sheets spreadsheet

我试图找到连续7个最近的条目的平均值,如图所示 this 电子表格。

我发现了一些类似于我的问题,但我对这些答案的工作方式仍感到困惑。类似于我的问题可以在我的电子表格的左侧找到。

我认为这些公式对我有用,只需要对一些值进行简单的调整,但我似乎无法弄明白。如果有人能够解释现有的答案之一或想出另一个有效的答案,我将非常感激。

电子表格每天都会更新,因此随着越来越多的数据添加到列中,我需要一些可以继续工作的东西。

2 个答案:

答案 0 :(得分:2)

尝试:

=round(AVERAGE(OFFSET(H1,MAX(ARRAYFORMULA(ROW(H:H)*--(H:H<>"")))-7,,7)))

此处working sample

<强>解释

我们得到的是最后一个非空行:MAX(ARRAYFORMULA(ROW(H:H)*--(H:H<>"")))

然后使用offset公式,我们得到一列中最后7个单元格的范围。

然后只使用AVERAGE

更多信息

您可以在此处找到有关查找最后一个非空行的更多信息: Selecting the last value of a column

答案 1 :(得分:2)

另一种方法是使用INDEX和MATCH。第一个匹配找到范围中最后一个数字的位置,并从中获取6个:第二个匹配找到范围中最后一个数字的位置。通过INDEX函数传递它可以提供一个参考,您可以使用它来为AVERAGE提供一系列7个单元格。

=average(index(H:H,match(999,H:H)-6):index(H:H,match(999,H:H)))

所以我的答案就像你的Link2

这里的一大障碍是,如果你有一个范围内的文本单元格(例如&#34; Nothing&#34;),要弄清楚从哪个单元格开始获得平均7个单元格要困难得多。我想我知道如何使用OFFSET在Excel中执行此操作,但偏移似乎在Google表格中的工作方式相同。

但是我可以看到你的Link3中有一个解决方案,如果你将A:A改为H:H并将SUM改为AVERAGE,这对你有用。我已经测试了最后十个单元格的平均值,其中包括一个&#34; Nothing&#34;细胞:

=ArrayFormula(AVERAGE(QUERY(SORT(H:H,ROW(H:H)*ISNUMBER(H:H),0),"select * limit 10")))

并给出了正确答案61.8。

数组公式的工作方式通常是,不是将单个值传递给函数,而是传递整个范围或数组(值列表),函数将逐个处理它们。上面的公式采用整列H:H并按降序对行号进行排序,但那些不包含数字的单元在乘法中给出零并排序到底部。然后查询占据顶部(在我的情况下)10个单元格并将它们传递给AVERAGE。

BTW这不必被声明为数组公式:这也有效

=AVERAGE(QUERY(SORT(H:H,ROW(H:H)*ISNUMBER(H:H),0),"select * limit 10"))