Google Sheets: скользящие среднесуточные, еженедельные, ежемесячные и годовые значения - PullRequest
0 голосов
/ 02 марта 2019

У меня есть электронная таблица, в которой я собираю данные и ввожу дату сбора данных.Я хотел бы получить скользящие средние для собранных данных в своей электронной таблице по дням, неделям, месяцам и годам для диаграмм.

Два столбца, над которыми я работаю, - это «Дата» в столбце А(когда данные были собраны) и «Данные» в столбце C (фактические собранные данные).Дата всегда увеличивается и имеет формат «мм / дд / гггг».Данные в столбце C являются целыми числами и почти всегда увеличивают промежуточный итог, за исключением четырех мест, где необходимо было вносить ручные исправления.

Собранные данные вводятся не каждый день, и, как таковые, естьпромежутки между датами в столбце «Дата».Иногда 2 или 3 дня проходят без собранных данных, иногда больше.Наибольший разрыв составляет 98 дней без собранных данных.

EG:

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

Ответы [ 2 ]

0 голосов
/ 03 марта 2019

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, )
0 голосов
/ 02 марта 2019

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), )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...