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

在Excel中写入平均函数时,如何将数字转换为0?

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

这是我到目前为止所做的内容。 理想情况下,我宁愿不涉及VBA使用情况。

= AVERAGE(C:C)

要忽略负数,请使用

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

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

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

C:C是你的范围来得到平均值(来自你的例子)。


为了回应grandocu的build议,为了得到STDEV,你可以使用一个数组公式:

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

根据您关注的logging数量,我也可能会build议创build一个与您的原始date相关的值的新列。 即如果你有一个列C:C与正值和负值,进入列D:D像这样的公式:

 =IF(C2>0,C2,0) 

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

你可以input=AVERAGE(IF(LEN(C:C)>0,ABS(C:C),""))如果你想变成+ ve然后平均它们。 记住,当你input这个单元格时,你需要Ctrl+Shift+Enter ,这样它就像一个数组公式一样。

为了把它变成0,然后使用这个=AVERAGE(IF(LEN(C:C)>0,IF(C:C<0,0,C:C),""))并input数组公式(Ctrl + Shift + Enter)

要回应上面的评论,你可以用STDEV.P代替AVERAGE来获得标准偏差。 公式的其他部分只是检查单元格,如果它是空白,忽略它,如果它是负值,则将其设为0;如果> = 0,则将其忽略。