Могу ли я создать массив с косвенным? - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть некоторые еженедельные данные о возврате акций, которые выглядят следующим образом: enter image description here

Я, очевидно, спрятал там много строк.Но в основном есть 200 различных акций и их еженедельная доходность в течение 10 лет.Они связаны с возвратом в столбце E за тот же период для S & P 500. Я хочу рассчитать бета-версии с этими Covariance(Stock, S&P 500)/Variance(S&P 500).Я изо всех сил пытаюсь просто создать часть Ковариации прямо сейчас:

Столбец А на моем новом листе представляет собой уникальный список всех символов тикера, и моя формула выглядит следующим образом:

=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.

1 Ответ

0 голосов
/ 03 февраля 2019

Ваша конкатенация

"'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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...