ARRAYFORMULA中的分组平均值仅适用于过去的日期

时间:2019-10-28 12:36:05

标签: google-sheets average google-sheets-formula array-formulas google-sheets-query

我需要对共享相同ID并已在相同或之前几个月发布的值取平均值。由于行数众多,我必须使用modify_line : async function(id_shape, info_shape){ console.log(info_shape); const result = await send_query( "UPDATE line SET line = $2 WHERE id_shape = $1", // Reference "line" sub-object [id_shape, info_shape.line], ); return(result); },

这是我上周提出的一个问题的迭代:How to use AVERAGEIFS within ARRAYFORMULA,但我尝试对此进行调整,但未成功。

由于可能有些混乱,因此我创建了this file并带有伪数据。尽管开始时ID中包含了年和月,但是我将它们分为几列以简化过滤。

请注意,2月平均值包括具有相同ID的1月值,3月包括1月,2月和3月等。当年份更改时,平均值重新开始。我想可以通过比较年份(等于)和月份(等于或小于)的值来完成,但是我不知道如何将比较器插入到最后一天的公式中。

感谢大家的时间和精力。

1 个答案:

答案 0 :(得分:1)

尝试:

=ARRAYFORMULA(IFNA(VLOOKUP(A2:A&B2:B&C2:C; QUERY({A2:A&B2:B&C2:C\D2:D}; 
 "select Col1,avg(Col2) 
  where Col2 is not null 
  group by Col1 
  label avg(Col2)''"; 0); 2; 0)))

0


或者如果没有关系,则使用:

=ARRAYFORMULA(IFNA(VLOOKUP(A2:A&B2:B; QUERY({A2:A&B2:B\D2:D}; 
 "select Col1,avg(Col2) 
  where Col2 is not null 
  group by Col1 
  label avg(Col2)''"; 0); 2; 0)))

0