EXCEL自定义函数在水文数据处理中的应用

EXCEL自定义函数在水文数据处理中的应用
EXCEL自定义函数在水文数据处理中的应用

EXCEL自定义函数在水文数据处理中的应用

摘要:在水文工作中,几乎所有的数据都要按照《数值修约规则与极限数值的表示与判定》(GB/T8170-2008)的规定进行“进舍规则”的修约。光靠人工处理,不仅浪费人力,而且还降低了工作效率。本文利用Microsoft Office办公软件绑定的VBA(Visual Basic For Application)语言自定义函数,轻松实现“进舍规则”的修约。

关键词:“进舍规则” 水文数据浮标法VBA

Microsoft Excel办公软件具有很强大的数值运算处理能力,但现有的内置函数并不能满足水文工作中所需要的“进舍规则”修约。如果仅靠人工的计算,则会浪费人力、降低效率;若利用Excel中绑定的VBA(Visual Basic For Application)语言自定义函数就可以轻松实现“进舍规则”的修约。

下面以Excel计算浮标法测流为例,用VBA来解决“进舍规则”的问题。

一、“进舍规则”的修约形式

根据《数值修约规则与极限数值的表示与判定》(GB/T8170-2008)规定,水文资料使用“进舍规则”的修约形式:[1]

1、拟舍弃数字的最左一位数字小于5,则舍去,保留其余各位数字不变。

2、拟舍弃数字的最左一位数字大于5,则进一,即保留数字的末位数字加1。

3、拟舍弃数字的最左一位数字是5,且其后有非0数字时进一,即保留数字的末位数字加1。

4、拟舍弃数字的最左一位数字是5,且其后无数字或皆为0时,若所保留的末位数字为奇数(1,3,5,7,9)则进一,即保留数字的末位数字加1;若保留的末位数字为偶数(0,2,4,6,8)则舍去。

5、负数修约时,先将它的绝对值按照上述1~4规定进行修约,然后在所得值前面加上负号。(以下程序并没有涉及到负数)

二、VBA程序及注解

该程序是以Excel程序内置函数为基础来完成的。定义符合“进舍规则”的函数名为round1(目前能用于浮标法测流量的部分虚流量计算,若要用于其他计算则需修改取值范围),该函数定义a,b,c,d,e,f为整数,并分别赋予为操作数字x的整数、十分位、百分位、千分位、万分位、十万分位及百万分位部分。

相关主题
相关文档
最新文档