金 兵,龔建新,阿爾曼·巴哈提,谷 鑫
(1. 新疆烏魯木齊水文水資源勘測局,烏魯木齊830000; 2. 河海大學(xué) 水利水電學(xué)院,南京210000)
工程水文計(jì)算中常涉及到一些特殊的計(jì)算方法,如時(shí)段洪量的加權(quán)計(jì)算、數(shù)據(jù)的四舍六入等,Microsoft 公司研發(fā)的集成軟件Office 包括8個(gè)常用組件,其組件之一Excel 電子表格軟件中的Right、Mod、Round 、SUMPRODUCT 等函數(shù)可以很好地解決水文計(jì)算中所遇到的問題。從統(tǒng)計(jì)學(xué)的角度,“四舍六入”比“四舍五入”要科學(xué),它使舍入后的結(jié)果有的變大,有的變小,更平均,而不是像“四舍五入”那樣逢五就入,導(dǎo)致結(jié)果系統(tǒng)偏向大數(shù)。
定義:判斷真假值執(zhí)行函數(shù),根據(jù)邏輯計(jì)算的真假值,等于不同的結(jié)果。語法: F( logical,Value1,Value2) 。參數(shù):Logical 表示計(jì)算結(jié)果為TRUE 或FALSE 的任意值或表達(dá)式。
定義:根據(jù)所指定的字符數(shù)返回文本字符串中最后一個(gè)或多個(gè)字符,即取從text 右邊開始的chars個(gè)字符。語法:RIGHT( text,chars) ;參數(shù):Text 是包含要提取字符的文本字符串;chars 是指希望RIGHT 提取的字符數(shù)。
定義: 將數(shù)字向下舍入到最接近的整數(shù),即≤number 的最大整數(shù)。語法:INT( number) ; 參數(shù): Number 需要進(jìn)行向下舍入取整的實(shí)數(shù)。
定義: mod 函數(shù)是一個(gè)求余函數(shù)。結(jié)果的正負(fù)號與除數(shù)相同。語法:MOD( Exp1,Exp2) ; 參數(shù): Exp1 為被除數(shù); Exp2為除數(shù)。
定義:等于某個(gè)數(shù)字按指定位數(shù)取整后的數(shù)字。語法:ROUND( num,digits) ;參數(shù): Num 需要進(jìn)行四舍五入的數(shù)字;digits 指定的位數(shù),按此位數(shù)進(jìn)行四舍五入。
定義:在給定的幾組數(shù)組中,將數(shù)組間對應(yīng)的元素相乘,并等于乘積之和。語法: SUMPRODUCT( aa1,aa2,aa3,...) 。aa1,aa2,aa3,... 為2 到30個(gè)數(shù)組,其相應(yīng)元素需要進(jìn)行相乘并求和。
自定義函數(shù):Excel 函數(shù)通過使用參數(shù)來按特定順序執(zhí)行計(jì)算的方法,自定義函數(shù)完全可以實(shí)現(xiàn)和Excel 函數(shù)相同的功能,并符合Excel 函數(shù)的使用規(guī)則。四舍六入函數(shù)源程序如下:
四舍六入依據(jù)《數(shù)值修約規(guī)則》、《水文資料整編規(guī)范》,規(guī)范中對有效位數(shù)、指定數(shù)位、進(jìn)舍規(guī)則進(jìn)行了定義。
指定數(shù)位:1) 指定修約間隔為10-n( n 為正整數(shù)) ,或指明將數(shù)值修約到n 位小數(shù);2) 指定修約間隔為1,或指明將數(shù)值修約到個(gè)數(shù)位;3) 指定修約間隔為10n,或指明將數(shù)值修約到10n數(shù)位( n 為正整數(shù)) ,或指明將數(shù)值修約到“十”、“百”、“千”……數(shù)位。
進(jìn)舍規(guī)則:1) 擬舍棄數(shù)字的最左一位數(shù)字<5 時(shí),則舍去,即保留的各位數(shù)字不變;2) 擬舍棄數(shù)字的最左一位數(shù)字>5,或者是5,而其后跟有并非全部為0 的數(shù)字時(shí),則進(jìn)一,即保留的末位數(shù)字加1;3) 擬舍棄數(shù)字的最左一位數(shù)字為5,而右面無數(shù)字或皆為0 時(shí),若所保留的末位數(shù)字為奇數(shù)(1,3,5,7,9) 則進(jìn)一,為偶數(shù)(2,4,6,8,0) 則舍棄。
依據(jù)上述原則在單元格B2 欄輸入公式:
=IF( B2 =0,0,IF( RIGHT( B2* 10^( mm +2) ,2) ="50",IF( MOD( INT( B2* 10^mm) ,2) =0,INT( B2* 10^mm) /10^mm,INT( B2* 10^mm) +1) /10^mm,round( B2,mm) ) )
公式中:mm 為小數(shù)位數(shù),取1 位小數(shù),mm =1,則看小數(shù)點(diǎn)后3 位,即執(zhí)行B2* 10^( mm +2) 語句;取2 位小數(shù),mm =2,則看小數(shù)點(diǎn)后4 位;取整數(shù)mm=0,則要看小數(shù)點(diǎn)后2 位。
如函數(shù)RIGHT 根據(jù)所指定的字符數(shù)等于50,即RIGHT( B2* 10^( mm +2) ,2) ="50",用函數(shù)MOD( INT( B2* 10^mm) ,2) 判斷欲保留的末位數(shù)字為奇數(shù)(1,3,5,7,9) 則進(jìn)一,即執(zhí)行INT( B2* 10^mm) +1) /10^mm 語句。為偶數(shù)(2,4,6,8,0) 則舍棄,即執(zhí)行INT( B2* 10^mm) /10^mm 語句。
如函數(shù)RIGHT 根據(jù)所指定的字符數(shù)<50 或>50,則用round( B2,mm) 函數(shù)按四舍五入處理。四舍六入計(jì)算表見表1。
表1 數(shù)據(jù)四舍六入計(jì)算表
SUMPRODUCT 函數(shù)可以解決時(shí)段洪量的計(jì)算問題,表2為英雄橋水文站2010年7月16 ~17日瞬時(shí)流量過程,日平均流量采用加權(quán)公式計(jì)算。在單元格D16 欄輸入公式=SUMPRODUCT( D2:D15,E2: E15) /48* 8.64,表示D、E 兩個(gè)數(shù)組的所有元素對應(yīng)相乘,然后把乘積相加,即( 36.2* 3 +37.4* 4 +… + 85.3* 8 + 79.4* 4) /48* 8.64 =940.9 ×104m3,就以瞬時(shí)流量過程計(jì)算得到一日洪量。在單元格E16欄輸入上述四舍六入公式,即=sslr( D16) ,可得到數(shù)據(jù)處理后的成果。英雄橋水文站時(shí)段洪量計(jì)算表見表2。
表2 英雄橋水文站時(shí)段洪量計(jì)算表
過來許多從事水文工作的人員在解決水文數(shù)據(jù)處理問題時(shí),都是具體問題具體編程解決,缺乏可移植性,重復(fù)工作量大,可操作性差。本文運(yùn)用了集成軟件Office 組件之一的Execl 幾個(gè)常用函數(shù)進(jìn)行處理,通過大量數(shù)據(jù)試算,并考慮到了各種不同類型的數(shù)據(jù),沒有發(fā)現(xiàn)明顯的問題。當(dāng)然,水平有限,而且只是筆者的一點(diǎn)經(jīng)驗(yàn)之談,旨在拋磚引玉,但愿能讓廣大水文專業(yè)技術(shù)人員從中得到啟發(fā),掌握更多的Execl 函數(shù)應(yīng)用到水文數(shù)據(jù)處理上來。
[1]河海大學(xué),武漢大學(xué).工程水文學(xué)[M]. 北京: 中國水利水電出版社,2000:117 -119.
[2]南京大學(xué),中山大學(xué).普通水文學(xué)[M]. 北京:人民教育出版社,1978:79 -166.
[3]東方人華. Office2000 中文版入門與提高[M]. 北京: 清華大學(xué)出版社,1999.
[4]長江流域辦水文處. 水文計(jì)算圖表[Z].1980:1 -30.
[5]GB 8170—87 數(shù)值修約規(guī)則[S]. 北京:中國標(biāo)準(zhǔn)出版社,1988.
[6]SL 247—1999 水文資料整編規(guī)范[S]. 北京: 中國水利水電出版社,2001.