ARTICLE · 1014357
取整函数不只是能取整——MyExcel里的“三舍四入”业务规则
算奖金的时候,小数点后的数字直接抹掉;算运费续重的时候,超重一点点就要按下一档收费。这些“去尾法”和“进一法”,做企业管理的都熟悉。
但还有一些更特殊的规则,比如“三舍四入”。
举个例子:一种原料的需求量是1245件,采购时按不同规则处理:
去尾法:去掉百位后的尾数,即1200件 进一法:自动进位到百位,即1300件 三舍四入:要求1245件按“三舍四入”到百位,即1300件
(背景是:有些企业约定“采购量浮动在3%以内可以接受”,系统需要自动按约定调整采购数量。)
在Excel里,用ROUNDUP和ROUNDDOWN就能搞定。但在Myexcel里,如果不用Excel原生函数,该怎么实现?
答案是:用Myexcel自带的取整函数,通过“数值偏移法”来实现。
一、公式揭秘
先看配置方案:

运行结果:

结果和Excel原生函数完全一致。下面拆解原理。
二、核心原理:什么是“数值偏移法”?
Myexcel的取整函数,底层逻辑是“截断”——直接砍掉小数,不做四舍五入。要实现四舍五入或进一,需要加上一个偏移量,人为移动“进位触发线”。
通用公式模板:
取整( (需求量 + 偏移量) ÷ 100 ) × 100
为什么除以100再乘以100?因为要保留到百位。除以100后,百位变成了个位,就可以用取整函数处理了。
1. 去尾法(直接砍掉百位后的尾数)
公式:取整( 需求量 ÷ 100 ) × 100
原理:不加偏移量,直接除以100后取整,再乘回去。
测试1245:取整(12.45) × 100 = 12 × 100 = 1200
2. 四舍五入(标准规则)
公式:取整( (需求量 + 50) ÷ 100 ) × 100
原理:加上50(缩放比例100的一半)。1245的尾数是45,45+50=95,没到100,不进位。如果是1250,1250+50=1300,除以100后刚好13.0,成功进位。
测试1250:取整(13.0) × 100 = 1300
3. 三舍四入(最特殊的规则)
公式:取整( (需求量 + 60.99) ÷ 100 ) × 100
原理:标准四舍五入加的是50(代表0.5)。门槛降到40(代表0.4),就需要加100-40=60。
为什么加60.99而不是60?为了防浮点数精度丢失。如果只加60,当需求量刚好是1240时,(1240+60)/100 = 13.00,在计算机运算中可能因精度误差变成12.9999999,取整后变成12(结果1200),这就出Bug了。加.99是为了确保稳稳跨过整数门槛。
测试1240:取整(13.0099) × 100 = 13 × 100 = 1300
测试1235:取整(12.9599) × 100 = 12 × 100 = 1200
4. 进一法(只要有零头就进位)
公式:取整( (需求量 + 99.99) ÷ 100 ) × 100
原理:进一法意味着只要尾数大于0就进位。偏移量要无限接近100但不能等于100,否则整数会被多进一位。加99.99后,只要原数有小数都会超过100触发进位;如果是整数1200,1200+99.99=1299.99,取整后依然是12,不会错误进位。
测试1200.1:取整(13.0009) × 100 = 13 × 100 = 1300
三、扩展应用:一通百通
掌握了“数值偏移法”,无论业务部门提出什么舍入规则,都能应对:
取整( (需求量+70.99) ÷ 100 ) × 100 | ||
取整( (需求量+40.99) ÷ 100 ) × 100 | ||
取整( (需求量+500) ÷ 1000 ) × 1000 |
四、总结
在Myexcel里,通过“数学运算+基础取整函数”的组合,可以实现企业级的高级舍入逻辑。
核心思路就一句话:通过加减偏移量,来移动计算机默认的进位触发线。
你遇到过什么奇怪的取整规则?欢迎留言说说,我可以在后续的内容里继续拆解。
关注「MyExcel实战 零代码管理系统」,每周更新企业管理 + 数据库思维的实战案例,带你真正把Myexcel做成管理系统。