標籤:

EXCEL計算結果都是0.2,為什麼用 IF 函數判斷返回的結果不一樣?

Excel 編輯的if函數,計算結果都是0.2,但輸出結果不一樣。


謝邀。

對於題主的問題,火箭君親自做了實驗,發現情況跟題主反映的一模一樣,圖如下:

而且我們取出了差值,看似差0.2的地方其實差0.199999……

這應該是一個經典的「浮點數」誤差問題,只是沒想到Excel裡面也有(也有這麼明顯)。

微軟有官方的解釋,很長。總之,一堆理由,我們就是按標準這麼設計的。

所以,我們直接上結論:

(1)影響範圍,浮點數問題誤差 影響這些版本的 OfficeExcel2010,Excel2013 ,Excel Office 365,Excel for Mac 2011 ,Excel for Mac Office 365

(2)解決方法,微軟建議,對於高精度要求的請指明位數範圍,採用ROUND函數

也就是在「 =IF((B2-A2)&>=0.2,"支持"," 不支持")」函數中添加公式,如下:

=IF(ROUND(B2-A2,5)&>=0.2," 支持","不支持 ")即可。 (例如精確到5位)

微軟官方詳細的解釋在這裡:

鏈接: https://support.microsoft.com/en-us/help/78113/floating-point-arithmetic-may-give-inaccurate-results-in-excel

如果你覺得火箭君的回答有幫助就請關注我們吧 ~~

微信公眾號:效率火箭( ID:xlrocket )

我們的口號是:高效搞定事情,盡情享受生活。

life hacker 類的相關問題也可以找火箭君幫忙哦!


謝邀

很正常!

Excel有時候就是做不了簡單的算術。
不要奇怪,也不要莫名驚詫,Excel就是這麼任性。
還有更奇怪的,Excel連你手工輸入的數字都會弄錯。
不信?
你在單元格輸入39524.848、55556.848、65535.848看看會變成什麼。

想知道這到底有什麼不為人知的秘密,請移步到下面的回答,讓龍逸凡為人揭曉那些CCAV式的真相:

excel計算結果莫名多出很多位小數,據說是浮點誤差? - 龍逸凡的回答 - 知乎

你的問題的真相在此!


推薦閱讀:

Excel公式怎麼入門啊?
你覺得特有用的excel 公式或技巧是什麼?
excel中如何在一列的數據中過濾掉,另一列的數據?
excel公式測算IRR,當各個期間現金凈流量合計為-7000多萬時,公式顯示#NUM!,如何設置可以得出內部收益率?
如何在 Excel 中快速將多列數據合併到一列(例圖見問題補充)?

TAG:Excel公式 |