繁体   English   中英

如何查看两个单元格之间滚动平均值的 +/- 变化

[英]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))

0


然后你可以这样做:

=ARRAYFORMULA(IF(A2:A<>"", {0; (INDIRECT("F2:F"&ROWS(F3:F))-F3:F)*-1}, ))

0


最后对其进行颜色格式化:

0


更新:

有了新功能,就有了新方法……

average = sum / count因此我们可以运行总计/累计总和:

=SCAN(, A2:A20, LAMBDA(x, y, (x+y)))

在此处输入图像描述

然后按顺序除以得到运行平均值:

=INDEX(SCAN(, A2:A20, LAMBDA(x, y, (x+y)))/(ROW(A2:A20)-1)) 

在此处输入图像描述

并获得xx+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)获得变化百分比。

查看:

  • 对于从 145 下降到 123,返回(没有四舍五入)-15.17241379。
  • 145 + (145 * -15.17241379 / 100) = 123

对于着色:

  • 选择单元格 G3:G20。
  • 转到 -> 格式 -> 条件格式 -> 格式规则 -> 如果...设置单元格格式 -> 大于 -> 0 -> 格式样式
    • -> [字母 A 旁边的向下箭头] -> [选择你的颜色]
    • -> [(带有)填充颜色旁边的向下箭头] -> [无]

PS:对于运行平均值,您可以在 F2:F20 中使用: =AVERAGE(C$2:C2)

请评论,如果这需要调整/进一步的细节。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM