excel - 循环计算范围内每个单元格的 Zscore
问题描述
得到一列 2 年历史波动率值 (B),其长度每天都在变化。我正在导入过去 2 年的工作日,以便范围可以从一天更改为另一天。我想计算每个单元格的 zscore 并将其写入相关的 C 单元格(B7 vol、C7 zscore、B8 vol、C8 zscore 等)我在最后一个 vol 上编写了代码并将其写入最后一个 C 单元很酷,但我现在正在尝试编写一个循环并用每个 zscore 填充我的整个 C 列。我在 VBA 中的水平不是很高(我基本上找到了代码并对其进行了修改),找到了股票 LN 返回的循环,但我很难说实话。
什么是最容易使用的循环,知道我需要循环最后一个 vol 选择和 zscore 写入,整个范围的选择不会改变。
到目前为止,这是我的代码:
Private Sub Zscore1()
Dim sht As Worksheet
Dim Zscore As Double
Dim Lastvol As Double
Dim Vols As Range
Set sht = Worksheets("2Y Data Import")
Set StartCell = sht.Range("B7")
'Select Vols
sht.Range(StartCell, StartCell.End(xlDown)).Select
Set Vols = Selection
'Select Lastvol
sht.Range("B7").Select
Selection.End(xlDown).Select
Lastvol = Selection.Value
'Calculate Zscore & Write Result
sht.Range("B7").Select
Selection.End(xlDown).Offset(0, 1).Value = (Lastvol -
Application.WorksheetFunction.Average(Vols)) /
Application.WorksheetFunction.StDev_S(Vols)
End Sub
这是一个示例的屏幕截图,其中只有一列 vols。
A列日期,B列vols,C列我想用vba计算我的zscore,D列zscore用以下公式计算:
Function Zscore(Lastvol As Double, Vols As Range) As Double
Zscore = (Lastvol - Application.WorksheetFunction.Average(Vols)) /
Application.WorksheetFunction.StDev_S(Vols)
End Function
下一步将在 294 列上执行此操作。(A 中的日期,从 B 到 KI 的 294 卷,从 KJ 到 VQ 的相应 zscores)但我想我可以做到。
非常感谢您的帮助
解决方案
推荐阅读
- php - Arcanedev\LaravelNestedSet\NodeTrait appendToNode() 错误
- css - 如何在不使用 React Native 中的 CSS 填充的情况下在 View 元素之间添加额外的空间?
- git - 如何在共享主机(cpanel)上部署私有 git repo
- java - 如何从kotlin接口访问java接口中定义的常量
- javascript - Hichcharts - 自定义图例 css 未显示在打印图表下载功能中
- symfony - 将数据添加到 JWT 刷新响应
- java - Where is the reference to the lambda function?
- r - R数据框-根据相邻列值分配文本值
- php - Laravel,无法获得收藏的财产
- react-native - 如何在 react-native 中为两个不同的组件提供两个不同的抽屉项目?