你好,很高兴能为你解答。
根据你的图片问题描述,做了一个例子,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)))
如下图:
希望帮到你,谢谢!
这个公式得出来的数值不变啊,只有后面一位小数点计算就好了
这个是不定小数位数的
=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)
亲,你是要打印么?
Excel可以每隔50行分一页,不过要用VBA。下面是代码:
Sub fy()
Dim i As Long
For i = 51 To ActiveSheet.UsedRange.Rows.Count Step 50
ActiveSheet.HPageBreaks.Add Before:=Cells(i, 1)
Next i
End Sub
亲,你是要打印么?
Excel可以每隔50行分一页,不过要用VBA。下面是代码:
Sub fy()
Dim i As Long
For i = 51 To ActiveSheet.UsedRange.Rows.Count Step 50
ActiveSheet.HPageBreaks.Add Before:=Cells(i, 1)
Next i
End Sub