我正在尝试按月计算每日数据的标准差。我使用了这个函数,它不起作用(它正在返回%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 :(得分:1)
问题是AND
对数组公式不起作用。用乘法替换它。另外,删除if的false部分中的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))}
答案 1 :(得分:0)
问题是你不能在数组公式中使用AND运算符(因为它试图将所有值组合成一个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,""),""))}
答案 2 :(得分:0)
公式中使用的AND功能将合并月份和年份测试,而不是单独应用它们。使用级联IF来避免这种情况。此外,对于IF为假的情况使用零可能会给出错误的标准偏差,因为
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)!!!