EXCEL中四舍六入函数的输入方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
能通过格式直接变成你所要求的功能的~
一般来说,通过函数,在另外一格里输出你要求的!
一楼的太复杂, 二楼的有待完美!
二楼的是通过最后一位小数来判断的~如果你输入12.345,如果保留一位小数,就变成了12.4,
还是不太明白你的意思,下面做了两个:
一,最终生成保留1位小数,即通过第2位小数的奇偶来进舍~
=IF(MOD(RIGHT(TRUNC(RC[-1],2),1),2)=1,ROUNDUP(RC[-1],1),ROUNDDO WN(RC[-1],1))
在数值的右边输入这个工式!
会根据第二位小数的奇进偶舍来生成1位小数!同时这个格设置格式为1位小数(不然是整数的时候,不会出现小数位)
二,最终生成整数,通过已经设置过保留1位小数的奇偶来进舍~
=IF(MOD(RIGHT(ROUND(RC[-1],1),1),2)=1,ROUNDUP(RC[-1],0),ROUNDD OWN(RC[-1],0))因为格式中的保留1位小数是四舍五入, 直接用RIGHT去取最后一位的话,不是取的看到的最后一位,而是没有四舍五入的最后一位,所以在公式里可四舍五入一次!
用到的函数:
MOD:取两个数的余数,通过判断最后一位与2的余数,来确定是奇是偶TRUNC:舍到指定位数(指定位数可空,即零)
RIGHT:取文本(数值)最右边一位
ROUND:四舍五入指定位数
ROUNDUP:向上取指定位数
ROUNDDOWN:向下取指定位数
如果你想把如12.34567,每位都按奇进偶舍的方式向上取整,或取到保留一位小数,有点复杂,自己按上面的改改吧!
一般不会先生成12.3457,再生成12.346,再生成12.34,再生成12.3?
所谓的奇进偶舍是否就是四舍六入五留双,
如果是这么样的,假设数据在A2:A100,B2中输入
=IF((A2-TRUNC(A2,1))<=0.04,TRUNC(A2,1),IF((A2-TRUNC(A2,1))>=0.06,TR UNC(A2,1)+0.1,TRUNC((TRUNC(A2,1)+0.1)/2,1)*2))
用自动填充柄将公式复制到B100.
保留两位小数,但是要数字修约,尾数逢5奇进偶不进,其他的四舍六入,excel该怎么输入函数
=IF(RIGHT(TRUNC(A1,3))="5",IF(MOD(RIGHT(TRUNC(A1,2)),2),CEILING(A 1,0.01),FLOOR(A1,0.01)),ROUND(A1,2))
追问
可以帮我解释下这些函数都是什么意思吗?谢谢,我想知道其所以然
回答
RIGHT(TRUNC(A1,3))="5"
判断A1中小数点后第三位是不是为5,TRUNC(A1,3))的作用是把小数点后第三位以后的全部截去。
当小数点后第三位为5时,还得判断小数点后第二位是不是奇数,
MOD(RIGHT(TRUNC(A1,2)),2)是判断小数点后的第二位是不是奇数,
MOD(RIGHT(TRUNC(A1,2)),2)是把小数点后第二位提取后被2除的余
数,如果为1时则为奇数,如果为0时则为偶数。条件成立时执行
CEILING(A1,0.01),条件不成立时执行FLOOR(A1,0.01)),
CEILING(A1,0.01))和FLOOR(A1,0.01))分别是向上(向下)舍入为0.01的整数倍,不足0.01的部分进上去或略去,如ceiling(2.123,0.01)=2.13,floor(2.128,0.01)=2.12
ROUND(A1,2))
的作用是对A1执行四舍五入,保留两位小数,这是在
RIGHT(TRUNC(A1,3))="5"的条件不成立的基础上执行的,就是小数点后
第三位不是5的时候才执行,也就是四舍六入了。
追问
=IF(MOD(RIGHT(INT(A1*100),1),2)<>0,ROUND(A1,
2),ROUNDDOWN(A1,2))这个函数是什么意思,它哪里出了问题
回答
你还问上瘾了。
MOD(RIGHT(INT(A1*100),1),2)是将A1乘以100后取整,然后取右边的
一个数字,就是小数点后第二位的数字,被2除后的余数是不是等于0,如果不等于0,执行四舍五入,保留两位小数,即ROUND(A1,2),如
果等于0,第三位以后不不管是几,都统统舍去,即ROUNDDOWN(A1,2),显然达不到你的要求,如2.127,小数点后第二位是2,被2除后的余数为0,按你的四舍六入五凑偶的要求,第三位的7应该进上去为2.13才
对,但他的公式执行的是ROUNDDOWN(A1,2),成了2.12,所以是错误的。
这么复杂、这么难的问题,你居然一分都舍不得出,还要一直问到地老天
荒吗?我劝你差不多就行了,别人得分也不容易,不要把那么多问题当做
一个问题来纠缠不休,你要诚心想学就到专门的培训中心去学吧,那里条
件要好得多,这里大家都很忙,不是来当义务讲师,你说是吗?
=ROUND(A1,2)-(RIGHT(INT(A1*1000))-5=0)*(MOD(RIGHT(INT(A1*100)),2)= 1)*0.01
就是工程的“修约”吧:四舍六入五单双
=IF(ISERR(FIND(".",A1)),A1,IF(AND(RIGHT(A1,LEN(A1)-FIND(".",A1)-2)="5", MOD(MID(A1,FIND(".",A1)+2,1),2)=0),TRUNC(A1,2),ROUND(A1,2)))
追问
如果是保留三位或者4位小数应改哪里啊?
回答
3位数的:
=IF(ISERR(FIND(".",A1)),A1,IF(AND(RIGHT(A1,LEN(A1)-FIND(".",A1)-
3)="5",MOD(MID(A1,FIND(".",A1)+3,1),2)=0),TRUNC(A1,3),ROUND(A
1,3)))
4位数的:
=IF(ISERR(FIND(".",A1)),A1,IF(AND(RIGHT(A1,LEN(A1)-FIND(".",A1)-
4)="5",MOD(MID(A1,FIND(".",A1)+4,1),2)=0),TRUNC(A1,4),ROUND(A
1,4)))
提问者评价
太感谢了,真心有用
自答:比如要对a按奇进偶不进保留一位小数,公式如下:
=IF(RIGHT(INT(a*10),1)<>"5",ROUND(a,0),IF(MOD(ROUND(a*10,0),2)=0,R OUND(a,0),ROUND(a,0)-0.1))
//RIGHT(INT(a*10),1)<>"5" :
判断小数点后以为是否为5,不等于5的时候取值ROUND(a,0),等于5的时候按乘以10在四舍五入,接着判断奇偶,当是偶数的时候取值ROUND(a,0),为奇数的时候值:
ROUND(a,0)-0.1
其他的类推over!
百度知道,v5!