Корреляционная функция сложения и вычитания в массивах

У меня есть два столбца рыночных данных. Я использую корректирующую функцию корреляции, начиная с ячеек A1:A100, B1:B100. Я хочу определить несколько других корреляций. Одна из корреляций, которую я хочу рассчитать, — это A2:A100, B1:B99. Но я хотел бы выразить ячейки в функции. Итак, скажем, в ячейке C1 я набираю 1. Я хочу выразить массивы как A(1+$C$1):A100, B1:B(100-$C$1). Я могу это сделать?


person Ira Koyner    schedule 16.10.2015    source источник


Ответы (2)


Да, ты можешь. Найдите косвенную функцию. Это будет выглядеть примерно так

=indirect("A" & 1+$C$1 & ":A100,b1:b" & 100-$C$1) 

который возвращает A2:A100,B1:B99, который можно передать другой функции

Хотя я думаю, что для большинства функций вам нужно будет использовать несколько косвенных функций вместо одной такой. Я не уверен, что вы можете сделать с косвенной функцией, которая возвращает два массива, разделенных запятой.

Что-то вроде этого будет использоваться

=SUMPRODUCT(INDIRECT("A" & 1+$C$1 & ":A100"),INDIRECT("B1:B"& 100-$C$1))
person gtwebb    schedule 16.10.2015
comment
Фантастика!!!!!!!!!! Вместо SUMPRODUCT я использовал CORREL и получил правильный ответ. Спасибо большое - person Ira Koyner; 16.10.2015

Лучше вообще избегать изменчивых конструкций INDIRECT, если это возможно:

=CORREL(INDEX(A:A,1+$C$1):A100,B1:INDEX(B:B,100-$C$1))

С Уважением

person XOR LX    schedule 16.10.2015