【问题标题】:Calculate rolling average based on date range [duplicate]根据日期范围计算滚动平均值[重复]
【发布时间】:2022-01-14 10:35:35
【问题描述】:

我有一个每天早上用来称体重的谷歌表格

第 1 列是自动生成的时间戳。权重是我输入的值

Timestamp   Morning weight
7/1/2021 8:41:55    185
7/2/2021 5:50:54    185.8
7/4/2021 8:16:58    186.2
7/5/2021 9:45:23    184
7/6/2021 5:56:06    184.2
7/7/2021 6:52:24    183.4
7/8/2021 4:37:18    184.8
7/9/2021 5:46:20    183.8
7/10/2021 10:07:58  184.2
7/11/2021 9:07:25   182.4
7/12/2021 6:39:53   182.8
7/14/2021 5:36:02   183.4
7/15/2021 6:14:42   181.2
7/16/2021 5:30:41   182.6
7/18/2021 7:00:43   181
7/19/2021 5:14:21   180.6
7/22/2021 5:54:42   180.2
7/23/2021 5:46:52   179.4
7/24/2021 8:14:06   180.8
7/25/2021 6:58:56   180.4
7/29/2021 7:25:15   180.8
7/30/2021 6:09:04   180.4
7/31/2021 7:34:20   180
8/1/2021 8:35:40    179.6
8/2/2021 5:48:48    178
8/3/2021 5:36:37    179.4
8/5/2021 5:53:58    179.8
8/6/2021 5:43:34    179

我想计算一下我每周的平均体重。有时我忘记输入数据,所以我想根据可用的数据进行计算:

7/19/2021    181.76 // calculated from 180.6 + 181 + 182.6 + 181.2 + 183.4` / 5
7/26/2021    180.2 // calculated from 180.4 + 180.8+179.4 + 180.2` / 4

这是一张可能有用的电子表格图片。我根据日期对我想要的范围值进行了颜色编码

我尝试过/之前做过的事情

我尝试使用 VLOOKUP 公式,但我认为它无法添加滚动计算。 INDEX/MATCH 似乎也可行,但不确定它是如何工作的

在我刚刚在原始数据旁边输入另一列并运行此之前

=ROUND(AVERAGE('Daily Measurements'!B89:B96),1)`

然后运行相应的 VLOOKUP。

不过我需要一个更强大的

我目前正在根据PreviousDate + 7 公式计算每个星期一的日期

【问题讨论】:

    标签: google-sheets average spreadsheet google-forms week-number


    【解决方案1】:

    尝试:

    =INDEX(QUERY({WEEKNUM(A2:A, 2), B2:B},
     "select Col1,avg(Col2)
      where Col2 is not null 
      group by Col1 
      label Col1'week number'"))
    

    更新

    四舍五入到小数点后一位:

    =INDEX(TEXT(QUERY({WEEKNUM(A2:A, 2), B2:B},
     "select Col1,avg(Col2)
      where Col2 is not null 
      group by Col1 
      label Col1'week number'"), {"@", "0.0"}))
    

    或:

    =INDEX(TRUNC(QUERY({WEEKNUM(A2:A, 2), B2:B},
     "select Col1,avg(Col2)
      where Col2 is not null 
      group by Col1 
      label avg(Col2)''"), 1))
    

    或:

    =INDEX(ROUND(QUERY({WEEKNUM(A2:A, 2), B2:B},
     "select Col1,avg(Col2)
      where Col2 is not null 
      group by Col1 
      label avg(Col2)''"), 1))
    

    【讨论】:

    • avg 上是否有简单的方法将小数点四舍五入到小数点后一位?例如例如 170.1 而不是 170.0999999
    • @VincentTang 确定,答案已更新
    • 谢谢大家欣赏这个!
    猜你喜欢
    • 2021-12-29
    • 2020-06-05
    • 2018-02-28
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-11
    相关资源
    最近更新 更多