【发布时间】:2021-08-16 15:56:03
【问题描述】:
我试图从我的标准偏差计算中排除所有零值。例如,如果我的数据范围有三个数字:0,1,2,那么我只想计算 1 和 2 的标准差。
这是我当前的代码(供参考-我的代码的顶部用于引用某些单元格名称,这样可以正确提取随后的数据):
Sub DownsideSTDVCalc()
Dim fund As String
Dim checkFund
Dim item As String
fund = Worksheets(12).Range("A2").Value
For i = 2 To 48
checkFund = Worksheets(11).Columns(i)
item = Worksheets(11).Columns(i).Cells(1, 1)
If item = fund Then
Dim values
Dim qtd
values = Worksheets(11).Range(Worksheets(11).Cells(2, i), Worksheets(11).Cells(4, i))
For j = 1 To UBound(values) - LBound(values)
values(j, 1) = values(j, 1)
Next
qtd = Application.WorksheetFunction.StDev_S(values)
Worksheets(12).Range("b2").Value = qtd
End If
Next
End Sub
【问题讨论】:
-
VBA 没有任何奇特的数组操作可以让您根据值添加或删除元素。您必须构造第二个仅包含非零值的数组。
标签: excel vba finance standard-deviation