多语言展示
当前在线:481今日阅读:176今日分享:34

Excel中四舍六入五成双的最佳函数算法

Excel中四舍六入五成双的修约算法很多,但大多需要进行嵌套两次if函数,或将数字变为字符串进行运算,不便于理解,且编写复杂。本算法仅需一次if函数判断,且逻辑清晰,适用范围广,使用方便。
方法/步骤

公式为:=IF(MOD(ABS(A2*POWER(10,B2)),2)=0.5,ROUNDDOWN(A2,B2),ROUND(A2,B2))其中,单元格A2为原始数据,可以为负值;B2为保留位数,可以为正值、零和负值,如+2表示进位到0.01,-1表示进位到10位,0表示进位到整数位。 END

注意事项
1

当进位后最后一位数为“0”时,由于Excel的格式设置问题,会舍去小数末尾的“0”,目前没有办法解决。例如:1.05保留到1位小数,应该是'1.0',但实际显示为“1”

2

有网友提出个别修约结果有误。经验证,本公式没有问题,有问题的是Excel的bug。经验证,Excel中公式“=MOD(9.825*100,2)-MOD(982.5,2)”居然不等于0(各位感兴趣可以验证下)。目前没有办法解决,需坐等微软修改bug。好在出问题的数据很少,目前知道的仅有9.825和8.825修约到2位小数时,会得到9.83和8.83。

推荐信息