很明显,我在那里藏了很多行。但基本上有200ish不同的股票和他们在10年的历程每周回报。它们与标准普尔500同期E列中的收益配对。我想使用这些Covariance(Stock, S&P 500)/Variance(S&P 500)
计算beta。我正在努力创建现在的Covariance部分:
新工作表中的A列是所有股票代码的唯一列表,其公式如下:
=COVARIANCE.P(INDIRECT("'Weekly Data'!D$"&MATCH(A2,'Weekly Data'!F:F,0)&":'Weekly Data'!D$"&MATCH(A2,'Weekly Data'!G:G,0)),INDIRECT("'Weekly Data'!E$"&MATCH(A2,'Weekly Data'!F:F,0)&":'Weekly Data'!E$"&MATCH(A2,'Weekly Data'!G:G,0)))
遇到#REF错误。
答案 0 :(得分:1)
您的串联
"'Weekly Data'!D$"&MATCH(A2,'Weekly Data'!F:F,0)&":'Weekly Data'!D$"&MATCH(A2,'Weekly Data'!G:G,0)
导致单元格范围地址的字符串表示错误。
对于ORCL,它会导致'Weekly Data'!D$2:'Weekly Data'!D$528
。但是在Excel
中,它必须是'Weekly Data'!D$2:D$528
。请注意,工作表名称仅一次。
所以正确的公式应该是
=COVARIANCE.P(INDIRECT("'Weekly Data'!D$"&MATCH(A2,'Weekly Data'!F:F,0)&":D$"&MATCH(A2,'Weekly Data'!G:G,0)),INDIRECT("'Weekly Data'!E$"&MATCH(A2,'Weekly Data'!F:F,0)&":E$"&MATCH(A2,'Weekly Data'!G:G,0)))
但是INDIRECT
经常可以用INDEX
代替。这是一种更好的方法,因为INDIRECT
的易变行为,不仅在函数表中的每个单元格变化时,而且在工作表的每次更改时都会重新计算。
INDEX
的公式为:
=COVARIANCE.P(INDEX('Weekly Data'!$D:$D,MATCH(A2,'Weekly Data'!$F:$F,0)):INDEX('Weekly Data'!$D:$D,MATCH(A2,'Weekly Data'!$G:$G,0)),INDEX('Weekly Data'!$E:$E,MATCH(A2,'Weekly Data'!$F:$F,0)):INDEX('Weekly Data'!$E:$E,MATCH(A2,'Weekly Data'!$G:$G,0)))