发布网友 发布时间:2022-04-20 06:17
共4个回答
热心网友 时间:2023-07-12 15:45
你好,很高兴能为你解答。
根据你的图片问题描述,做了一个例子,A列为数据,同时A列数据的小数位数是不确定的,B列为所需要得到的结果。如下图:
整体思路:
第一:首先使用IF函数判断是否大于20;
第二:使用LEN和FIND函数判断小数位数;
第三:当大于20的时候直接使用ROUNDUP、LEN和FIND函数组合公式;
第四:当小于20的时候,使用RIGHT函数判断最后一位是否小于5;
第五:当最后一位小于5的时候,使用LEFT和LEN函数提取除去最后一位数据加上最后一位5, 5是通过10的幂次方来确定;
第六:当最后一位大于5的时候,直接使用ROUND、LEN和FIND函数组合公式进位。
因此,公式如下:
=IF(A2>20,ROUNDUP(A2,LEN(A2)-FIND(".",A2)-1),IF(--(RIGHT(A2,1))<5,LEFT(A2,LEN(A2)-1)+10^-(LEN(A2)-FIND(".",A2))*5,ROUND(A2,LEN(A2)-FIND(".",A2)-1)))
如下图:
希望帮到你,谢谢!
热心网友 时间:2023-07-12 15:45
以数据在A1为例
=IF(A1>20,FIXED(A1,0),IF(--MID(A1,FIND(".",A1)+1,1)>5,FIXED(A1,0),REPLACE(A1,FIND(".",A1)+1,1,5)))追问好像你这个是四舍五入的
追答对啊, 你不是要进一位么?
如果不要四舍五入,就把FIXED改为INT(A1)
热心网友 时间:2023-07-12 15:46
追问这个公式全部取整了
追答
=IF(A1>=20,INT(A1)+1,IF(ROUND(A1,0)=INT(A1),INT(A1)+0.5,ROUND(A1,0)))
嵌套了一个IF
热心网友 时间:2023-07-12 15:46
亲,你是要打印么?
Excel可以每隔50行分一页,不过要用VBA。下面是代码:
Sub fy()