问题描述
我有一个包含以下数据的谷歌表。我必须找到 14 个(任何时期)时期的移动平均线。可以通过复制粘贴平均函数找到但是我想在数组中找到它。
感谢任何人的帮助。
解决方法
平均:
=INDEX(IFNA(VLOOKUP(ROW(A1:A),QUERY(SPLIT(FLATTEN(ROW(A1:A)&"×"&ARRAY_CONSTRAIN(
SPLIT(FLATTEN(QUERY(TRANSPOSE(IF(ROW(A1:A)<=TRANSPOSE(ROW(A1:A))=TRUE,TRANSPOSE(A1:A*1)&"×",)),9^9)),"×"),9^9,14 +N("14 day window"))),"select Col1,avg(Col2)
where Col2 is not null
group by Col1"),2,)))
最大:
=INDEX(IFNA(VLOOKUP(ROW(A1:A),TRANSPOSE(A1:A)&"×",max(Col2)
where Col2 is not null
group by Col1"),)))
分钟:
=INDEX(IFNA(VLOOKUP(ROW(A1:A),min(Col2)
where Col2 is not null
group by Col1"),)))
,
这是一种更简单的方法,可能对您有用:
=ArrayFormula(if(A2:A="","",(sumif(row(A2:A),"<"&row(A2:A)+14,A2:A)-sumif(row(A2:A),"<"&row(A2:A),A2:A))
/countifs(row(A2:A),">="&row(A2:A),row(A2:A),A2:A,"<>")))
运行平均值在数据末尾使用递减范围。