编按:哈喽,大家好!说到excel中关于数值取舍的方法,可能很多小伙伴都不怎么在意,总觉得不就是对数值进行四舍五入或者是取整吗,用处又不大,有什么好讲的。nonono!数值的取舍远远不止这些,并且它们在工作中用处可大了,比如计算工龄,用于货币单位的转化等等,今天我们就一起来好好认识认识它们吧!学习更多技巧,可以收藏部落窝教育excel图文教程。
当计算结果为小数时,我们通常会对其小数位进行取舍,以得到符合我们要求的数据。对于数值的取舍,不仅有数学中的四舍五入法,还有向上、向下、截尾的方式取舍数据,下面小编就来逐一介绍下。
一、舍入到最接近基数的整数倍
1.向上舍入到最接近基数的整数倍
我们需要将某些数据小数点后的数值舍入到某一指定数值的倍数,这时候就可以使用CEILING()函数来实现。CEILING是天花板、最高限度的意思。CEILING函数的语法格式为:CEILING(number,significance)。
从函数的语法格式上可以看出,CEILING()包含两个必选参数number和significance。参数number表示要对其进行取舍的原数值,参数significance表示需要进行舍入的倍数,即舍入基数。CEILING()函数将返回大于且最接近number的significance的倍数。
CEILING函数中的两个参数必须是数值型数据,否则函数将返回错误值#VALUE!。在对number进行取舍时,如果number和significance都为负,则对number按远离0的方向进行向下舍入,如果number为负,significance为正,则对number按朝向0的方向进行向上舍入,如果number已经是significance的倍数,则不进行舍入。
举个例子,在下方表格的C列调用CEILING()函数,A列为指定的数值(number),B列为舍入基数(significance)。可以看出A2单元格值11.3经过运算后的结果是15。下面我们根据CEILING函数的作用来解析一下计算过程:比11.3大(向上舍入)且必须是5的倍数,12、13、14都不是5的倍数,而最接近11.3的5的倍数是15,所以返回结果15。
可能有的朋友还觉得CEILING()函数比较抽象,应用范围窄,那么下面我们再举一个例子。
网吧是小伙伴们初中、高中的记忆,某网吧的收费标准为:半小时收费两元,不足半小时按半小时算,超过半小时按每15分钟收费1元算,不足15分钟按15分钟算,现需要计算出每个客户的消费金额。首先我们需要先计算出每个客户实际的上网时长,再对这个时间进行处理,得到实际的计费时长,再根据收费规则计算出实际的收费金额。
操作步骤如下:
① 在D2单元格中输入“=C2-B2”,按Enter键,得到第一位客户的上网时长。保持D2单元格的选中状态,单击鼠标右键,选择“设置单元格格式”,选择“自定义”选项,输入代码“[<1]h"小""时"mm"分";[>1]d"天"h"小""时"mm"分"”,单击确定按钮完成设置。该代码用于将一个时间序列号显示为我们平常输入的时间样式,它可以在时间序列号小于1时,显示“XX小时XX分钟”,而在时间序列号大于1时,显示“XX天XX小时XX分钟”。
② 在E2单元格中输入公式“=IF(D2<1/24/2,2,CEILING(D2*24*60,15)/15*1)”,用于计算出计费金额。其中“D2<1/24/2”部分用于判断D2的时间是否小于半小时,如果是,则返回数字2,否则通过CEILING()函数返回“D2*24*60”的值的15的倍数,再除以15的值,表示一共有多少个15分钟。其中,“D2*24*60”部分是将D2单元格的时间序列,转换为以分钟为单位的时间。
③ 选中D2、E2行,鼠标向下填充至数据区域结尾,网吧的客户收费表就做成了。
其实,如果只是需要向上舍入到某个指定位数的值,使用ROUNDUP()函数也可以完成,该函数基本功能是远离0值,向上舍入数字,其语法格式为:ROUNDUP(number,num_digits)。该函数包含两个必选参数number和num_digits,其中number是函数要处理的数值,必须是数值型数据,而num_digits则表示要保留的小数位数,该参数可以取大于0,等于0,或小于0的任意整数。当num_digits参数大于0时,函数向上舍入到指定的小数位;当num_digits参数等于0时,函数向上舍入到最接近该值的整数;当num_digits参数小于0时,函数在小数点左侧向上进行舍入。
2.向下舍入到最接近基数的整数倍
我们需要将某些数据小数点后的数值向下舍入到某一指定数值的倍数,这时候就可以使用FLOOR()函数来实现。
其语法格式为FLOOR(number,significane),FLOOR是地板、最低限度的意思。从函数的语法格式可以看出FLOOR()函数与CEILING()函数的语法格式完全相同,各参数的意义也完全相同,在此,不多叙述。举个例子能帮助我们更好地理解该函数。
某公司根据员工参加工作的时间计算工龄,工龄计算的截止日期为本月的第一天,参加工作的日期不足12个月的不计工龄。
在C2单元格中输入“=FLOOR(DATEDIF(B2,DATE(YEAR(TODAY()),MONTH(TODAY()),1),"M"),12)/12&"年"”,按Enter键输入公式。该公式包含了多个函数嵌套。其中,“DATE(YEAR(TODAY()),MONTH(TODAY())”部分用于返回当前月份1号的日期,如当前系统日期为2020年2月8日,则该表达式返回结果为2020年2月1日。得到日期后,再通过DATEDIF()函数返回员工参加工作的日期与该日期之间相隔的月份数,最后用FLOOR()函数取最接近12倍的整数,并将得到的结果除以12即可得到员工的实际工龄。
使用CEILING()函数或FLOOR()函数,可以向上或向下取得最接近number的significance的倍数,如果significance参数为1,则与ROUNDUP()函数和ROUNDDOWN()函数的第二参数取0时的结果相同。
二、按指定位数进行四舍五入
四舍五入是数学中常用的数值取舍方法,在EXCEL中对数值进行四舍五入的函数是ROUND()函数,其语法格式为ROUND(number,num_digits)。ROUND()函数、ROUNDUP()函数、ROUNDDOWN()函数的语法格式和参数都相同,其中number表示要进行取舍的数字,num_digits表示要取舍的位数。
使用ROUND()函数较多的地方是在有关货币单位的转换上,如将A2单元格中以“元”为单位的数据除以10000再使用ROUND()函数进行四舍五入,即可得到B2单元格中以“万元”为单位的数据。更多关于ROUND函数的知识,可以查看往期文章《我要让全世界知道,你的四舍五入,被我ROUND家族承包了!》。
三、将数字截尾取整
只需要数据的整数部分,这就是数值的截尾取整,在EXCEL中进行截尾取整的函数是INT()函数。
INT函数的语法结构很简单为INT(number),仅有一个number参数,表示要进行向下截尾取整的数字。例如,两个代表时间的序列值相减,其整数部分就是两个时间之间相差的整天数。
举个例子,B列和C列分别记录的是两个带时间的日期,将C3-B3的值取整,即在D3单元格中可得到两个日期之间相差的整天数。将C3-B3的值再减去D3,即可得到两个日期之间相差的小数部分,将此小数乘24后取整,即可得到两个时间之间除整天数外剩余相差的小时数。
好了,关于数值的取舍的方法就介绍到这,我们也认识了CEILING()、FLOOR()、ROUND()、ROUNDUP()、ROUNDDOWN()、INT()函数,聪明的你有什么别的想法,欢迎留言。学习更多技巧,可以收藏部落窝教育excel图文教程。
****部落窝教育-excel数值取舍技巧****
原创:赋春风/部落窝教育(未经同意,请勿转载)