问题解答 资料下载 政策法规 行业动态 通知公告 新闻动态 检测业务 企业文化 公司信息 网站首页
建筑工程材料检测数据的数值修约在excel中的实现
作者:    发布于:2017/6/19 17:08:33    文字:【】 【】 【

  Microsoft excel 是微软公司开发的办公软件microsoft office的重要组件之一。Excel 由于具有强大的数据处理功能,在工程类日常应用非常广泛。而在技术资料的数据处理当中,经常要对数值进行修约以达到要求的精度。而excel中却没有提供专门的数值修约函数,只能对数值按四舍五入规则进行处理,而工程数据处理一般都是对结果按规范进行数值修约,用人工进行修约,繁琐而且易出错。 
  利用excel强大的数据处理功能,专门编制了能够在excel中直接对数值进行修约的函数以及在宏中的实现。 

  数值修约国家标准规范GB/T 8170-2008《数值修约规则与极限数值的表示和判定》对数值修约的进舍规则如下: 
  1)拟舍弃数字的最左一位数字小于5时,则舍去,即保留的各位数字不变。 
  2)拟舍弃数字的最左一位数字大于5,或则是5,而且后面的数字并非全部为0时,则进1,即保留的末位数加1 
  3)拟舍弃数字的最左一位数字为5,而后面无数字或全部为0时,若所保留的末位数为奇数(13579)则进1,为偶数(24680)则舍弃。 
  4)负数修约时,取绝对值按照上述13规定进行修约,再加上负号 
  50.2单位修约或者0.5单位修约时,分别将拟修约数值X乘以5、乘以2,按指定修约间隔按5X2X进行修约,所得数值再除以5、除以2 
  
  从以上修约规则可以看出,对于正整数修约到1的情况,数值修约规则与excel提供的Round函数的唯一区别在于,当拟修约值个位数为偶数而且拟舍弃数字刚好为0.5时,按Round函数修约的个位数有进1,而按GB/T 8170-2008修约规则进行修约的,个位数没有进1。按照这种情况,我们只需要挑出这种特殊情况,其它情况都可以按照Round函数进行四舍五入。假设需要修约至YY值为修约间隔与单位修约的乘积,如我们通常说的修约至5,即是修约间隔为10,按0.5单位修约。函数运算的框架图如下, 
  根据上述流程,给出能够在excel 中实现数值修约的自编函数如下: 
  =IFANDMODABSA1/Y),1=0.5MODINTABSA1/Y)),2=0),ROUNDDOWNA1/Y0*YROUNDA1/Y0*Y 
  A1为待修约数值所在excel的单元格的位置,Y为我们需要修约至的数值。 
  
  本函数通过把拟修约数A1除以需修约至的数Y简化成整数修约至1的问题,修约结果再乘以Y以得到正确的修约数值,符合0.2单位修约和0.5单位修约原则的精神。函数具体分析如下: 
  1ABSA1/Y)是对A1/Y进行取绝对值,确保函数在负数的情况下判断是正确的; 
  2MOD是除余函数,MODab),返回a除以b的余数。MODABSA1/Y),1=0.5判断拟舍弃数字是否为Y/2 MODINTABS A1/Y)),2=0判断拟保留数字是否为偶数; 
  3AND是并列条件函数,AND(条件1,条件2……),表示括号内的所有条件都为真时才为真,ANDMODABSA1/Y), 1=0.5MODINTABSA1/Y)),2=0)判断拟保留数字是否为偶且拟舍弃数字是否为Y/2 
  4ROUNDDOWN是向绝对值小的舍去,ROUNDDOWNA1/Y0*Y即是直接舍弃拟舍弃数字; 
  5ROUND函数是对数字绝对值进行四舍五入进行运算,ROUNDA1/Y0*Y是按四舍五入的原则的拟修约数进行取值; 
  6IF是条件语句,IF(逻辑条件,条件为真时返回值,条件为假时返回值),本函数的逻辑为判断拟保留数字为偶数,且拟舍弃数字刚好为Y/2两个条件都成立时,直接舍弃拟舍弃数字,否则按四舍五入进行计算保留。 
  编写VBA函数 
  打开模块代码编写窗体。方法为:选择工具菜单下的,再选择visual basic编辑器,在visual basic编辑器界面中,选择插入菜单中的模块命令,即出现模块代码编辑器,随后编辑器里输入如下代码: 
  Public Function gbxya As Double b As Double 
  x = AbsRounda / b 13)) 
  Select Case x - Intx 
  Case Is = 0.5 
  If Intx / 2 = IntIntx / 2 Then 
  gbxy = Intx * b * a / Absa 
  Else 
  gbxy = Rounda / b 0 * b 
  End If 
  Case Else 
  gbxy = Rounda / b 0 * b 
  End Select 
  End function 
  输入完毕后,选择文件菜单中的关闭并返回到 Microsoft excel”命令,代码即被保存,函数编写完成。 
  这样,可以和excel自带的函数一样使用国标修约gbxy函数了,例如拟修约A1单元格,修约至5,可在某单元格输入=gbxyA15),修约至0.2,则在单元格输入=gbxyA10.2),本函数适用于正负数的修约以及0.20.5单位修约的情况,完全能够满足GB/T 8170-2008数值修约的要求。 

警警 广西网警虚拟岗亭 请用IE8浏览器浏览网站
版权所有:南宁市建测建设工程质量检测有限公司        分辨率1024*768为最佳浏览效果
地址:广西南宁市江南区迎凯路10号综合楼1号楼      电话:0771-5501616            备案号:桂ICP备15001324号
广西网警虚拟岗亭 警警