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 函数转换为长整型数据