楼主 半半瓶醋 |
(实在没东西了,把原来每人看的帖子翻出来) EXCEL修约函数汇总 excel修约函数第二参数分两大类,一类为小数点位数表示法,一类为精度表示法。下表做个对比。 ROUND(number, num_digits):四舍五入函数。将某个数字四舍五入为指定的位数。 number:要四舍五入的数字。 num_digits:数字修约的精度。 num_digits>0,则向小数点右侧位数进行四舍五入,即要保留的小数位数。 num_digits = 0,则将数字四舍五入到个位。 num_digits<0,则向小数点左侧位数进行四舍五入。即:-1:修约到十位,-2:到百位…… num_digits应为整数,有小数虽不出错,但小数会自动舍去,只保留整数。ROUNDDOWN,ROUNDUP,TRUNC都是这样。 ROUND(8.15,1)=ROUND(8.15,1.9)=8.2 ROUND(8.15,0)=ROUND(8.15,0.546)=ROUND(8.15,)=8 ROUND(1438.15,-2)=1400 ROUND(-1438.15,-2)=-1400 ROUND(1438.15,-1)=1440 ROUND(-1438.15,-1)=-1440 MROUND(number,multiple):返回参数按指定基数舍入后的数值。【03版需加载"分析工具库"】 如果number除以multiple的余数大于或等于multiple的一半,则函数 MROUND 向远离零的方向舍入。 number,multiple必须符号一致,否则返回#NUM!错误。 在公式中,number是变量,multiple做常量且习惯multiple是正数,所以函数容错写法应该是 MROUND(number,sign(number)*multiple) multiple为正数 MROUND是ROUND扩展版:MROUND(number,sign(number)*multiple)=ROUND(number/multiple,)*multiple ROUND(8.15,1)=MROUND(8.15,0.1)=8.2 ROUND(8.15,)=MROUND(8.15,1)=8 MROUND(8.15,3)=ROUND(8.15/3,)*3=9 MROUND(9.15,3)=ROUND(9.15/3,)*3=9 ROUNDDOWN(number, num_digits):靠近零值,向下舍入数字。→0← 参数意义同ROUND函数。修约规则是对数字的绝对值向下“舍”休约。 TRUNC(number,[num_digits]):将数字截取到指定的精度。直接截去尾数,不论正负。→0← TRUNC=ROUNDDOWN 功能完全一样。唯一不同的是TRUNC的第二参数是可选的,不选时默认为0。 ROUNDDOWN第二参数是必选参数。但可采用省略写法(省略当做0)。 TRUNC(8.15,1)=ROUNDDOWN(8.15,1)=8.1 TRUNC(-8.15,1)=ROUNDDOWN(-8.15,1)=-8.1 TRUNC(8.15)=ROUNDDOWN(8.15,)=ROUNDDOWN(8.15,0)=8 FLOOR(number,significance):将number向下舍(向零方向)到最接近significance的倍数。 number,significance参数的符号在不同版本有不同现象,甚至造成修约结果与函数说明的功能相矛盾。 03版:number,significance符号必须一致,否则返回#NUM!错误。修约结果与函数说明的功能一致。→0← 10版:如果number为正数,则significance必须为正。否则返回#NUM!错误。 ①如果significance与number符号相同,对数字的绝对值向下“舍”。修约结果与函数说明的功能一致。→0← 为了保证函数容错性和通用性。函数写法同MROUND FLOOR(number,sign(number)*significance)。 FLOOR是TRUNC(ROUNDDOWN)的扩展版(significance为正数)。 FLOOR(number,sign(number)*significance)=TRUNC(number/significance)*significance 例子:月底发了5678.9元工资,你家的母老虎大方的说“不足50元的留作你零花钱吧”,那你得上交多少呢? FLOOR(5678.9,50)=TRUNC(5678.9/50)*50=5650 FLOOR(-5678.9,-50)=TRUNC(-5678.9/50)*50=-5650 ②如果significance与number符号相异,对数字的绝对值向上“入”。修约结果与函数说明的功能相反。←0← 这种情况就是INT的扩展版(significance为正数)。 FLOOR(number,significance)=INT(number/significance)*significance FLOOR(5678.9,50)=INT(5678.9/50)*50=5650 FLOOR(-5678.9,50)=INT(-5678.9/50)*50=-5700 (03版FLOOR出错) INT(number):将numer舍到等于或小于并最接近number的整数。正数靠近零,负数远离零。←0← INT在处理正数时效果同TRUNC。处理负数时与TRUNC不同,INT远离零,TRUNC靠近零 TRUNC(7.35)=INT(7.35)=7 TRUNC(-7.35)=-7≠INT(-7.35)=-8 FLOOR.PRECISE(number,[significance]):舍到等于或小于并最接近number的significance倍数。←0← 07版新加函数,功能同FLOOR上面说的第②点,不同的是number,significance符号都不做限制。 Number为负数是远离零方向,Number为正数时靠近零方向。 Significance符号不用考虑。Significance缺省时是1。INT的扩展版。 FLOOR.PRECISE(number,significance)=FLOOR.PRECISE(number,ABS(significance)) =INT(number/ABS(significance))*ABS(significance) FLOOR.PRECISE(5678.9,50)=FLOOR.PRECISE(5678.9,-50)=INT(5678.9/50)*50=5650 FLOOR.PRECISE(-5678.9,50)=FLOOR.PRECISE(-5678.9,-50)=INT(-5678.9/50)*50=-5700 ROUNDUP(number, num_digits):远离零值,向上舍入数字。 ←0→ 参数意义同ROUND函数。休约规则是对数字的绝对值向上“入”修约。 ROUNDUP(8.15,1)=8.2 ROUNDUP(-8.15,1)=-8.2 CEILING(number,significance):将Number向上入(远离零方向)为最接近significance的倍数。←0→ 参数意思和要求完全同FLOOR,只是修约方向同FLOOR相反。ROUNDUP函数的扩展版(significance为正数)。 CEILING(number,sign(number)*significance)=ROUNDUP(number/significance,)*significance CEILING(5678.9,50)=ROUNDUP(5678.9/50,)*50=5700 CEILING(-5678.9,-50)=ROUNDUP(-5678.9/50,)*50=-5700 CEILING(-5678.9,50)=-5650 (03版出错) CEILING.PRECISE(number,[significance]):入到等于或大于并最接近number的significance倍数。→0→ 07版新加函数,参考FLOOR.PRECISE,负数时是ROUNDDOWN扩展版,正数时是ROUNDUP扩展版。 CEILING.PRECISE(5678.9,50)=5700 CEILING.PRECISE(-5678.9,50)=-5650 CEILING.PRECISE(5678.9,-50)=5700 CEILING.PRECISE(-5678.9,-50)=-5650 EVEN(number)沿绝对值增大方向取整后最接近的偶数。←0→ EVEN(number)=ROUNDUP(number/2,)*2 ODD(number)沿绝对值增大方向取整后最接近的奇数。←0→ ODD(number)=ROUNDUP((number+1)/2,)*2-1 翻帮助整理的。这么一大堆估计看完也晕了。 |
2楼 大灰灰 |
醋醋 我来了。嘿嘿 试试 就不晕了 好详细 谢谢 收藏~ |
3楼 大灰灰 |
沙发 板凳 都归我 |
4楼 乌江秀水 |
看看 |