Menu

Excel ROUNDUP 与 ROUNDDOWN:向上或向下舍入

=ROUNDUP(A2,0) 总是向远离零的方向舍入,所以 2.1 变成 3;=ROUNDDOWN(A2,0) 总是向零的方向舍入,所以 2.9 变成 2。CEILING 和 FLOOR 向上或向下舍入到倍数,INT 和 TRUNC 去掉小数。

本页的每张表格都是实时的:修改数字或公式,就会重新计算。

=ROUNDUP(A2,0) 总是向远离零的方向舍入,所以 2.1 变成 3。=ROUNDDOWN(A2,0) 总是向零的方向舍入,所以 2.9 变成 2。两者的参数和 ROUND 相同:先是数字,然后是要保留的位数。

ROUNDUP、ROUNDDOWN 与 ROUND 并排对比
B2
ABCD
1ValueROUNDUPROUNDDOWNROUND
22.1322
32.9323
42.5323
5-2.1-3-2-2
6-2.9-3-2-3
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

看第 5 行和第 6 行:ROUNDUP 把 -2.1 变成 -3,因为“向上”指的是远离零,而不是变成更大的数。ROUNDDOWN 把 -2.9 变成 -2。把 A2 改成 2.0001,ROUNDUP 仍然得到 3:保留位之后只要有数,就会进一。

ROUNDUP 与 ROUNDDOWN 语法

=ROUNDUP(number, num_digits)
=ROUNDDOWN(number, num_digits)

num_digits 的用法和 ROUND 完全相同:2 保留两位小数,0 得到整数,-1、-2、-3 分别舍入到十位、百位和千位。

向上和向下舍入到小数位和百位
B2
ABCDE
1num_digitsROUNDUPROUNDDOWNNumber
221234.571234.561234.561
311234.61234.5
4012351234
5-213001200
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

位数为 2 时,ROUNDUP 把 1234.561 变成 1234.57;位数为 -2 时变成 1300。ROUNDDOWN 位数为 -2 时得到 1200。改一下 E2,看看两列如何变化。

除法结果向上取整:需要多少箱、多少辆车、多少页

向上舍入最常见的原因是计数不能有小数。250 件物品,每箱装 24 件,需要 10.4 箱,也就是 11 箱。=ROUNDUP(B2/C2,0) 直接给出这个结果。

每个订单需要的箱数
D2
ABCD
1OrderItemsPer boxBoxes
2A-1012502411
3A-10296244
4A-10397245
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

96 件正好装满 4 箱,再多一件就需要第 5 箱。对于 97 件,ROUND 会给出 4,留下一件没有箱子装。

CEILING 和 FLOOR:舍入到倍数

ROUNDUP 和 ROUNDDOWN 按 10 的幂舍入。要向上或向下舍入到任意数(5、0.25、12、半小时)的倍数,用 CEILING 和 FLOOR:

  • =CEILING(A2,5) 向上舍入到下一个 5 的倍数。
  • =FLOOR(A2,5) 向下舍入到上一个 5 的倍数。
用 CEILING 和 FLOOR 舍入到倍数
C2
ABCD
1ValueMultipleCEILINGFLOOR
21151510
31551515
47.30.257.57.25
526123624
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

本身已经是倍数的值保持不变:15 按 5 的倍数,无论向上还是向下都得到 15。

CEILING.MATH 和 FLOOR.MATH(Excel 2013 及更高版本)效果相同,只有一个区别:倍数是可选的,默认为 1;对于负数,第三个参数决定舍入方向。=CEILING.MATH(-7.5) 得到 -7(向上,朝向零),=CEILING.MATH(-7.5,1,1) 得到 -8(远离零)。在当前版本的 Excel 中,普通的 CEILING 和 FLOOR 用于负数和正倍数时也是这样;在 Excel 2007 中它们会返回 #NUM!。

把时间向上舍入到下一个 15 分钟

时间是一天的几分之几,所以 CEILING 和 FLOOR 也能对时间舍入。把倍数写成时间:TIME(0,15,0) 就是 15 分钟。

按刻钟计费
B2
ABC
1LoggedBilled (up)Paid (down)
21:071:151:00
30:521:000:45
42:302:302:30
50:010:150:00
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

1:07 按 1:15 计费,哪怕只有一分钟,也按整整一刻钟计费。2:30 本来就是倍数,仍是 2:30。时间运算的更多内容请看时间计算。

负数时 INT 与 TRUNC 的区别

两者都会去掉正数的小数:=INT(4.7) 和 =TRUNC(4.7) 都得到 4。遇到负数时就不同了。INT 向下舍入到更小的整数,所以 -4.2 变成 -5。TRUNC 直接截去小数,所以 -4.2 变成 -4,和 ROUNDDOWN 一样。

INT、TRUNC 与 ROUNDDOWN
B4
ABCD
1ValueINTTRUNCROUNDDOWN
24.7444
34.2444
4-4.2-5-4-4
5-4.7-5-4-4
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

TRUNC 也可以指定位数:=TRUNC(A2,2) 保留两位小数并截去其余部分。当你要的是“小于或等于它的整数”时用 INT,例如日期时间值中的整天数;当你要的是“小数点前的数字”时用 TRUNC。

动手试试:托盘数和价格档位

每批货需要的托盘数
D2
ABCD
1ShipmentCartonsPer palletPallets
2S113040
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: 在 D2 中计算 S1 这批货需要多少个托盘:B2 中的箱数除以 C2 中每个托盘的箱数,向上取整为整托盘。

把价格向上舍入到下一个 0.25
C2
ABC
1PriceStepRounded up
23.620.25
点击单元格查看它的公式。修改数字或公式,表格会重新计算。

轮到你了: 在 C2 中把 A2 中的价格向上舍入到 B2 中档位的下一个倍数。

该用哪一个

你想要公式7.32 得到-7.32 得到
向上,1 位小数=ROUNDUP(A2,1)7.4-7.4
向下,1 位小数=ROUNDDOWN(A2,1)7.3-7.3
向上到 0.5 的倍数=CEILING.MATH(A2,0.5)7.5-7
向下到 0.5 的倍数=FLOOR.MATH(A2,0.5)7-7.5
更小的整数=INT(A2)7-8
去掉小数=TRUNC(A2)7-7

要避免的错误:本想“四舍五入到最接近的值”却用了 ROUNDUP。对 3.01 小时用 =ROUNDUP(B2,0) 会按 4 小时计费。如果规则是“最接近”,用 ROUND;如果是“下一个刻钟”,用带档位的 CEILING。

常见问题

Excel 中如何始终向上舍入?

取整数用 =ROUNDUP(A2,0),保留两位小数用 =ROUNDUP(A2,2)。只要保留位之后还有数,就会进一,所以位数为 0 时 2.01 变成 3。

ROUNDUP 和 CEILING 有什么区别?

ROUNDUP 按位数计算:=ROUNDUP(A2,-1) 向上舍入到下一个十位。CEILING 向上舍入到任意数的下一个倍数:=CEILING(A2,5) 向上舍入到下一个 5 的倍数,=CEILING(A2,0.25) 向上舍入到下一个 0.25 的倍数。

Excel 中 INT 和 TRUNC 有什么区别?

对正数结果相同,对负数则不同。=INT(-4.2) 向下舍入到更小的整数 -5,而 =TRUNC(-4.2) 直接截去小数,得到 -4。

Excel 中如何去掉小数而不四舍五入?

用 =TRUNC(A2) 或 =ROUNDDOWN(A2,0):7.99 变成 7。要保留两位小数并截去其余部分,用 =TRUNC(A2,2),于是 7.999 变成 7.99。

Excel 中如何向上舍入到最接近的 5 的倍数?

用 =CEILING(A2,5)(或 =CEILING.MATH(A2,5)):11 变成 15,15 仍是 15。要向下舍入到 5 的倍数,用 =FLOOR(A2,5)。

Coddy 编程语言插图

和 Coddy 一起学编程

开始