在Excel中编写平均函数时,如何将-ve数转换为0?
我有一个混合了+ ve和-ve值的列,并希望在运行平均函数时将-ve值转换为+ ve。
这是我到目前为止所做的事情。理想情况下,我更喜欢不涉及VBA使用的情况。
= AVERAGE(C:C)
答案 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计算。这将有助于避免使用复杂/不太常见的公式,并且在查看数据表时可以直观地使事情变得更容易理解。