2015-08-05 5 views
0

Я пытаюсь рассчитать стандартное отклонение по месяцам от ежедневных данных. Я использовал эту функцию, и она не работает (возвращается %DIV/0!).рассчитать стандартное отклонение по месяцам

{=STDEV.S(IF(AND(MONTH(data!$A$5:$A$3893)=MONTH($I22),YEAR(data!$A$5:$A$3893)=YEAR($I22)),data!H$5:H$3893,0))} 

Вы можете мне помочь?

Благодаря

+0

не работает ** КАК **? –

+0

О, я получил эту ошибку # DIV/0! –

+0

Проверьте свои значения. Уменьшите диапазон до двух строк, которые, как вы знаете, наверняка имеют правильные значения и посмотрите, работает ли это – Amit

ответ

0

Функция И, используемый в формуле совместит месяц и год испытаний вместо применения их по отдельности. Используйте каскадные IFs, чтобы избежать этого. Кроме того, использование в нуль для случая, когда ПЧ является ложным, вероятно, даст неправильный стандартное отклонение, потому что

STDEV.P(1,2,3,0,0,0,0,0) <> STDEV.P (1,2,3). 

Попробуйте это:

=STDEV.S(IF(MONTH(data!$A$5:$A$3893)=MONTH($I22),IF(YEAR(data!$A$5:$A$3893)=YEAR($I22),data!H$5:H$3893,"NO"),"NO")) 

«нет» «ы в формуле может быть любой текст. Когда статистические функции Excel (SUM, AVG, STDEV и т. Д.) Сталкиваются с текстовым значением, они пропускают его вместо преобразования его в ноль.

STDEV.P(1,2,3,"NO","NO","NO","NO","NO") == STDEV.P(1,2,3)!!! 
1

Проблема заключается в том, что AND не очень хорошо работает с формулами массива. Замените его умножением. Кроме того, удалить 0 в ложной части из если так, что это не испортит ваш расчет:

{=STDEV.S(IF((MONTH(data!$A$5:$A$3893)=MONTH($I22)) * 
    (YEAR(data!$A$5:$A$3893)=YEAR($I22)), data!H$5:H$3893))} 
+0

Спасибо, что так так !!! –

0

Проблема заключается в том, что вы не можете использовать оператор в формуле массива (так как он пытается объединить все значения в один true или false).

Также, используя 0 в качестве вашего ложного значения, вы вводите ложные показания. Вместо этого используйте текстовое значение, которое stdev.s игнорирует.

Попробуйте {=STDEV.S(IF(MONTH(data!$A$5:$A$3893)=MONTH($I22),if(YEAR(data!$A$5:$A$3893)=YEAR($I22),data!H$5:H$3893,""),""))}