excel - 我可以创建一个间接数组吗?
问题描述
显然,我在那里隐藏了很多行。但基本上有 200 种不同的股票和它们在 10 年内的每周回报。它们与标准普尔 500 指数同期 E 列中的回报配对。我想用这些来计算贝塔值Covariance(Stock, S&P 500)/Variance(S&P 500)
。我现在正在努力创建协方差部分:
我的新工作表中的 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 错误。
解决方案
你的串联
"'Weekly Data'!D$"&MATCH(A2,'Weekly Data'!F:F,0)&":'Weekly Data'!D$"&MATCH(A2,'Weekly Data'!G:G,0)
导致单元格范围地址的错误字符串表示。
它导致'Weekly Data'!D$2:'Weekly Data'!D$528
在 ORCL 的情况下。但在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)))
推荐阅读
- python-3.x - aws-secretsmanager-caching-python :: 缓存是否在同一 EC2 实例上运行的不同 Docker 容器之间共享?
- css - 自定义 Angular 组件未在 ie11 上应用 css 类
- sql - Using jsonb_agg/jsonb_build_object to parse to inner structs
- reactjs - React - 酶测试 - 模拟点击后如何检查课程
- flutter - Dart 中静态变量和 const 变量的区别
- python - Python,Tkinter 进入函数(错误是从按钮调用函数)
- angular - 在 Angular 中使用事件或 RxJS 进行服务通信
- html - 防止html子元素继承父宽度
- java - Java中带接口的微分函数
- javascript - 如果里面没有评论,请删除帖子