按月计算标准偏差
calculate standard deviation by month
我正在尝试根据每日数据按月计算标准偏差。我使用了这个函数但它不起作用(它返回 %DIV/0!
)。
{=STDEV.S(IF(AND(MONTH(data!$A:$A93)=MONTH($I22),YEAR(data!$A:$A93)=YEAR($I22)),data!H:H93,0))}
你能帮我解决这个问题吗?
谢谢
问题是 AND
不适用于数组公式。将其替换为乘法。另外,删除 if 的错误部分中的 0,这样它就不会破坏您的计算:
{=STDEV.S(IF((MONTH(data!$A:$A93)=MONTH($I22)) *
(YEAR(data!$A:$A93)=YEAR($I22)), data!H:H93))}
问题是您不能在数组公式中使用 AND 运算符(因为它会尝试将所有值组合成一个 true 或 false)。
此外,使用 0 作为错误值也是在引入错误读数。使用 stdev.s 忽略的文本值。
试试看
{=STDEV.S(IF(MONTH(data!$A:$A93)=MONTH($I22),if(YEAR(data!$A:$A93)=YEAR($I22),data!H:H93,""),""))}
公式中使用的 AND 函数将合并月份和年份测试,而不是单独应用它们。使用级联 IF 来避免这种情况。此外,在 IF 为假的情况下使用零可能会给出错误的标准偏差,因为
STDEV.P(1,2,3,0,0,0,0,0) <> STDEV.P (1,2,3).
试试这个:
=STDEV.S(IF(MONTH(data!$A:$A93)=MONTH($I22),IF(YEAR(data!$A:$A93)=YEAR($I22),data!H:H93,"NO"),"NO"))
公式中的"NO"可以是任意文本。当 Excel 的统计函数(SUM、AVG、STDEV 等)遇到文本值时,它们会跳过它而不是将其转换为零。
STDEV.P(1,2,3,"NO","NO","NO","NO","NO") == STDEV.P(1,2,3)!!!
我正在尝试根据每日数据按月计算标准偏差。我使用了这个函数但它不起作用(它返回 %DIV/0!
)。
{=STDEV.S(IF(AND(MONTH(data!$A:$A93)=MONTH($I22),YEAR(data!$A:$A93)=YEAR($I22)),data!H:H93,0))}
你能帮我解决这个问题吗?
谢谢
问题是 AND
不适用于数组公式。将其替换为乘法。另外,删除 if 的错误部分中的 0,这样它就不会破坏您的计算:
{=STDEV.S(IF((MONTH(data!$A:$A93)=MONTH($I22)) *
(YEAR(data!$A:$A93)=YEAR($I22)), data!H:H93))}
问题是您不能在数组公式中使用 AND 运算符(因为它会尝试将所有值组合成一个 true 或 false)。
此外,使用 0 作为错误值也是在引入错误读数。使用 stdev.s 忽略的文本值。
试试看
{=STDEV.S(IF(MONTH(data!$A:$A93)=MONTH($I22),if(YEAR(data!$A:$A93)=YEAR($I22),data!H:H93,""),""))}
公式中使用的 AND 函数将合并月份和年份测试,而不是单独应用它们。使用级联 IF 来避免这种情况。此外,在 IF 为假的情况下使用零可能会给出错误的标准偏差,因为
STDEV.P(1,2,3,0,0,0,0,0) <> STDEV.P (1,2,3).
试试这个:
=STDEV.S(IF(MONTH(data!$A:$A93)=MONTH($I22),IF(YEAR(data!$A:$A93)=YEAR($I22),data!H:H93,"NO"),"NO"))
公式中的"NO"可以是任意文本。当 Excel 的统计函数(SUM、AVG、STDEV 等)遇到文本值时,它们会跳过它而不是将其转换为零。
STDEV.P(1,2,3,"NO","NO","NO","NO","NO") == STDEV.P(1,2,3)!!!