2013-02-13 40 views
0

所以,我有一個Excel工作表,看起來像以下內容:(IVE取出所有irelevant信息)奇怪的問題與計算,當我用if語句

enter image description here

D是有公式被拖累到所有細胞(改變行號):

=IF(A2 = "",$D1-C2,A2 - C2)

如果你看到細胞D6你會發現它有某種錯誤。我包括2個例子。該表的下半部分正確使用相同的公式。第一部分是不工作,我認爲它是因爲0.985,它似乎只發生在0.9以上但低於1時。

是否有人能夠幫助找出問題所在?

+0

有趣的小圓整的事情正在進行。如果所有的1都是1,並且.985正好是.985,並且錯誤仍然出現,那麼給定它的大小,我會將D列繞到ROUND(<您當前的公式>,0)最近的整數。 – chuff 2013-02-13 07:19:42

回答

2

看起來像浮點數字上的舍入誤差(有關更多信息,請參見IEEE floating point)。您可以通過在某些小數位數上使用round來解決此問題,例如, round(D6, 3)會將D6舍入到小數點後3位,以獲得更好的精度,如果這是您需要的。

+0

認爲可能是這種情況。由於我的公司工作的公司沒有任何命名約定,因爲它有超過300,000條記錄在不同的文件中進行更改,所以只是有點猶豫。謝謝回答。 – 2013-02-13 07:23:35

1

這不是一個錯誤,它是科學記數法。它顯示的值是3.33*10^(-16),或者是0.00000000000000333067(希望我可以正確計數)。

這基本上是一個舍入誤差。如果您希望列的值接近於零時顯示零,則將該列格式化爲數字有限的小數位數。

+0

對不起,我的意思是它輸出的內容是錯誤的(不是錯誤的E錯誤),因爲它肯定應該是一致的?將其格式化爲一個數字的問題是,我有其他公式引用該單元格和VBA,我想我還必須對這些數據進行一些舍入處理?或者當我在VBA中引用格式化的單元格值時? – 2013-02-13 07:17:47