Как добавить к моей функции QUERY дополнительное требование? - PullRequest
0 голосов
/ 27 мая 2020
=ARRAYFORMULA({
 AVERAGE(QUERY(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(Data!D$2:E856<>"", "♠"&Data!D$2:E856&"♦"&Data!F$2:G856, )),,999^99)),,999^99), "♠")), "♦"), 
 "select Col2 
  where lower(Col1) contains '"&LOWER(A2)&"' 
  offset "&COUNTIF(Data!D$2:E856, A2)-6))})

У меня есть указанная выше формула. При этом происходит следующее:
Последние 6 раз A2 появляется в столбце D или E, соответствующее значение накапливается в столбце F или G. Эти 6 значений затем также превращаются в среднее.

Я пытаюсь добавить к этому одно условие. Я хочу, чтобы он брал только те последние 6 случаев, когда столбец H и I также являются чем-то конкретным. c.
Итак, когда A2 отображается в столбце D, я хочу использовать строку только в том случае, если столбец I имеет значение «X ". Когда A2 появляется в столбце E, я хочу использовать строку, только если столбец H равен «X».

Я сам не могу реализовать это в своей функции и отчаянно нуждаюсь в помощи. Одна из проблем заключается в том, что поиск "X" выполняется в обратном порядке столбцов (ie. Когда A2 находится в D, пытается найти I ... и когда A2 находится в E, пытается найти G ... что не порядок их появления в алфавите). Также просто не уверен, где в формуле этому условному выражению даже нужно go.

Data! просто ссылается на лист, на который, очевидно, выгружен мой набор данных.

...