Использование массивов для получения ненулевых чисел в определенном диапазоне дат для определенного имени - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу рассчитать стандартное отклонение группы чисел, если эти числа находятся в указанном диапазоне дат.Я хочу, чтобы формула игнорировала любые 0 значений, с которыми она сталкивается при извлечении данных.

Мои данные выглядят следующим образом:

Candy    201712  201801  201802  201803  201804  201805  201806  201807
Reese's  1.64    1.49    0       1.73    1.20    0       1.61    1.80
Hershey  1.00    0.89    0.95    1.12    1.19    1.15    1.21    1.00

Моя справочная таблица, которую я использую для обоснованияформулы вокруг имеют одинаковую первую строку и первый столбец.

В моем наборе результатов я рассчитываю получить стандартное отклонение данных за 6 месяцев (201801 - 201806), если оно не учитывает 0 значений,Таким образом, стандартное отклонение по Ризу должно рассчитываться только для (201801,201803,201804,201806).Но для Херши следует использовать все числа из (201801-201806)

Это моя текущая формула: важные имена строк и столбцов Candy data и 'Std.'Ряды 2 - даты.Первый столбец «Candy Data» и «Std.»являются названиями конфет.

=STDEV.P(IF(('Candy Data'!$C$2:$AX$2>'Std.'!R$2)*('Candy Data'!$C$2:$AX$2<'Std.'!AE$2)=1,INDEX('Candy Data'!$C:$AX,MATCH('Std.'!$A2,'Candy Data'!$A:$A,0),0)))

Логическое утверждение IF сужает весь набор данных, чтобы быть между двумя значениями даты (<дата и> дата, дать умноженные значения T / F)друг с другом дает 1 для TT 0 для других значений).Следующая часть ищет название моноблока.

Эта формула отлично работает, так что я знаю, что здесь ничего не нужно смешивать, и логика хороша.Но когда я хочу исключить нулевые значения, это становится сложнее.

=STDEV(IF(IF(('Candy Data'!$C$2:$AX$2>'Std.'!C$2)*('Candy Data'!$C$2:$AX$2<'Std.'!P$2)=1,INDEX('Candy Data'!$C:$AX,MATCH('Std.'!$A2,'Candy Data'!$A:$A,0)))<>0,INDEX('Candy Data'!$C:$AX,MATCH('Std.'!$A2,'Candy Data'!$A:$A,0)),"NA"))

Я попытался использовать то же самое утверждение здесь и включить дополнительный оператор IF, который я логически интерпретировал как значения от 0 до 0. Я получаю ссылкуошибка в первом операторе INDEX после разрешения MATCH.

Первая формула имеет весь массив, на который она смотрит.Вторая формула должна быть способна выбирать номера, но я не уверен, что это вообще возможно.

У кого-нибудь есть советы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...