2013-04-18 42 views
1

如何在Excel中写入平均函数时将-ve数转换为0?在Excel中求平均值时将-ve数转换为零

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

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

= AVERAGE(C:C)

+0

另外,通过转换为0,您的意思是在平均值中使用零值还是忽略该值? – Gaffi

+0

@Gaffi是的,我的意思是使用-ve数作为平均值的零值。 – methuselah

回答

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的平均值/ STDEV计算来代替。这将有助于避免使用复杂/不太常见的公式,并且在查看数据表时可能会使视图更容易理解。

+0

感谢您的回应!我如何为STDEV做这件事? – methuselah

+0

@methuselah看到我的更新,在分界线下面。 – Gaffi

+0

我不认为你需要COUNTIF作为解决方案的一部分,将负数平均为零 - 将负数视为1,只尝试'= SUMIF(C:C,“> 0”)/ COUNT(C:C) ' –

6

如果您想将-ve变成+ 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键)

为了上述评论做出响应,则可以只是STDEV.P替换AVERAGE到得到标准差。公式的另一部分只是检查单元格,如果它是空白,忽略它,如果它是负值,则将其忽略为0,或者如果> = 0,则将其忽略。

+1

'为了实际回答问题,将-ve变为0然后平均为+ 1 –