假设我想手动计算sample standard deviation
。如你所知,我们有这个公式来做到这一点:
我在EXCEL
中使用此功能执行此操作:(数据范围:E3:E32
)
=SQRT((E3-GEOMEAN($E$3:$E$32))^2/(COUNT($E$3:$E$32)-1))
但是这个函数为每个单元格计算standard deviation
(这里是E3
)。我需要像上面的公式一样求和。(+这是一个使用geometric mean
计算标准差的手动函数)。我怎么能在EXCEL
?
感谢。
答案 0 :(得分:2)
你走了。大括号表示必须将其作为数组公式输入(按Ctrl
+ Shift
+ Enter
以完成Excel中的公式,有关详细信息,请参阅here数组公式):
{=SQRT(SUM(((E3:E32)-GEOMEAN(E3:E32))^2)/(COUNT(E3:E32)-1))}
以下VBA代码也将实现您的目标。创建一个新模块并添加以下内容:
Function GeoSampleStdDev(rng As Range)
Dim meanGeo, sum As Double
meanGeo = WorksheetFunction.geoMean(rng)
Dim cell As Range
For Each cell In rng.Cells
sum = sum + (cell.Value - meanGeo) ^ 2
Next
GeoSampleStdDev = Sqr(sum / (rng.Count - 1))
End Function
可以使用以下表达式在单元格中调用它:
=GeoSampleStdDev(E3:E32)
另请注意,几何标准差的公式与上面的公式不同。这是从维基百科派生的公式的另一个实现。它也是一个数组公式:
{=EXP(SQRT((LN((E3:E32)/GEOMEAN(E3:E32))^2)/COUNT(E3:E32)))}