Excel表中如何實現「四捨六入,逢五奇進偶舍」

2022-03-01 19:36:56 字數 1943 閱讀 3955

摘要:excel表是計量方面公式計算中的的常用軟體,為解決「四捨六入,逢五奇進偶舍」的問題特編制函式swl(x, y) 加入其中,為以後的計算提供基礎依據。

關鍵詞:excel表;奇進偶舍;swl函式;方法

在計量部門,對計量器具檢定完畢,在後續資料計算的過程中,對 「四捨五入」的問題要求嚴格,為盡量把測量誤差做到最小,往往要求遵循「四捨六入,逢五奇進偶舍」原則,在手工計算的時候我們可以人工操作,進去取與舍的判斷,隨著計算機的不斷普及及計算機人員熟悉的運用,很多計量部門都利用excel電子**軟體編制了相應的計量公式計算軟體,用excel來處理資料中只有「四捨五入」的函式(round)命令,對數值進行「四捨六入,逢五奇進偶舍」時,大眾化的excel卻沒有提供乙個滿足此要求的現成的函式,這在很大程度上限制了人們對excel的運用。如何解決此類問題,成了很多部門的乙個現實難題。

如何解決呢?為了徹底解決此問題,我們首先按進製要求進行分析:根據國標要求數值的修約,採用「四捨六入」法(gb 8170-87/gb1-81手冊p94 ):

「4舍6入5看齊,5後有數進上去,尾數為零向左看,左數奇進偶捨棄」(5後全為零奇進偶不進)。所謂「四捨六入」,既所要的最後一位數字後的那個數字,如果是4就捨去、是6就進製。所謂「逢五奇進偶舍」,既最後一位數字後的那個數字,如果是5時就進行繼續判斷,若5後面不是0,那就進製;若是0則看前一位數字,若是奇數則進製,否則捨去。

經過以上分析,我們可以總結為:能夠進製的情況就是兩種。一種是:

到需要取捨位置的時候,先看後面的2位數字,如果大於51,則進製。第二種是:需要取捨位置的最後一位是奇數、並且後面的一位是數字5。

經過如此總結,我們可以得出:所有需要進製的數字,只要在需要取捨位置的最後加上49就可以了,最後需要的有效位數為奇數時,在需要取捨位置的最後加上50也可以了。

有了這些基礎就可以進行程式設計了,我把函式名稱定為:swl (x, y),x:需要奇進偶舍的數,y:保留的有效位數。具體編寫如下:

if int(x * 10 ^ y) / 2 = int(x * 10 ^ y / 2) then 『判斷需要保留的最後一位的奇偶

p = 0.49是偶數時需要加的數

else

p = 0.5是奇數時需要加的數

end if

swl = int(x * 10 ^ y + p) / 10 ^ y函式計算公式

有了如上程式,我們只要加入到excel中就可以隨時運用了。具體加入方法:

1.首先開啟excel,選擇選單「工具→巨集→visual basic編輯器」命令(或按下鍵盤alt+f11組合鍵),開啟visual basic視窗。

2. 進入visual basic視窗後,選擇選單「插入→模組」命令,於是得到「模組1」,按命令格式輸入。在第一行輸入:

function swl (x, y) as double,然後輸入以上內容,在最後一行輸入end function即可。

3. 函式自定義完成後,選擇選單「檔案→關閉並返回到microsoft excel」命令,返回到excel工作表視窗。swl(四捨六入)函式與exce自帶的round(四捨五入)函式使用方法完全一樣。

當結果數保留到小數字時,y為大於0的任何整數;當結果數保留到個位時,y為0;當結果數保留到十位、百位時,y為-1、-2。

4.通常自定義的函式只能在當前工作薄使用,如果該函式需要在其它工作薄中使用,則選擇選單「檔案→另存為」命令,開啟「另存為」對話方塊,選擇儲存型別為「mir-cosoft excel載入巨集」,然後輸入乙個檔名,如「swl」單擊「儲存」後檔案就被儲存為載入巨集。然後選擇選單「工具→載入巨集」命令,開啟「載入巨集」對話方塊,勾選「可用載入巨集」列表框中的「swl」核取方塊即可,單擊「確定」按鈕後,就可以在本機上的所有工作薄中使用swl這個自定義函式了。

5.如果想要在其它機器上使用該自定義函式,只要把上面的載入巨集檔案複製到其它電腦上載入巨集的預設儲存位置即可。

本函式可以在excel表中隨意運用,經過本人長時間在計量加油機軟體計算中的應用,完全滿足要求,沒有一點差錯。數字大了或位數多了也不會出現任何問題。

EXCEL中如何實現兩個工作表中兩列資料的比較

有兩個工作表,a和b a中有人數7000左右 內容為姓名金額 b中有人數1000人左右 內容同a表 ab兩表中金額一致,現在我想生成新錶c,要求c表中的姓名金額是a表中扣除b表以外的姓名金額求助!用vlookup函式,在a中查詢b,查不到的那部分就是c咯,篩選一下就可以了。這樣還比較簡單。能把函式列...

如何提取多個excel工作表中相同位置的單元格資料

如何提取多個excel工作表中相同位置的單元格資料,然後列成一列?有乙個excel檔案,裡面有一百多個工作表,從sheet1到sheet100這樣,現在需要把每個sheet裡面的a3資料提取出來,組成新的一列,又把所有的d5資料組成新的一列,以此類推,不好意思,積分只有3分,無法懸賞了,請確定工作表...

如何取出excel中的工作表名和工作薄名

1 如果 kl.xls sheet1 a3 b8在a1 工作簿名 mid a1,find a1 1,find a1 find a1 1 工作表名 mid a1,find a1 1,find a1 find a1 1 2 如果沒有可以輸入沒有可以把a1換成cell filename 工作薄名 mid ...