问题描述
我有一些看起来像这样的数据
条件一 | 条件2 | 条件3 | 条件4 | 条件5 |
---|---|---|---|---|
0 | 0 | 0 | 70 | 0 |
0 | 50 | 10 | 0 | 0 |
120 | 0 | 0 | 5 | 5 |
其中每个单元格中的值是在给定条件下资产的米数。或者换句话说,计数为“4”的米数。 我如何为此计算标准偏差?显然,第一行的 std.dev 为“0”,第 2 行更高,第 3 行相当低。 类似于 REPT,但在公式中重复值 x 次? 我考虑了一个辅助列,但总共有多少米使这不切实际。
解决方法
我不是数学专家,但我可以向您展示如何使用 Excel 365 根据所示条件“制作一系列数字”。
假设您的数据在 B2:F4
范围内,如下所示。在单元格 G2
中,输入以下公式并将其向下拖动:
=STDEV.P(--FILTERXML("<t><s>"&TEXTJOIN("</s><s>",1,REPT($B$1:$F$1&"</s><s>",$B2:$F2))&"</s></t>","//s[number()=.]"))
以上将使用 STDEV.P 函数计算标准偏差,但我不确定这是否是正确的函数,因为原始 STDEV 函数。
无论如何,公式的以下部分能够根据需要返回一系列数字:
=--FILTERXML("<t><s>"&TEXTJOIN("</s><s>","//s[number()=.]")
您可以查看此 question 和 JvdV 的回答,以了解 FILTERXML 函数的使用。
,另一种方法是使用替代 SD 公式
哪个会给你
=SQRT((SUM(A2:E2*COLUMN(A2:E2)^2)-SUM(A2:E2*COLUMN(A2:E2))^2/SUM(A2:E2))/SUM(A2:E2))
用于总体标准差。
我认为使用 Let 的 Excel 365 版本更具可读性:
=LET(x,COLUMN(A2:E2),mpy,A2:E2,n,SUM(mpy),sumxsq,SUM(mpy*x^2),sumsqx,SUM(mpy*x)^2,numerator,sumxsq-sumsqx/n,SQRT(numerator/n)
)
不太明显,你可以从原始公式中得到它
=SQRT(SUM(A2:E2*(COLUMN(A2:E2)-SUM(A2:E2*COLUMN(A2:E2))/SUM(A2:E2))^2/SUM(A2:E2)))
同样,在 Excel 365 中,您可以将其写为:
=LET(x,xbar,SUM(mpy*x/n),SUM(mpy*(x-xbar)^2),SQRT(numerator/n)
)
将分母改为
(SUM(A2:E2)-1)
用于样本标准偏差。
,我终于弄明白了。 我添加了一个计算平均值的列。 (说F栏) 然后我有一个这样的公式
=SQRT(SUM(A2*POWER((1-F2),2),B2*POWER((2-F2),C2*POWER((3-F2),D2*POWER((4-F2),E2*POWER((5-F2),2))/SUM(A2:E2))
本质上,这计算了每个条件值与平均值的方差,乘以该特定条件下资产的值数(例如米数),然后进行正常的其他标准偏差计算(总和除以总数),正方形).