聯(lián)系我們contact
電話:027-59760188-801
地址:武漢市東湖高新開發(fā)區(qū)光谷大道120號(hào)現(xiàn)代森林小鎮(zhèn)A座609室
發(fā)布時(shí)間:2019-02-19 瀏覽次數(shù):3660次
數(shù)值修約規(guī)則是指在進(jìn)行具體的數(shù)字運(yùn)算前或計(jì)算出結(jié)果后,通過省略原數(shù)值的最后若干位數(shù)字,調(diào)整保留的末位數(shù)字,使最后所得到的值最接近原數(shù)值的過程。指導(dǎo)數(shù)字修約的具體規(guī)則被稱為數(shù)值修約規(guī)則。
進(jìn)行數(shù)值修約時(shí)應(yīng)首先確定“修約間隔”(修約值的最小數(shù)值單位)和“進(jìn)舍規(guī)則”。一經(jīng)確定,修約值即為“修約間隔”的整數(shù)倍。然后指定表達(dá)方式,即選擇根據(jù)“修約間隔”保留到指定位數(shù)。最后我們需要注意的是應(yīng)該一步到位修約,而不允許連續(xù)修約。
目前廣泛使用的數(shù)值修約規(guī)則主要有四舍五入和四舍六入五成雙。
四舍五入往往是人們習(xí)慣采用的一種數(shù)值修約規(guī)則,其具體使用方法是:在需要保留數(shù)字的位次后一位,逢四及以下就舍,逢五及以上就進(jìn)。Excel這款廣泛使用的軟件在處理數(shù)據(jù)時(shí)默認(rèn)采用的就是四舍五入修約規(guī)則。
當(dāng)然四舍五入修約規(guī)則,逢五就進(jìn),必定會(huì)造成結(jié)果的系統(tǒng)性偏高,誤差偏大。為了避免這樣的狀況出現(xiàn),盡量減小因修約而產(chǎn)生的誤差,在醫(yī)藥工業(yè)等科技領(lǐng)域中,測(cè)定和計(jì)算各種數(shù)值時(shí)就需要用到更為科學(xué)的修約規(guī)則。
《中國(guó)藥典》2015年版四部凡例中明確說明“試驗(yàn)結(jié)果在運(yùn)算過程中,可比規(guī)定的有效數(shù)字多保留一位,而后根據(jù)有效數(shù)字的修約規(guī)則進(jìn)舍至規(guī)定有效位。計(jì)算所得的最后數(shù)值或測(cè)定讀數(shù)值均可按修約規(guī)則進(jìn)舍至規(guī)定的有效位,取此數(shù)值與標(biāo)準(zhǔn)中規(guī)定的限度數(shù)值比較,以判斷是否符合規(guī)定的限度?!边@里的修約規(guī)則遵循中國(guó)國(guó)家標(biāo)準(zhǔn)文件GB/T 8170—2008《數(shù)值修約規(guī)則與極限數(shù)值的表示和判定》,即四舍六入五成雙。
四舍六入五成雙修約規(guī)則與四舍五入修約規(guī)則有些許差異,當(dāng)被修約的數(shù)字小于或等于四時(shí),就直接舍去;當(dāng)被修約的數(shù)字大于或等于六時(shí),則向前進(jìn)一位;當(dāng)被修約的數(shù)字等于五時(shí),需要看五前面的數(shù)字,如果是偶數(shù)就將五舍去,如果是奇數(shù)則進(jìn)一位,即修約后末尾數(shù)都為偶數(shù),而當(dāng)五的后面還有不為零的任何數(shù)時(shí),則無論五的前面是奇數(shù)還是偶數(shù),均應(yīng)進(jìn)位。由此可見,四舍六入五成雙與四舍五入只是在被修約的數(shù)字等于五,且其前面是偶數(shù)時(shí)修約方式不一致,在其它情況下修約方式均完全一致。
所以當(dāng)Excel這款通用軟件應(yīng)用于醫(yī)藥工業(yè)中時(shí),其自身的四舍五入修約規(guī)則與中國(guó)藥典中所規(guī)定的四舍六入五成雙修約規(guī)則有所出入,不能完全符合中國(guó)藥典的要求。
那么制藥企業(yè)如何讓Excel在日常使用中實(shí)現(xiàn)四舍六入五成雙修約規(guī)則呢?
我們知道在Excel中可以運(yùn)用ROUND函數(shù)按指定的位數(shù)對(duì)數(shù)值進(jìn)行四舍五入,ROUNDDOWN函數(shù)按指定的位數(shù)向下舍入數(shù)字,ROUNDUP函數(shù)按指定的位數(shù)向上舍入數(shù)字。
因此可以通過將其與IF等函數(shù)進(jìn)行嵌套實(shí)現(xiàn)四舍六入五成雙的函數(shù)算法,一個(gè)較為簡(jiǎn)潔的公式是:=IF(MOD(ABS(X*POWER(10, Y)),2)=0.5,ROUNDDOWN(X,Y),ROUND(X,Y))。其中,X為待修約的原始數(shù)值;Y為保留位數(shù),可以為正值、零和負(fù)值,如+1表示進(jìn)位到0.1,-2表示進(jìn)位到100位,0表示進(jìn)位到整數(shù)位。
下面進(jìn)行解釋,POWER(10,Y)函數(shù)表示進(jìn)行10的Y次方乘冪運(yùn)算,ABS函數(shù)返回給定數(shù)值(乘冪運(yùn)算結(jié)果)的絕對(duì)值,MOD函數(shù)返回兩數(shù)(上述絕對(duì)值與2)相除的余數(shù),如果余數(shù)是0.5(說明被修約數(shù)值的尾數(shù)等于五,且其前面的數(shù)是偶數(shù))則返回ROUNDDOWN(X,Y),即將待修約數(shù)值X按Y保留位數(shù)向下舍入;如果余數(shù)不是0.5則返回ROUND(X,Y),即將待修約數(shù)值X按Y保留位數(shù)進(jìn)行四舍五入。
以一組實(shí)際數(shù)據(jù)為例,需要計(jì)算樣品兩次pH值測(cè)定結(jié)果的平均值,保留兩位小數(shù),直接運(yùn)用AVERAGE函數(shù)即可,Excel默認(rèn)的四舍五入修約規(guī)則得到的結(jié)果如下圖所示:
而套用上述四舍六入五成雙函數(shù)公式,以E3單元格為例,將X替換為AVERAGE(C3:D3),將Y替換為2,其它單元格以此類推,得到四舍六入五成雙修約結(jié)果如下圖所示:
我們發(fā)現(xiàn)兩張圖中E4單元格計(jì)算結(jié)果不一樣,因?yàn)?.56和5.57的平均值5.565取兩位小數(shù)如按四舍五入修約得5.57,而依四舍六入五成雙修約得5.56。
當(dāng)然我們也發(fā)現(xiàn)計(jì)算公式大為增長(zhǎng)了,這還只是一個(gè)求平均值的簡(jiǎn)單計(jì)算,如果是其它更為復(fù)雜的計(jì)算,上述公式中的X還需要進(jìn)行更多的嵌套。那么除函數(shù)方法外,還有沒有其它更加簡(jiǎn)潔的方法實(shí)現(xiàn)四舍六入五成雙修約呢?
答案是肯定有的,一種常見的利用VBA編寫自定義函數(shù)的方式:
Function TranValue(rng As Double, number As Integer) As Double
TranValue = Round(rng, number)
End Function
函數(shù)編寫完,就可以在Excel工作表中引用TranValue(X,Y)該函數(shù)。其中,X為待修約的原始數(shù)值;Y為保留位數(shù)。
輸入一組數(shù)據(jù),以E3單元格為例,X為AVERAGE(C3:D3),Y為2,其它單元格以此類推,得到四舍六入五成雙修約結(jié)果如下圖所示:
仔細(xì)觀察,E3單元格計(jì)算結(jié)果0.545按四舍六入五成雙修約應(yīng)為0.54,為什么是0.55呢?但E5單元格計(jì)算結(jié)果0.565修約為0.56又是正確的,這又是什么原因呢?
不難看出,Excel中這種常見的運(yùn)用宏命令實(shí)現(xiàn)四舍六入五成雙修約的方法是存在缺陷的。因?yàn)橛?jì)算機(jī)是基于二進(jìn)制的,我們需要在代碼中增加一個(gè)CDec轉(zhuǎn)換函數(shù),將雙精度浮點(diǎn)型數(shù)據(jù)轉(zhuǎn)換為十進(jìn)制型,修改后的VBA代碼如下圖所示:
這樣在輸入同樣的數(shù)據(jù)后,四舍六入五成雙修約結(jié)果才完全正確,如下圖所示:
小編此番講解希望對(duì)制藥同仁們有所啟示與幫助,畢竟數(shù)據(jù)修約不當(dāng)會(huì)影響到產(chǎn)品質(zhì)量數(shù)據(jù)與極限數(shù)值的判定。
利用Excel能為提高工作效率帶來立竿見影的效果,投入成本低,適應(yīng)性強(qiáng)。實(shí)驗(yàn)室的信息化與自動(dòng)化可以從Excel開始。eInfotree軟件能彌補(bǔ)Excel在GxP領(lǐng)域合規(guī)性上的差距,實(shí)現(xiàn)Excel的用戶訪問控制,審計(jì)追蹤,電子簽名,完全符合CFR21 Part11的要求,讓制藥企業(yè)無顧慮地享用電子表格帶來的便利。