Google 工作表:每日、每周、每月和每年的移动平均值
Google Sheets: Moving daily, weekly, monthly, and yearly averages
我有一个电子表格,我在其中收集数据,并输入收集数据的日期。我想在我的电子表格中获取图表中每天、每周、每月和每年收集的数据的移动平均值。
我正在处理的两列是 A 列(收集数据时)中的 "Date" 和 C 列(实际收集的数据)中的 "Data"。日期总是递增的,并且是 "mm/dd/yyyy" 格式。 C 列中的数据是整数,并且几乎总是增加 运行 总数,除了必须进行手动更正的四个地方。
并非每天都输入收集的数据,因此 "Date" 列中的日期之间存在间隔。有时 2 或 3 天没有收集到数据,有时更多。最大的差距是 98 天没有收集数据。
例如:
+ ---------- + - + ----- +
| A | B | C |
+ - + ---------- + - + ----- +
| 1 | Date | | Data |
| 2 | 6/15/2016 | | 1263 |
| 3 | 6/30/2016 | | 1371 |
| 4 | 7/1/2016 | | 1382 |
| 5 | 7/7/2016 | | 1429 |
| 6 | 10/13/2016 | | 2588 |
我收集了近 3 年的 217 行数据。
获取移动日均线似乎与 =(C3-C2)/DATEDIF(A2, A3, "D"))
一样简单。获得移动的每周、每月和每年的平均值让我很困惑。
对于并非每天都输入到 Google 表格中的数据,我如何才能移动每周、每月和每年的平均值?
E2: =(C3-C2)/DATEDIF(A2, A3, "D")
F2:
=MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2,"yyyy-mm-dd")&"'
and A <= date'"&TEXT($A3,"yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2,"yyyy-mm-dd")&"'
and A <= date'"&TEXT($A3,"yyyy-mm-dd")&"'")-1)), $C2)/
MINUS(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2,"yyyy-mm-dd")&"'
and A <= date'"&TEXT($A3,"yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY(A2:C,
"select A
where A >= date'"&TEXT($A2,"yyyy-mm-dd")&"'
and A <= date'"&TEXT($A3,"yyyy-mm-dd")&"'")-1)), $A2)
G2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'"))-1), $C2)/
MINUS(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'"))-1), $A2), )
H2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'"))-1), $C2)/
MINUS(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'"))-1), $A2), )
I2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'"))-1), $C2)/
MINUS(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'"))-1), $A2), )
G2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'"))-1), $C2)/7, )
H2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'"))-1), $C2)/30, )
I2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'"))-1), $C2)/365, )
我有一个电子表格,我在其中收集数据,并输入收集数据的日期。我想在我的电子表格中获取图表中每天、每周、每月和每年收集的数据的移动平均值。
我正在处理的两列是 A 列(收集数据时)中的 "Date" 和 C 列(实际收集的数据)中的 "Data"。日期总是递增的,并且是 "mm/dd/yyyy" 格式。 C 列中的数据是整数,并且几乎总是增加 运行 总数,除了必须进行手动更正的四个地方。
并非每天都输入收集的数据,因此 "Date" 列中的日期之间存在间隔。有时 2 或 3 天没有收集到数据,有时更多。最大的差距是 98 天没有收集数据。
例如:
+ ---------- + - + ----- +
| A | B | C |
+ - + ---------- + - + ----- +
| 1 | Date | | Data |
| 2 | 6/15/2016 | | 1263 |
| 3 | 6/30/2016 | | 1371 |
| 4 | 7/1/2016 | | 1382 |
| 5 | 7/7/2016 | | 1429 |
| 6 | 10/13/2016 | | 2588 |
我收集了近 3 年的 217 行数据。
获取移动日均线似乎与 =(C3-C2)/DATEDIF(A2, A3, "D"))
一样简单。获得移动的每周、每月和每年的平均值让我很困惑。
对于并非每天都输入到 Google 表格中的数据,我如何才能移动每周、每月和每年的平均值?
E2: =(C3-C2)/DATEDIF(A2, A3, "D")
F2:
=MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2,"yyyy-mm-dd")&"'
and A <= date'"&TEXT($A3,"yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2,"yyyy-mm-dd")&"'
and A <= date'"&TEXT($A3,"yyyy-mm-dd")&"'")-1)), $C2)/
MINUS(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2,"yyyy-mm-dd")&"'
and A <= date'"&TEXT($A3,"yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY(A2:C,
"select A
where A >= date'"&TEXT($A2,"yyyy-mm-dd")&"'
and A <= date'"&TEXT($A3,"yyyy-mm-dd")&"'")-1)), $A2)
G2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'"))-1), $C2)/
MINUS(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'"))-1), $A2), )
H2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'"))-1), $C2)/
MINUS(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'"))-1), $A2), )
I2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'"))-1), $C2)/
MINUS(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select A
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'"))-1), $A2), )
G2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+7, "yyyy-mm-dd")&"'"))-1), $C2)/7, )
H2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+30, "yyyy-mm-dd")&"'"))-1), $C2)/30, )
I2:
=IFERROR(MINUS(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'
limit 1 offset "&COUNTA(QUERY($A2:$C,
"select C
where A >= date'"&TEXT($A2, "yyyy-mm-dd")&"'
and A <= date'"&TEXT($A2+365, "yyyy-mm-dd")&"'"))-1), $C2)/365, )