昨天遇到一位同学问如下问题
如下图所示:
- 当A列数据为整数时,该数乘2
- 当数据为小数时,小数部分小于等于0.5,则该数乘2加1,小数部分大于0.5时,该数乘2加2
最初写的答案是用IF函数
=IF(INT(A2)=A2,A2*2,IF(A2-INT(A2)<=0.5,INT(A2)*2+1,IF(A2-INT(A2)>0.5,INT(A2)*2+2)))
马上有同学提出来了,最后一个If是多余的,没有任何意义,因为当小数部分不小于等于0.5,那么必然会大于0.5,因此
=IF(INT(A2)=A2,A2*2,IF(A2-INT(A2)<=0.5,INT(A2)*2+1,INT(A2)*2+2))
好象是大功告成,其实….看了下面的公式,你会如何感想:
=CEILING(A2,0.5)*2
这么牛叉的函数,不学怎么行。下面就来学习一下
Ceiling函数
=ceiling(number,significance)
返回将参数 number 向上舍入(沿绝对值增大的方向)为最接近的指定基数的倍数。它有两个参数,第一参数为需要舍入的数值,第二参数为一个倍数关系。例如:
=CEILING(2.5,1) 数值2.5对于1来说,向上最接近的1的倍数,就是3,因此函数结果为3
- 如果任何一个参数是非数值型,则 CEILING 返回 #VALUE! 错误值。
- 不论参数 number 的符号如何,数值都是沿绝对值增大的方向向上舍入。 如果 number 正好是 significance 的倍数,则不进行舍入。
- 如果 number 和 significance 都为负,则对值按远离 0 的方向进行向下舍入。
- 如果 number 为负,significance 为正,则对值按朝向 0 的方向进行向上舍入。
如果你觉得该剧终,就错了,原来公式还可以再简化:
=CEILING(A2*2,1)
好吧,借用大家的留言:老太太倒地我都不扶,就扶你。
兰色说:对于新手来说,公式还是以易懂为主,长一点没关系。但如果能象小龙老师写出这么简捷公式,是不是更帅呢?