我需要对共享相同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月等。当年份更改时,平均值重新开始。我想可以通过比较年份(等于)和月份(等于或小于)的值来完成,但是我不知道如何将比较器插入到最后一天的公式中。
感谢大家的时间和精力。
答案 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)))
或者如果没有关系,则使用:
=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)))