Excel/Google 表格 - 单个单元格中的 10 天滚动平均值基于列中最后十个单元格值在第一个空白之前?

问题描述 投票:0回答:2

我与每天必须在 Google 表格中填写信息的老师一起工作。有一个日期列和一个事件计数列。他们每天登录并添加一行新日期和事件计数。

这里是任何人都可以访问的电子表格版本的链接:https://docs.google.com/spreadsheets/d/1tiFe99q1mTIWlsIh2v9toPWE1QTfBZ6F2_rpKlWNi8g/edit?usp=sharing

他们希望在电子表格的顶部看到一个单元格(在标题和数据输入开始的地方上面有几行用于元数据计算——我知道,这不是最佳实践),填充了最近的 10-日滚动平均事件数。

我知道如何制作一个包含 10 天滚动平均值的列:只需 =AVERAGE(),单元格位于同一行,事件计数列中的上方 9 个单元格。

但是,我如何在电子表格顶部制作一个单元格:

  1. 始终填写 10 天滚动平均值列中的最后一个值 或
  2. 根据事件列计算 10 天滚动平均值(根本不需要 10 天滚动平均值列)

如果我确实需要一个 10 天的滚动平均值列,如果不是所有 10 个单元格都是数字(它将包括标题或空白),我如何编写一个使单元格空白的公式,所以它不计算它对于没有足够天数来计算 10 天平均值的任何行?

感谢您考虑我的问题!我将 DAX 用于 PowerBI,我将使用 LASTDATE。想知道 Google 表格是否有相同的概念,但在公式中。

excel google-sheets excel-formula moving-average
2个回答
0
投票

试试这个:

=QUERY($A$24:$D$136,"select avg(D) where B >= date '"&TEXT(TODAY(),"yyyy-mm-dd")&"' and B <= date '"&TEXT(TODAY()+10,"yyyy-mm-dd")&"' label avg(D) ''",0)


0
投票

在表格中,您可以尝试:

  • 添加了 2 个场景,因为我无法清楚地了解输入的方式 数据将成为
  • 添加了一个if条件,如果在
    minimum of 10 values
    内找不到
    D25:D
  • ,则不继续进行平均计算

#1 如果事件列 (

D25:D
) 严格仅容纳值(中间没有空白单元格或文本值)

=let(Σ,counta(D25:D),if(Σ>9,round(average(offset(D25,Σ-10,,10)),2),"-"))

#2 如果事件列 (

D25:D
) 具有混合数据集,如屏幕截图所示

=let(Σ,D25:D,
     Δ,choosecols(sortn(filter({Σ,row(Σ)},isnumber(Σ),Σ<>""),10,,2,0),1),
       if(counta(Δ)>9,round(average(Δ),2),"-"))

© www.soinside.com 2019 - 2024. All rights reserved.