我有3列自变量(MSCI)跟随因变量列(没有设置数字),如下所示:
MSCI Growth MSCI Value MSCI Small Cap Fund A Fund B Fund C etccc
xxx yyyy zzzz xxx yyyy zzz
xxx yyyy zzzz xxx yyyy zzzz
xxx yyyy zzzz xxx yyyy zzzz
xxx yyyy zzzz xxx yyyy zzzz
xxx yyyy zzzz
xxx yyyy zzzz
xxx yyyy zzzz
我需要使用Linest函数对每个依赖项回归每个自变量,并将结果值制成表格。我将始终有3个独立变量但可变数量的因变量(基金)
我的问题如下:
1)以下数据将产生9个结果值(每条线的斜率)。我想把它们放到一个表中,我可以将它写入循环中还是必须单独完成?示例结果表
MSCI Growth MSCI Value MSCI Small Cap
Fund A Coeff Coeff Coeff
Fund B Coeff Coeff Coeff
Fund C Coeff Coeff Coeff
2)如果是这种情况,某些基金的行数与MSCI(自变量)的行数不同,则行功能不起作用,但我需要在表格中生成错误信息并继续下一个基金。我不确定如何在循环中反映这一点。
我有一个有效的Linest功能,并为每个独立变量设置我的范围
Sub NestedLoops()
Dim LastRow As Long
Dim Sht As Worksheet
Dim StartCell As Range
Dim gRange As Range
Set StartCell = Range("B9")
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Set gRange = Range(StartCell, Cells(LastRow, 2)) 'range for MSCI Growth
Set vRange = Range("c9", Cells(LastRow, 3)) 'range for MSCI value
Set cRange = Range("D9", Cells(LastRow, 4)) 'range for MSCI small Cap
Range("M13").value = Application.LinEst(gRange, Range("G9:G112"))
从这里开始,我不确定在编写嵌套循环方面要去哪里。理想情况下,我希望Range(“G9:”G112“)每次都将列号增加一个 - 如果它具有相同数量的数据行,则执行Linest,如果没有则产生错误消息 - 制表结果和进入下一个基金。 重复此过程,直到列为空(不再有资金)。然后重新开始,但使用下一个自变量(vRange)。
非常感谢任何有关最佳/最有效方式的帮助/建议。
答案 0 :(得分:1)
代替使用名称范围尝试使用范围对象的偏移方法跨列移动