Google表格:每天,每周,每月和每年的平均值移动

时间:2019-03-02 15:44:56

标签: date google-sheets moving-average

我有一个电子表格,我在其中收集数据,并输入收集数据的日期。我想获取图表中每天,每周,每月和每年的电子表格中收集数据的移动平均值。

我要处理的两列是A列中的“日期”(收集数据时)和C列中的“数据”(实际收集的数据)。该日期始终在增加,格式为“ mm / dd / yyyy”。 C列中的数据是整数,并且运行总和几乎一直增加,除了在四个必须进行手动校正的地方。

并非每天都输入收集的数据,因此,“日期”列中的日期之间存在间隙。有时需要2到3天才能收集到数据,有时甚至更多。最大差距是没有收集数据的98天。

E.G。:

    + ---------- + - + ----- +
    |     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  |

我已经收集了217行中近3年的数据。

获得每日移动平均线看起来像=(C3-C2)/DATEDIF(A2, A3, "D"))一样简单。每周,每月和每年的平均值都让我感到沮丧。

如何获取每周,每月和每年未在Google表格中每天输入的数据的平均值?

2 个答案:

答案 0 :(得分:1)

0

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, )

答案 1 :(得分:0)

0

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), )