Как использовать Averageifs или Sumifs в Arrayformula - PullRequest
1 голос
/ 28 июня 2019

Я опубликую ссылку на таблицу внизу этой статьи.

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

=iferror(averageifs(B$2:B,A$2:A,">="&C2,A$2:A,"<="&D2),1)

Поэтому я создал его как массив следующим образом:

 =iferror(ArrayFormula(averageifs(B$2:B,A$2:A,">="&C2:C,A$2:A,"<="&D2:D)),1

Но он останавливается после первой ячейки.Поэтому я разбил среднюю функцию на sum & count для деления.

Массив count работает по следующей формуле:

=iferror(ArrayFormula(countifs(A$2:A,">="&C2:C,A$2:A,"<="&D2:D)),1)

Однако массив sum даже не проходит после первогоячейка:

=iferror(ArrayFormula(SUMIFS(B$2:B,A$2:A,">="&C2:C,A$2:A,"<="&D2:D)),1)

И комбинация проходит первую ячейку, но все вычисления сводятся к нулю:

=ArrayFormula(iferror(SUMIFS(B$2:B,A$2:A,">="&C2:C,A$2:A,"<="&D2:D)/countifs(A$2:A,">="&C2:C,A$2:A,"<="&D2:D),1))

Я пытаюсь получить среднее значение за предыдущий месяц.

Если кто-нибудь сможет мне помочь, я буду очень признателен!

https://docs.google.com/spreadsheets/d/1XhoLl5hB-MpXFz9VS2aLqJOWbXk1d_7apnwKWFdDUlg/edit?usp=sharing

1 Ответ

0 голосов
/ 28 июня 2019

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

=ARRAYFORMULA(QUERY({TEXT(A2:A, "yyyy-mmm"), B2:B}, 
 "select Col1,avg(Col2) 
  where Col2 is not null 
  group by Col1 
  order by avg(Col2) desc 
  label avg(Col2)''", 0))

5


но если вам действительно это нужно:

=ARRAYFORMULA(IF(LEN(A2:A), 
 IFERROR(VLOOKUP(TEXT(DATE(YEAR(A2:A), MONTH(A2:A)-1, 1), "yyyy-mmm"), 
 QUERY({TEXT(A2:A, "yyyy-mmm"), B2:B}, 
 "select Col1,avg(Col2) 
  where Col2 is not null 
  group by Col1", 0), 2, 0), 0), ))

enter image description here

...