1

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

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

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

=平均(C:C)

4

2 回答 2

6

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

要将 -ve 变为 0,然后对其进行平均,请使用它=AVERAGE(IF(LEN(C:C)>0,IF(C:C<0,0,C:C),""))并作为数组公式输入(Ctrl+Shift+Enter)

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

于 2013-04-18T18:01:08.077 回答
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 列上运行您的平均值/标准差计算。这将有助于避免使用复杂/不太常见的公式,并且在查看数据表时可以在视觉上使事情更容易理解。

于 2013-04-18T17:54:57.640 回答