[英]How to see the +/- change in rolling average between two cells
正如您从我的图片中看到的那样,我有一个保龄球得分列表和一些运行平均值。 我似乎无法解决的问题是我希望能够看到一场比赛与前一场比赛之间的平均变化。 例如,如果平均值下降,它会说 -1.2%,如果上升,它会说 +2.1%。 如果可能的话,我真的希望负平均值为红色,正平均值为绿色。
这是我的工作表的副本,在 G 列中包含所需的输出。
首先你需要运行平均值:
=ARRAYFORMULA(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF(ISNUMBER(
ARRAY_CONSTRAIN(SPLIT(SORT(REPT("♦ ", ROW(INDIRECT("A1:A"&COUNTA(A2:A)))-1), 1, 0)&
"♦"&TEXTJOIN("♦", 1, C2:C), "♦"), 999^99, COUNTA(A2:A))),
ARRAY_CONSTRAIN(SPLIT(SORT(REPT("♦ ", ROW(INDIRECT("A1:A"&COUNTA(A2:A)))-1), 1, 0)&
"♦"&TEXTJOIN("♦", 1, C2:C), "♦"), 999^99, COUNTA(A2:A)), )),
"select "&TEXTJOIN(",", 1, IF(LEN(A2:A),
"avg(Col"&ROW(A2:A)-ROW(A2)+1&")", ))&"")),
"select Col2", 0))
然后你可以这样做:
=ARRAYFORMULA(IF(A2:A<>"", {0; (INDIRECT("F2:F"&ROWS(F3:F))-F3:F)*-1}, ))
最后对其进行颜色格式化:
有了新功能,就有了新方法……
average = sum / count
因此我们可以运行总计/累计总和:
=SCAN(, A2:A20, LAMBDA(x, y, (x+y)))
然后按顺序除以得到运行平均值:
=INDEX(SCAN(, A2:A20, LAMBDA(x, y, (x+y)))/(ROW(A2:A20)-1))
并获得x
和x+1
单元格之间的差异:
={0; MAP(B2:B19, LAMBDA(z, OFFSET(z, 1, )-z))}
最后一点:
0[=0][black]; -0.00###[<0][red]; 0.00####[color 50]
或一口气:
={0; INDEX(ARRAY_CONSTRAIN({QUERY(
MAP(SCAN(, A2:A20, LAMBDA(x, y, (x+y))), ROW(A2:A20)-1,
LAMBDA(a, b, a/b)), "offset 1", ); ""}-
MAP(SCAN(, A2:A20, LAMBDA(x, y, (x+y))), ROW(A2:A20)-1,
LAMBDA(a, b, a/b)), ROWS(A2:A20)-1, 1))}
您使用 G3:G20 中=ROUND((C3-C2)/C2*100,2)
获得变化百分比。
查看:
对于着色:
PS:对于运行平均值,您可以在 F2:F20 中使用: =AVERAGE(C$2:C2)
。
请评论,如果这需要调整/进一步的细节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.