Excel中如何設置「一舍二入」與「四舍六舍五單雙」的取捨方法

2021-02-14 Excel聚焦

一、一舍二入取捨的取捨方式

在實際的工作中,四捨五入是經常會被用到的取捨方式,但是在一些特定的環境下,對於其他的一些取捨方式就會被用到。其中一種就是一舍二入的取捨方式。

在這裡以精確兩位的方式進行取捨,也就是判斷小數點後第三位的值,如果汪數部分第三位上的值大於1,那麼向前一位進1,否則的話將第三舍掉。如下圖:

首先,對於取整時,對於上述的數字,設計時那麼分水嶺就是0.2與0.8,就是對正數加止0.8與對負數減去0.8,然後利用TRUNC函數進行截取。如果是對上圖中的數字利用一舍下入的方法進行取捨時可以採用的公式為:

=SIGN(C2)*TRUNC(ABS(C2)+0.8)

如上圖中的D2單元格。如C2單元格中這10.213,是正數,給此函數加上0.8以後,就變成了11.013,然後再截取整數部分,即可獲得結果為11。SIGN函數的功能是如果目標值是負數,那麼返回1,如果為0,返回0,如果是負數,那麼返回-1。所以可以利用這一特點來獲取對象是正數還是負數。

那麼我們接著討論保留兩位小數的時候,我們就需要為這個數字擴大1000倍,進行捨入後再縮小100倍。那麼C2單元格的公式可以寫成:

=SIGN(C2)*(TRUNC(ABS(C2*100)+0.8))/100

如果保留三位有效數字的話那麼擴大與縮小的倍數就是1000,以此類推。

注意:根據以上的方法與概念,我們也可以設計二舍三入,三舍四入以及其他的一些捨入的方法,最重要的是就是要注意分水領,這才是解題的突破口。

二、四捨六入五單雙的取捨方式

為了避免四捨五入造成的偏差大的情況,在一些特殊的行業會採用的四捨六入五單雙的捨入方法對數字進行修約。四捨六入五單雙也叫四捨六入五成雙,或者四捨六入五留雙,有些時候也叫四捨六入、奇進偶舍。

具體有以下幾個規則:

 要保留的數值後第一位不是5,直接四捨六入;

 要保留的數值後第一位是5且5前面是偶數,不進位;

 要保留的數值後第一位是5且5前面是奇數,進位。

在Excel函數中,沒有一種函數能直接進行此種方式的修約,在大多的情況下都是根據需要進行VBA編程進行處理的。這裡以下圖給的修約數字進行設計該種捨入方式的公式。要求對下列的數字保留一位小數進行四捨六入五單雙的捨入。

B3單元格的公式為:

=ROUND(B2,0)-(ABS(TRUNC(B2/2)*2-B2)=0.5)*SIGN(B2)

B6單元格的公式為:

=ROUND(B5,1)-(ABS(TRUNC(B5*5)*2-B5*10)=0.5)*SIGN(B5)/10

B9單元格的公式為:

=ROUND(B8,2)-(ABS(TRUNC(B8*50)*2-B8*100)=0.5)*SIGN(B8)/100

B12單元格的公式:

=ROUND(B11,-1)-(ABS(TRUNC(B11/20)*2-B11/10)=0.5)*SIGN(B11)*10

從上面前三個公式中我們就可以總結出在小數點位數後修約的思路過程:

以保留一位小數為例,我們是對保留的位數後的數字進行判斷,當要保留位數上的數字為5時且5前為偶數時,先給這個數字乘以5後修剪,再乘以2,然後再減去該數字乘以10,就對該數字完成了修約。例如:2.65保留一位小數,2.65*5=13.25,然後截取整數部分TRUNC(13.25*2)=26,然後26-26.5取絕對值後為0.5,等於0.5,則為TRUE,TRUE=1,然後獲取正負號,再對這個數進行進位,那麼就為2.7-1/10=2.6.

同理,我們就可以得出其他的要保留的位數的方法,對於上述的情況主要判斷如果保留數字後面為5且5前的數字的奇偶性是十分關鍵的一步,一般是進行構造,對於思維的邏輯性與推理性是一定考驗。

代碼:

各位小夥伴們覺得以上的捨入方法在使用的時候有一定的難度,可以直接使用下同的VBA代碼,這段定碼定義了一個自定義函數cround,大家可以將下面的代碼寫入到VBE中,然後在工作有裡直接輸入函數名稱即可,別忘了保存成xlsm格式。

Function cround(c, d%)' 本代碼實現了按四捨六入五留雙的規則,保留指定位數的有效數字。' 本代碼的思路是將原始數據分為大於或小於1的兩種情況,再分別進行處理。' 小於1的處理代碼結果是完美的,代碼也簡明易懂。' 原始數據大於1的話,先將它除以適宜的倍數,使其剛好小於1,再藉助小於1的處理代碼進行處理。
Dim p As Integercc = CDec(c) '轉換為實數,如無此語句,在引用單元格時會出錯,如:cround(A1/A2,1)If cc < 1 And Abs(cc) < 1 Then  '加了「And Abs(cc) < 1」的判斷,就可以正確處理負數了。    cc1 = Split(cc, ".")(1) '按「.」對字符串進行分割,取第二個字符串,如:0.0035,分割為0和0035,這裡取0035     p = Len(cc1) - Len(cc1 * 1)  'cc*1後轉換為數字,如:0035*1=35,p即為小數點後「0」的個數(非零數字後的零不算)。    cround = VBA.Round(cc, d + p)   '使用VBA中的round函數(即四捨六入五留雙)進行修約Else    cc1 = Split(cc, ".")(0) * 1 '按「.」對字符串進行分割,取第一個字符串,如:10.0035,分割為10和0035,這裡取10    m = Len(cc1) '記錄整數部分的字符長度。    cc2 = cc / (10 ^ m) '將原大於1的原始數據除以倍數值,轉換成剛好小於1的數據,然後用前面小於1的代碼進行處理。    cc3 = Split(cc2, ".")(1) '這裡的代碼實際上同小於1的處理代碼。    p = Len(cc3) - Len(cc3 * 1)    cround = VBA.Round(cc2, d + p) * (10 ^ m) '將結果乘以原來的倍數值,返回原始的數位。End IfEnd Function

註:以上代碼源自網絡,如有不妥,請後臺告知刪除。


相關焦點

  • Excel如何把小數點四捨五入取整?
    在Excel表格中整理數據的時候,為了避免大量的小數點,通常都會採用四捨五入的方式,減少小數點,這樣工作起來也比較方便,還能提高工作效率。Excel如何把小數點四捨五入取整呢?下面一起看下解決的方法。操作步驟如下:方法一:四捨五入函數ROUND函數格式:ROUND(數值或數值單元格,要保留的位數)例:ROUND(20.156,2) 表示對20.156四捨五入,保留2位小數,結果為20.16
  • excel四捨五入函數怎麼用 excel四捨五入函數的使用方法
    首先,選中B1單元格,在B1裡輸入"=round",excel會自動提示四捨五入函數,  雙擊提示出來的ROUND函數,在B1單元格裡就會出現;  然後,單擊A1單元格,輸入逗號,再輸入2(保留兩位小數),  最後,敲回車,即可顯示結果。
  • excel四捨五入函數是什麼?怎樣使用?
    本篇將介紹excel四捨五入函數是什麼?怎樣使用?有興趣的朋友可以了解一下!一、前言excel是我們生活中很常用的表格製作工具,它不僅僅只是用來製作表格,還可以使用來對表格中的數據進行處理(比如:運算、排序等)。excel對數據的處理也是很強大的,為我們提供了很多函數(比如:求和函數、平均數函數等)。
  • EXCEL函數基礎之四捨五入、四捨六入及隨機函數
  • 學習四捨五入最簡單的方法?
    現在,問題是如何做到這一點?閱讀本文,您將了解可能的解決方案。1)使用在線計算器四捨五入數字:我們生活在一個時代,在這個時代,先進的技術使我們的工作變得更加輕鬆。現在,我們可以找到許多足夠聰明的在線工具,可以快速,準確地計算複雜的數學運算。
  • Excel工作表中的「四捨五入」都不掌握,那就真的Out了!
    ,就是根據不同的情況對數值進行取捨,也就是「四捨五入」,相信大家並不陌生,但在Excel工作表中,如果對數值進行「四捨五入」呢?解讀:Int函數的返回結果不遵循「四捨五入」的規則,如果數值為正數,則只返回整數部分,如果為負數,則返回小於當前負數但最接近當前值的負整數。例如=Int(-3.6)的返回結果為-4,而=Int(3.6)的返回結果為3。二、Excel函數:Trunc,根據小數位數返回指定的數值。
  • Excel四捨五入不再出錯
    當我們在使用Excel電子表格製作數據報表時,為了避免大量小數的運算,常常會用到四捨五入的方法,但是這樣做可能會造成數值運算的誤差,而且不容易找到原因。如果對計算出的數值精度要求不高,可以在Excel菜單欄上點擊「格式」 -「單元格」,在「單元格格式」窗口中設置「小數位數」的數字(如圖1),決定保留幾位小數,超過的位數就會被舍掉。
  • Excel工作表中的「四捨五入」都不掌握,還敢稱Excel達人?
    小學數學知識中有一個知識點,就是根據不同的情況對數值進行取捨,也就是「四捨五入」,相信大家並不陌生,但在Excel工作表中,如果對數值進行「四捨五入」呢?一、Excel函數:Int,向下取整。在目標單元格中輸入公式:=TRUNC(F3)、=TRUNC(F6,1)。是否保留小數位數,都不在遵循「四捨五入」的規則,而只提取值。三、Excel函數:Round,四捨五入。
  • 關於Python的四捨五入詳解(確定你真的會四捨五入?)
    2.如何利用Python實現四捨五入。1、round()函數簡介正如菜鳥教程中說到,round() 方法返回浮點數x的四捨五入值。如圖所示,參數x,n均為數值表達式,返回值為x的四捨五入值。n為保留的小數位數,不加n則只保留x四捨五入後的整數部分。
  • excel四捨五入函數怎麼用
    真不知道四捨五入是誰發明的,好像小學就開始學習它了,日常買個菜什麼的老闆也不捨得四捨五入最頭省個2,3毛。到時在發工資時常講究個四捨五入,都被公司給摳了。小數點太多了我們都會使用四捨五入的方法來統一保留幾位小數點,這樣也方便計算,一般都是在最後的總數值上進入處理的,不然數據出入就會變得很大了。EXCEL中四捨五入可以使用ROUND函數,ROUND(Number, Num_Digits)按指定的位子對數值進行四捨五入。
  • 如何按照四捨六入五單雙規則修約數值
    疑難202 在Excel中,如何按照四捨六入五單雙規則修約數值在數學計算中,經常需要按照四捨六入五單雙規則對數值進行修約。如圖 202‑1所示A列數值,如何根據四捨六入五單雙規則將數值修約到指定的小數位數?圖202‑1四捨六入五單雙修約數值→ 解決方案:使用ROUND、TEXT等函數將數值進行四捨六入五單雙修約。
  • Excel表格中的四捨五入函數如何使用呢?
    Excel表格中的四捨五入函數如何使用呢?說到四捨五入相信大家都不陌生,讀書的時候都學過,都知道怎麼用,那麼用Excel表格函數怎麼對數據做四捨五入呢?用哪個函數可以做到四捨五入的結果呢?下面小編就簡單介紹一下Excel表格中的四捨五入函數如何使用,希望能幫到您。
  • 函數四捨五入使用技巧
    在實際工作的數學運算中,特別是財務計算中常常遇到四捨五入的問題。雖然,excel的單元格格式中允許定義小數位數,但是在實際操作中,我們發現,其實數字本身並沒有真正的四捨五入,只是顯示結果似乎四捨五入了。如果採用這種四捨五入方法的話,在財務運算中常常會出現幾分錢的誤差,而這是財務運算不允許的。那是否有簡單可行的方法來進行真正的四捨五入呢?
  • Excel也會「作假」—真正實現四捨五入
    在我們日常的實際工作中,特別是財務計算中常常遇到四捨五入的問題。雖然,Excel的單元格格式中允許定義小數位數,但是在實際操作中我們發現,其實數字本身並沒有真正實現四捨五入。如果採用這種四捨五入的方法,在財務運算中常常會出現誤差,而這是財務運算所不允許的。
  • EXCEL表數值修約4舍6入5單雙函數的一些心得
    工程中的數值修約規則是「4舍6入5看齊,5後有數進上去,尾數為零向左看,左數奇進偶捨棄」。
  • Excel四捨五入保留小數函數ROUND和FIXED
    前面文章介紹了Excel中用函數ROUND實現四捨五入保留小數的方法,詳見Excel取捨函數ROUND《Excel取捨函數ROUND》,本篇來介紹相似功能的函數FIXED。為正數時,對小數點右側四捨五入;為負數時,對小數點左側四捨五入;若省略,則默認其值為 2。【無逗號分隔符】如果為 TRUE,則返回的文本中不顯示逗號;如果為 FALSE 或省略,則返回的文本中顯示逗號。實例如下表中,需要對B2至B7單元格的數值進行取捨計算,公式及對應的結果如下。
  • excel如何快速批量設置讓小數四捨五入變為整數?
    我們在製作excel表格時,有些數據會有小數,有時候我們希望能夠將小數轉為整數,如果通過手工來判斷顯然不是最好的方法,數據多了也容易出錯,那麼如何才能快速設置將小數轉為整數呢?下面就來看看吧。一、打開excel測試表格,表格中左邊數據為小數。
  • Excel:乘積求和和四捨五入函數
    (二)應用舉例在SUM函數的高級應用中,我們講述了多列數乘積之和的計算,如圖6-2-12:6-2-12如果我們使用SUMPRODUCT函數,則我們只需要輸入函數公式:=SUMPRODUCT(A1:A3,C1:C3)如圖:6-2-13
  • 說說Excel中的四捨五入函數
    TRUNC函數截尾當省略第二參數或設置為0時,直接捨去小數部分,返回參數的整數部分。ROUND函數四捨五入當指定參數為0時以四捨五入的方式取整。將TRUNC函數和ROUND函數的第二參數設置為1,可以將數字捨入至1位小數;如果設置為2,會將數字捨入至2位小數,其它正數以此類推。
  • 技巧不求人-147期——Excel小數點取捨的幾種方法
    嗨,大家好,歡迎來到新一期的技巧不求人,上期我們介紹了Excel單元格高亮顯示的2種方法,今天跟大家分享一下,在Excel中快速解決小數點問題。取捨之間,精確掌握,趕緊get吧!技巧不求人-147期Excel小數點取捨的幾種方法1.首先是設置單元格格式,這種做法就是簡單的四捨五入;2.ROUNDDOWN函數,向下取捨,參數寫幾位,小數點直接保留幾位,沒有其他運算規則