按周、月汇总结果以使用工作表绘图

aggregate results by week, month for graphing using sheets

有没有办法将每日值转换为每周平均值以制作图表?

样本来源sheet

---------------------------------------------------
| Data 1 | 1/1/2018 | 1/2/2018 | 1/3/2018 | etc...365 days |
---------------------------------------------------
| row 1  |    25    |   30     |    5     | etc...| 
---------------------------------------------------
| row 2  |    2     |          |    4     | etc...|
---------------------------------------------------
| etc ... each row has a different cadence.

除此之外,每一行可能不是每天都有值,而是每周或每月,具体取决于节奏。所以我想使用查询函数将一些行聚合为周,将一些行聚合为月。

预期结果 对于每周汇总(如果有超过 1 个值,我只想要一周的平均值,即:如果一周内有值:2、3、3,只需显示:2)

---------------------------------------------------
| Data 1 | Week 1 | Week 2 | Week 3 | etc...52 weeks |
---------------------------------------------------
| row 1  |    25  |   30   |    5   | etc...| 
---------------------------------------------------
| row 2  |    2   |   0    |    4   | etc...|
---------------------------------------------------
| etc ... 

对于每月总计(如果有超过 1 个值,我只想要当月的平均值,IE;如果一个月内有值:25,50,100,只需显示:58)

---------------------------------------------------
| Data 1 | Jan | Feb | Mar | etc...12 months |
---------------------------------------------------
| row 1  | 50  | 30  |  55 | etc...| 
---------------------------------------------------
| row 2  | 2   |  0  | 4   | etc...|
---------------------------------------------------
| etc ...

这样,我可以创建显示正确度量单位(周、月等)的图表。我该如何转换?

几个月:

=TRANSPOSE( QUERY( TRANSPOSE(Sheet1!A1:Y4), "select month(Col1) + 1, avg(Col" & JOIN("), avg(Col",ARRAYFORMULA(row(INDIRECT("a2:a"&COUNTA(Sheet1!A2:A)+1)))) & ") group by month(Col1) + 1") )

select 部分将生成如下查询字符串:

"select month(Col1) + 1, avg(Col2), avg(Col3), ... group by month(Col1) + 1"

结果:

sum(month(Data1)1())    1     2 ...
avg row1               50    50
avg row2               25    13
avg row3               11    15 ...
...

一周:

=ROUND(AVERAGE(ARRAYFORMULA(VALUE(QUERY(
 {ARRAYFORMULA(TRANSPOSE(WEEKNUM($A:$AE, 2))),
  TRANSPOSE($A2:$AE2)},
 "select Col2 where Col1 matches '"&COLUMN()&"'", 0)))), 0)

月份:

=ROUND(AVERAGE(ARRAYFORMULA(VALUE(QUERY(
 {ARRAYFORMULA(TRANSPOSE(MONTH($A:$AE))),
  TRANSPOSE($A2:$AE2)},
 "select Col2 where Col1 matches '"&COLUMN()&"'", 0)))), 0)