2013-04-18 44 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 –