Google sheets 如何计算列中最后七个值的平均值?

Google sheets 如何计算列中最后七个值的平均值?,google-sheets,google-sheets-formula,moving-average,Google Sheets,Google Sheets Formula,Moving Average,我试图找出一行中最近七个条目的平均值,如中所示 电子表格 我发现了一些与我类似的问题,但我仍然很困惑答案是如何工作的。类似于我的问题可以在我的电子表格左侧找到 我认为这些公式对我来说是可行的,只需对使用哪些值进行一些简单的调整,但我似乎无法理解。如果有人能解释其中一个现有的答案或提出另一个可行的答案,我将不胜感激 电子表格每天都在更新,因此,随着越来越多的数据添加到列中,我需要一些可以继续工作的东西。试试: =round(AVERAGE(OFFSET(H1,MAX(ARRAYFORMULA(RO

我试图找出一行中最近七个条目的平均值,如中所示 电子表格

我发现了一些与我类似的问题,但我仍然很困惑答案是如何工作的。类似于我的问题可以在我的电子表格左侧找到

我认为这些公式对我来说是可行的,只需对使用哪些值进行一些简单的调整,但我似乎无法理解。如果有人能解释其中一个现有的答案或提出另一个可行的答案,我将不胜感激

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

试试:

=round(AVERAGE(OFFSET(H1,MAX(ARRAYFORMULA(ROW(H:H)*--(H:H<>"")))-7,,7)))
=四舍五入(平均值(偏移量(H1,最大值)(阵列公式(行(H:H)*--(H:H“”))-7,7)))
这是

解释

我们将得到最后一个非空行:
MAX(ARRAYFORMULA(row(H:H)*--(H:H“”)

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

然后使用
平均值

更多信息

您可以在此处找到有关查找最后一个非空行的详细信息:
另一种方法是使用索引和匹配。第一个匹配查找范围中最后一个数字的位置,并从中减去6:第二个匹配查找范围中最后一个数字的位置。将其传递给INDEX函数将提供一个引用,您可以使用该引用为平均值提供7个单元格的范围

=average(index(H:H,match(999,H:H)-6):index(H:H,match(999,H:H)))
所以我的答案和你的一样

这里最大的障碍是如果你有一个文本单元格在这个范围内(比如“Nothing”),那么要计算出从哪个单元格开始得到平均7个单元格要困难得多。我想我知道如何在Excel中使用OFFSET,但OFFSET在Google工作表中的工作方式似乎不同

然而,我可以看到,在你的模型中有一个解决方案,如果你把a:a改为H:H,求和到平均值,这个方法应该对你有用。我已经对过去十个单元的平均值进行了测试,其中包括一个“无”单元:

它给出了正确的答案61.8

数组公式通常的工作方式是,不是将单个值传递给函数,而是传递整个范围或数组(值列表),然后函数逐个处理它们。上面的公式取整列H:H,并按行号降序排序,但不包含数字的单元格在乘法中为零,并排序到底。然后查询取最上面的10个单元格(在我的例子中),并将它们传递到平均值

顺便说一句,这不必声明为数组公式:这同样有效

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

这确实有效,但我真的不明白怎么做。数组公式函数的具体内容是什么,and--?H:H“”表示“且不为空”,感谢您的响应;不过,我可能会使用Max的答案。我看到你也使用了数组公式函数,你能解释一下它的作用吗?A将在我的答案中添加第二个公式的解释(第一个不是数组公式)
=AVERAGE(QUERY(SORT(H:H,ROW(H:H)*ISNUMBER(H:H),0),"select * limit 10"))