EXCEL的水文数据四舍六入修约

1、EXCEL数据的单元格四舍六入(不启用VBA宏)

保留三位小数的四舍六入,在单元格内输入或拷贝:
=TEXT(IF(ISEVEN(TRUNC(E510^ 3)),IF(ROUND(E510^ 3-TRUNC(E5*10^3),3)>0.5,ROUNDUP(E5,3),ROUNDDOWN(E5,3)),ROUND(E5,3)),“0.000”)
保留三位小数,按乘1000取整判断是否偶数。

保留二位小数的四舍六入,在单元格内输入或拷贝:
TEXT(IF(ISEVEN(TRUNC(E510^ 2)),IF(ROUND(E510^ 2-TRUNC(E5*10^2),2)>0.5,ROUNDUP(E5,2),ROUNDDOWN(E5,2)),ROUND(E5,2)),“0.00”)
保留二位小数,按乘100取整判断是否偶数。

保留一位小数的四舍六入,在单元格内输入或拷贝:
TEXT(IF(ISEVEN(TRUNC(E510)),IF(ROUND(E510-TRUNC(E5*10),1)>0.5,ROUNDUP(E5,1),ROUNDDOWN(E5,1)),ROUND(E5,1)),“0.0”)
保留一位小数,按乘10取整判断是否偶数。

说明:ISEVEN 函数判断是否偶数,
TRUNC 函数截取整数,
ROUND 函数四舍五入,
ROUNDUP 函数向上舍入,有数就入,
ROUNDDOWN 函数向下舍入,有数全舍,
TEXT 函数按指定格式显示在单元格。
通过判断要保留的位数是否偶数,再截取要保留位数后的数是否在0.5以上,是则入,否则舍,其它的进行四舍五入。

2、EXCEL数据的VBA宏四舍六入(需启用VBA宏)

在EXCEL选项中常用中勾选显示开发工具,在开发工具菜单下点Visual Basic,插入模块,拷贝以下代码:
'自编VBA四舍六入函数,也适合VB
Function Round46(InputValue As Double, Optional ByVal n As Integer = 3) As Double

'Optional ByVal n As Integer = 3 默认为保留三位小数
Dim tmpValue As Double, tmpLong As Long’声明变量
InputValue=round(InputValue,n+3)'输入值进行浮点数预处理
tmpValue = InputValue * 10 ^ n
tmpLong = CLng(Val(tmpValue)) '转换为长整数进行修约
Round46 = tmpLong / (10 ^ n)

End Function

回到单元格输入公式,A1为要四舍六入的单元格,
保留三位小数单元格输入公式如下:
=TEXT(round46(A1),“0.000”) 'A1后不数参数,默认为保留三位小数。

保留二位小数单元格输入公式如下:
=TEXT(round46(A1,2),“0.00”) 'A1后输入2,保留二位小数,以此类推。

保留百位整数单元格输入公式如下:
=round46(A1,-2) 'A1后输入-2,保留百位整数,以此类推。
如12345舍入后为12300,12250舍入后为12300。

说明:Function 函数声明
Double 双精度浮点型
Integer 整数 / 整型
CLng 函数转换为长整型数据

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中游鱼

获取完整源代码,提高工作效率

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值