在Excel中进行平均时,将-ve数转换为零

时间:2013-04-18 17:43:39

标签: excel

在Excel中编写平均函数时,如何将-ve数转换为0?

我有一个混合了+ ve和-ve值的列,并希望在运行平均函数时将-ve值转换为+ ve。

这是我到目前为止所做的事情。理想情况下,我更喜欢不涉及VBA使用的情况。

  

= AVERAGE(C:C)

2 个答案:

答案 0 :(得分:6)

如果你想转换成+ ve然后平均它们,你可以输入=AVERAGE(IF(LEN(C:C)>0,ABS(C:C),""))。请记住,在输入此单元格时需要点击Ctrl+Shift+Enter,以便将其作为数组公式执行。

要将-ve转为0然后平均使用此=AVERAGE(IF(LEN(C:C)>0,IF(C:C<0,0,C:C),""))并输入数组公式(Ctrl + Shift + Enter)

要回复上述评论,您只需将AVERAGE替换为STDEV.P即可获得标准偏差。公式的另一部分只检查单元格,如果它是空白则忽略它,如果它是负数则将其变为0,或者如果它是> = 0则将其传递给它。

答案 1 :(得分:4)

要忽略负数,请使用

=AVERAGEIF(C:C,">0")

要使用零作为平均值的一部分,请使用:

=SUMIF(C:C,">0")/COUNT(C:C)

C:C是您获得平均值的范围(来自您的示例)。


为了回应grandocu的建议,要获得STDEV,你可以使用数组公式:

=STDEV.P(IF(C:C>0,C:C,0))

根据您关注的记录数量,我还建议您创建一个包含与原始日期相关的值的新列。即如果您有一个具有正值和负值的列C:C,请在列D:D中输入一个如下公式:

=IF(C2>0,C2,0)

然后,在D列上运行您的averages / stdev计算。这将有助于避免使用复杂/不太常见的公式,并且在查看数据表时可以直观地使事情变得更容易理解。