建筑工程材料檢測數據的數值修約在excel中的實現(xiàn)_第1頁
已閱讀1頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  建筑工程材料檢測數據的數值修約在excel中的實現(xiàn)</p><p>  【摘 要】excel中沒有提供能符合按GB/T 8170-2008要求數值修約的函數。本文通過excel自帶的子函數進行編寫,實現(xiàn)了按國標GB/T 8170-2008進行修約,經測試,函數能滿足標準要求,具有推廣價值。 </p><p>  【關鍵詞】數值;修約;函數 </p>&l

2、t;p><b>  1、前言 </b></p><p>  Microsoft excel 是微軟公司開發(fā)的辦公軟件microsoft office的重要組件之一。Excel 由于具有強大的數據處理功能,在工程類日常應用非常廣泛。而在技術資料的數據處理當中,經常要對數值進行修約以達到要求的精度。而excel中卻沒有提供專門的數值修約函數,只能對數值按“四舍五入”規(guī)則進行處理,而工程數據

3、處理一般都是對結果按規(guī)范進行數值修約,用人工進行修約,繁瑣而且易出錯。 </p><p>  利用excel強大的數據處理功能,專門編制了能夠在excel中直接對數值進行修約的函數以及在宏中的實現(xiàn)。 </p><p>  2、數值修約的有關規(guī)定 </p><p>  數值修約國家標準規(guī)范GB/T 8170-2008《數值修約規(guī)則與極限數值的表示和判定》對數值修約的進

4、舍規(guī)則如下: </p><p>  1)擬舍棄數字的最左一位數字小于5時,則舍去,即保留的各位數字不變。 </p><p>  2)擬舍棄數字的最左一位數字大于5,或則是5,而且后面的數字并非全部為0時,則進1,即保留的末位數加1。 </p><p>  3)擬舍棄數字的最左一位數字為5,而后面無數字或全部為0時,若所保留的末位數為奇數(1,3,5,7,9)則進1,

5、為偶數(2,4,6,8,0)則舍棄。 </p><p>  4)負數修約時,取絕對值按照上述1~3規(guī)定進行修約,再加上負號 </p><p>  5)0.2單位修約或者0.5單位修約時,分別將擬修約數值X乘以5、乘以2,按指定修約間隔按5X、2X進行修約,所得數值再除以5、除以2。 </p><p>  3、數值修約的邏輯分析及函數設計流程 </p>

6、<p>  從以上修約規(guī)則可以看出,對于正整數修約到1的情況,數值修約規(guī)則與excel提供的Round函數的唯一區(qū)別在于,當擬修約值個位數為偶數而且擬舍棄數字剛好為0.5時,按Round函數修約的個位數有進1,而按GB/T 8170-2008修約規(guī)則進行修約的,個位數沒有進1。按照這種情況,我們只需要挑出這種特殊情況,其它情況都可以按照Round函數進行“四舍五入”。假設需要修約至Y,Y值為修約間隔與單位修約的乘積,如我們通常

7、說的修約至5,即是修約間隔為10,按0.5單位修約。函數運算的框架圖如下, </p><p>  根據上述流程,給出能夠在excel 中實現(xiàn)數值修約的自編函數如下: </p><p>  =IF(AND(MOD(ABS(A1/Y),1)=0.5,MOD(INT(ABS(A1/Y)),2)=0),ROUNDDOWN(A1/Y,0)*Y,ROUND(A1/Y,0)*Y) </p>

8、<p>  A1為待修約數值所在excel的單元格的位置,Y為我們需要修約至的數值。 </p><p>  4、對數值修約自編函數的具體分析 </p><p>  本函數通過把擬修約數A1除以需修約至的數Y簡化成整數修約至1的問題,修約結果再乘以Y以得到正確的修約數值,符合0.2單位修約和0.5單位修約原則的精神。函數具體分析如下: </p><p> 

9、 1)ABS(A1/Y)是對A1/Y進行取絕對值,確保函數在負數的情況下判斷是正確的; </p><p>  2)MOD是除余函數,MOD(a,b),返回a除以b的余數。MOD(ABS(A1/Y),1)=0.5判斷擬舍棄數字是否為Y/2, MOD(INT(ABS (A1/Y)),2)=0判斷擬保留數字是否為偶數; </p><p>  3)AND是并列條件函數,AND(條件1,條件2,……

10、),表示括號內的所有條件都為真時才為真,AND(MOD(ABS(A1/Y), 1)=0.5,MOD(INT(ABS(A1/Y)),2)=0)判斷擬保留數字是否為偶且擬舍棄數字是否為Y/2; </p><p>  4)ROUNDDOWN是向絕對值小的舍去,ROUNDDOWN(A1/Y,0)*Y即是直接舍棄擬舍棄數字; </p><p>  5)ROUND函數是對數字絕對值進行“四舍五入”進行

11、運算,ROUND(A1/Y,0)*Y是按“四舍五入”的原則的擬修約數進行取值; </p><p>  6)IF是條件語句,IF(邏輯條件,條件為真時返回值,條件為假時返回值),本函數的邏輯為判斷擬保留數字為偶數,且擬舍棄數字剛好為Y/2兩個條件都成立時,直接舍棄擬舍棄數字,否則按“四舍五入”進行計算保留。 </p><p>  5、編寫VBA函數 </p><p>

12、  打開模塊代碼編寫窗體。方法為:選擇“工具”菜單下的“宏”,再選擇visual basic編輯器,在visual basic編輯器界面中,選擇“插入”菜單中的“模塊”命令,即出現(xiàn)模塊代碼編輯器,隨后編輯器里輸入如下代碼: </p><p>  Public Function gbxy(a As Double, b As Double) </p><p>  x = Abs(Round(a

13、 / b, 13)) </p><p>  Select Case x - Int(x) </p><p>  Case Is = 0.5 </p><p>  If Int(x) / 2 = Int(Int(x) / 2) Then </p><p>  gbxy = Int(x) * b * a / Abs(a) </p>

14、<p><b>  Else </b></p><p>  gbxy = Round(a / b, 0) * b </p><p><b>  End If </b></p><p>  Case Else </p><p>  gbxy = Round(a / b, 0) * b <

15、;/p><p>  End Select </p><p>  End function </p><p>  輸入完畢后,選擇“文件”菜單中的“關閉并返回到 Microsoft excel”命令,代碼即被保存,函數編寫完成。 </p><p>  這樣,可以和excel自帶的函數一樣使用國標修約gbxy函數了,例如擬修約A1單元格,修約至5,可

16、在某單元格輸入=gbxy(A1,5),修約至0.2,則在單元格輸入=gbxy(A1,0.2),本函數適用于正負數的修約以及0.2和0.5單位修約的情況,完全能夠滿足GB/T 8170-2008數值修約的要求。 </p><p><b>  6、結語 </b></p><p>  經過測試自編函數及自定義VBA函數滿足標準的要求,實現(xiàn)了數字的修約。自編函數雖然代碼比較長

17、,看起來比較煩,用起來相對自定義VBA函數比較不方便,但是把修約至的數Y設置成某單元格如A2,對于擬修約數字較少,特別是Y值非1手工修約比較麻煩的情況下,輔助驗證手工修約非常方便,有助于數據的校核驗證。 </p><p><b>  參考文獻: </b></p><p>  GB/T 8170-2008 《數值修約規(guī)則與極限數值的表示和判定》[S].北京:中國標準出版

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論