震驚!Excel也會騙人,數值精度及位數取捨函數全解析

2021-02-13 Excel技巧精選

來自:精進Excel(ID: SeniorExcel)

這天,雷哥找到星爺訴苦,因為他碰到了一個無比棘手的問題:使用Excel做最簡單的求和計算時,得出的結果總是不對,每次都是錯0.01的樣子,如下圖所示。

圖1:簡單的加法運算

其實Excel具有15位有效數字的計算精度,對於上圖中的兩位小數來說,應該手到擒來才對,出現這樣的錯誤確實讓人奇怪。

這個問題要分兩種情況討論。

情況1:浮點運算誤差,這種情況確實是Excel的責任,我們應該討伐Excel;

情況2:是我們使用Excel的姿勢不對導致的錯誤,我們應該自我檢討。

Part 1

浮點運算誤差

浮點運算誤差通常出現在使用小數運算,或運算過程中包含小數的情況中,在減法和除法中比較多見,這算誤差的出現是隨機的,並不一定總能碰到。但是,以目前的科技,這種誤差總是客觀存在的。

1-1 出現的原因:

由於計算機內部以二進位保存,所以十進位的有限位的小數,在計算機內部會是一個無限位的小數。

例如:十進位的0.9雖然只有一位小數,轉成2進位是無限循環小數0.1110011001100110011...

軟體保存浮點數的精度有限,Excel可以保存15位有效數字,有效數字以後的就被忽略了。

1-2 浮點運算案例

如下圖所示,在C3單元格中寫入簡單的計算=5.1-5.2+1,計算結果毫無爭議應該是0.9,但是如果設置足夠多的小數位數,會發現Excel的計算結果並不等於0.9。

本案例來自:《Excel這麼用就對了》

這雖是一個很小的誤差,但是它畢竟不等於真實的數值。如果出現在工程中,甚至可能造成重大的安全事故。

1-3 解決方法

Excel 提供了多種函數來彌補捨入誤差,通常使用ROUND 函數強制四捨五入即可。

如圖所示,使用ROUND函數矯正誤差。


Part 2

人為誤差


從前文可以看到,浮點運算產生的誤差非常小,而且不是隨機出現,像圖1中出現0.01這麼大的誤差,通常不是浮點運算造成的,而是我們被Excel欺騙了。

2-1 出現的原因:

通常是在實際的使用過程中,為了顯示上的需要,對單元格數值進行了格式設置,使其只顯示一部分小數位數。

比如:單元格中的數值是49.995,在【設置單元格格式】→【數字】→【數值】中設置小數位數為2位。

 

設置小數位數為2位

但是,使用自定義格式只是改變了數據的顯示式樣,數據本身並沒有發生變化,這就是導致表面上看起來的數值與實際數值不一致的原因。

知道了這個細節,再來看一下雷哥出錯的數據,立刻就能找到錯誤的根源的。當我們滑鼠點到A1單元格時,發現在單元格中顯示的數據是50.00,但是在編輯欄中,實際的數值卻是49.995。

 

當我們滑鼠點到A2單元格時,發現在單元格中顯示的數據是149.99,但是在編輯欄中,實際的數值卻是149.985。

 

也就是說,因為對數值進行了格式設置,只能顯示小數點後兩位,所以原來三位小數被「四捨五入」為兩位小數,注意,這個四捨五入是假的,只是表面的四捨五入。

如果是「五入」,那麼顯示的數值就比實際數值大;如果是「四舍」,那麼顯示的數值就比實際數值小。雷哥的兩個數值恰好都是「五入」,所以導致顯示的兩個數值的和就比實際數值的和大了0.01。

2-2 解決方法

方法 1:以顯示精度為準


!!事先聲明:此方法要慎重使用!!


因為問題出在「顯示的數值」和「Excel實際認為的數值」不一致,因此可以設置Excel「以顯示精度為準」選項來防止四捨五入錯誤。

如下圖,在【選項】→【高級】→【計算此工作簿時】中勾選「將精度設為所顯示的精度」,此選項會強制將工作表中每個數字的值成為顯示的值。

設置之後,如果在「設置單元格格式中」選擇顯示兩位小數的數字格式,則在保存工作簿時,所有超出兩位小數的精度均將會丟失。

!!!注意:此選項將影響整個工作簿,而且無法撤消此選項和恢復丟失的數據,因此屬於暴力、強制性的捨去位數,建議在啟用此選項之前先備份工作簿。

方法 2:四捨五入函數進行位數取捨

還可以使用四捨五入函數對數值進行「正確的四捨五入」,此類型的函數較多,放在第三部分詳細講解。

Part 3

數值位數取捨函數

使用函數進行數值位數取捨不僅改變了數據的顯示式樣,同時也改變了數據本身。根據位數取捨函數的作用不同,可以分為三類。

3-1 簡單粗暴的取整

取整最常使用的就是INT函數。

INT函數是將數值向下取整為最接近的整數。

因為INT函數是向下取整,所以會返回比原始數據小但最接近的數值。

3-2 按部就班的四捨五入

另一類對函數位數取捨的方法是四捨五入,這樣取捨的方式,在很大程度上也是能滿足精度要求的,相比直接捨去小數部分的取整,四捨五入的方式更接近真實情況。

能夠實現四捨五入的函數,以ROUND為基礎,總共可以延伸出三個不同的類型的函數。

 

1)ROUND函數對數值四捨五入

ROUND函數是取捨函數中使用率最高的函數之一,使用它可以方便地對數值進真正數學意義上的四捨五入。通常用在嵌套中,在計算過程中,對數值取捨為想要的精度。

 

=ROUND (number, digits)  

①Number:要取捨的數值  ②Digits:要保留的小數位數

 

 

註:如果round函數只有參數number,等同於digits 等於 0。

 

ROUND函數使用案例:

 

參數二大於等於0的情況,比較容易理解。下面詳細講解小於零的情況:

 

-1,就是將6.231四捨五入為最接近的 10 的倍數

-2,就是將50.35四捨五入到最接近的100的倍數

……

2)ROUNDUP對數值進行向上取捨

對數值進行取捨時,有時我們需要直接向上取捨,即無論要捨去的數是幾,都要向前一位進1,這時可以使用ROUNDUP函數,如圖所示。

 

3) ROUNDDOWN對數值進行向下取捨

與ROUNDUP函數相反,不管要捨去的數是幾,如果想將它們直接捨去而無需向前一位進1,可以使用ROUNDDOWN函數,如圖所示。

 

 

3-3 靈活多變的截位

截位指的是,直接將小數部分的某一位或多位直接舍掉,而不進行任何進位。

TRUNC函數能夠實現這一功能,它的作用是直接將數字的小數部分多餘位數截去,保留指定的位數。

TRUNC函數語法:

TRUNC(number,num_digits)

①number:要舍位的數值;②num_digits:保留的小數位數

  

 

經過TRUNC計算之後,無論小數有幾位,都被截為指定的位數,並且沒有進行四捨五入,完全直接捨去。

可以看出,當TRUNC的第二個參數為0時,TRUNC函數同樣可以保留數值的整數部分,但是TRUNC在進行取捨時,不考慮數值的正負,直接舍掉小數部分,只保留整數。

這種情況下,TRUNC和INT函數的區別如下表。

掌握了這些技能,還會被Excel欺騙麼?

●本文編號619,以後想閱讀這篇文章直接輸入619即可

●輸入m可以獲取到全部文章目錄

●輸入c可以獲取到全部動畫下載地址

Word技巧↓↓↓

PPT技巧精選↓↓↓

相關焦點

  • 幾個數值取捨函數的比較
    在實際的應用中,關係到數值取捨的時候,經常會遇到四捨五入、取整、保留小數位數等諸多問題,這些問題用到了七個函數,分別是INT、TRUNC、ROUND、ROUNDUP、ROUNDDOWN 、FLOOR、 CEILING函數,今天就這七個函數進行詳細的比較。
  • excel圖文教程:常用數值取捨方法匯總
    說到excel中關於數值取捨的方法,可能很多小夥伴都不怎麼在意,總覺得不就是對數值進行四捨五入或者是取整嗎,用處又不大,有什麼好講的。nonono!數值的取捨遠遠不止這些,並且它們在工作中用處可大了,比如計算工齡,用於貨幣單位的轉化等等,今天我們就一起來好好認識認識它們吧!學習更多技巧,可以收藏部落窩教育excel圖文教程。
  • excel圖文教程:常用數值取捨方法匯總
    說到excel中關於數值取捨的方法,可能很多小夥伴都不怎麼在意,總覺得不就是對數值進行四捨五入或者是取整嗎,用處又不大,有什麼好講的。nonono!數值的取捨遠遠不止這些,並且它們在工作中用處可大了,比如計算工齡,用於貨幣單位的轉化等等,今天我們就一起來好好認識認識它們吧!學習更多技巧,可以收藏部落窩教育excel圖文教程。
  • Excel取捨函數ROUND
    在Excel中,ROUND是最常用的取捨函數,其按照四捨五入取捨,即判斷需保留小數位數的右邊1位,小於等於4則捨去,大於等於5則進位,其使用方法如下。ROUND函數的格式=ROUND(數值,小數位數)「數值」可以為單元格或數字;「小數位數」即需保留的小數位數。為正數時,對小數點右側四捨五入;為負數時,對小數點左側四捨五入。
  • 「Excel」3-7 取捨函數
    3-7 取捨函數數據取捨介紹三個函數以及Excel自帶處理功能,通過對比多加思考各函數的區別。Excel自帶數據處理功能:Excel函數的自帶數據處理功能是對數據進行處理使其顯示指定的位數,對於位數過多則被四捨五入,位數過少則被添加數字零。
  • excel中數值的保留指定位數,還有這麼多方式!
    在excel,我們通常會通過設置單元格格式中的數值保留小數位數,但是這種方法保留的小數位數僅僅改變了顯示效果,實際內容仍然是原來的數值。比如下圖中3.1415926,按下ctrl+1,在單元格格式中數值保留兩位小數後,單元格中顯示的是3.14,但是在編輯區,仍然是3.1415926。
  • 這兩對取捨函數,可以解決很多的問題
    數據中的取捨在日常的工作中是經常會遇到的一類問題,通常情況下,常用的是四捨五入。但是有時候也會用到一些向上或者向下取捨的例子。今天,老師給大家講解兩組函數。分別為ROUNDUP與ROUNDDOWN函數,以及FLOOR與CEILIING函數。
  • Excel四捨五入常出錯?這是你用錯了函數,這四大取捨公式你會嗎
    我們在使用Excel來進行數據運算時,經常需要進行四捨五入的取捨運算,而根據實際需求的不同,我們對於函數的選擇也不相同,通常情況下我們使用ROUND函數來保留特定的運算結果小數位數。對於其他取捨函數的運算,我們通常還有INT函數來對單元格數值取整,ROUNDUP用來保留數值指定的小數位數,捨去的部位直接向上進位,ROUNDDOWN函數則與之相反,捨去部位向下捨入。那麼這四種常用取捨函數在我們日常工作中應該如何使用呢?快來學習下吧。
  • 對數值四捨五入的函數!
    有時我們需要對數值四捨五入,所謂四捨五入就是對數值進位或者捨去。
  • 技巧不求人-147期——Excel小數點取捨的幾種方法
    取捨之間,精確掌握,趕緊get吧!技巧不求人-147期Excel小數點取捨的幾種方法1.首先是設置單元格格式,這種做法就是簡單的四捨五入;2.ROUNDDOWN函數,向下取捨,參數寫幾位,小數點直接保留幾位,沒有其他運算規則
  • EXCEL函數中SUM函數與RMB函數的組合自動為金額數值添加貨幣符號
    EXCEL函數公式大全之利用SUM函數RMB函數自動為金額添加貨幣符號。xcel函數與公式在工作中使用非常的頻繁,會不會使用公式直接決定了我們的工作效率,今天我們來學習一下提高我們工作效率的函數SUM函數和RMB函數。今天我們這個例子是自動為匯總求和的數據自動添加貨幣符號。
  • 快速對數值進行向上捨入或者向下捨入,兩個excel函數就能實現
    我們這次主要講解兩個excel函數,這兩個excel函數分別是roundup函數向上捨入和rounddown函數向上捨入,這兩個函數都是針對數值的取捨,需要注意的是,這兩個函數都不是遵循四捨五入的原則,下面我就來講解一下有關這兩個函數的具體內容。
  • 5種數值取捨方法,老師和同事都告訴你了嗎?
    析:ROUND函數是EXCEL中最普遍使用的位數取捨函數。語法結構為「ROUND(數據,位數)」,後面位數為正數時,表示保留的小數位數;當為負數時,表示從個位開始往左取捨的位數;當為0時,僅保留整數部分。應注意百位是-2,而不是-3。
  • excel函數公式大全之利用ROUND函數FLOOR函數實現特定條件的捨入
    excel函數公式大全之利用ROUND函數FLOOR函數實現特定條件的捨入,excel函數與公式在工作中使用非常的頻繁,會不會使用公式直接決定了我們的工作效率,今天我們來學習一下提高我們工作效率的函數ROUND函數FLOOR函數,利用ROUND函數FLOOR函數實現特定條件特定數值的捨入
  • excel函數公式大全之利用SUM函數與RANK函數的組合對數值進行排名
    excel函數公式大全之利用SUM函數與RANK函數的組合對數值進行排名,excel函數與公式在工作中使用非常的頻繁,會不會使用公式直接決定了我們的工作效率,今天我們來學習一下提高我們工作效率的函數SUM函數與RANK函數。對於SUM函數大家在熟悉不過了,我們就不在做過多的講解。
  • Excel也會騙人?看到這,簡歷上再也不敢寫精通Office了
    前者直接改變了數值大小,後者實際上數值大小是沒有變化的,這也是為什麼有人大呼Excel也會騙人的原因所在。今天技巧妹就和大家分享幾個Excel數據取整的常用函數和相關單元格格式設置技巧。1、ROUND函數取整ROUND函數對數據進行取整,遵循四捨五入原則,其基本語法:=ROUND(數值,保留的小數位數)。
  • excel四捨五入函數是什麼?怎樣使用?
    本篇將介紹excel四捨五入函數是什麼?怎樣使用?有興趣的朋友可以了解一下!一、前言excel是我們生活中很常用的表格製作工具,它不僅僅只是用來製作表格,還可以使用來對表格中的數據進行處理(比如:運算、排序等)。excel對數據的處理也是很強大的,為我們提供了很多函數(比如:求和函數、平均數函數等)。
  • excel函數應用技巧:如何按不同要求,改變數值格式
    】TRUNC函數不是很常用的函數,它的作用是將數字截為整數或保留指定位數的小數。第二參數為正數時,用於控制小數位數,超過指定位數後的數據直接丟掉;第二參數為負數時,用於控制需要將從個位數開始的多少位數字直接變成0。本處,第二參數為-3,就是將個位、十位、百位都歸零,得到我們的結果。
  • excel四捨五入函數怎麼用 excel四捨五入函數的使用方法
    首先,選中B1單元格,在B1裡輸入"=round",excel會自動提示四捨五入函數,  雙擊提示出來的ROUND函數,在B1單元格裡就會出現;  然後,單擊A1單元格,輸入逗號,再輸入2(保留兩位小數),  最後,敲回車,即可顯示結果。
  • 將數值轉化為美元貨幣數值,用doallar函數一招搞定,還自帶美顏
    今天為大家講解如何將貨幣數值轉化為美元貨幣下的文本數值-dollar函數。特別說明,該函數僅僅對美元符號有作用,對人民幣無感!同時dollar函數自帶四捨五入的美顏功效,能力是棒棒的!還是先來看看dolla他老人家吧!