关于Excel问题

如图,如知道A列数值,用什么公式可以在B列做出图中那种条件下的结果呢

你好,很高兴能为你解答。
根据你的图片问题描述,做了一个例子,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)))
如下图:




希望帮到你,谢谢!

追问

这个公式得出来的数值不变啊,只有后面一位小数点计算就好了

追答

这个是不定小数位数的

也都满足你的需求,或者你可以说几个代表性的数字和结果来看看

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-17
以数据在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)

第2个回答  2019-05-17

追问

这个公式全部取整了

追答

=IF(A1>=20,INT(A1)+1,IF(ROUND(A1,0)=INT(A1),INT(A1)+0.5,ROUND(A1,0)))

嵌套了一个IF

第3个回答  2019-05-17


亲,你是要打印么?

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




第4个回答  2019-05-17


亲,你是要打印么?

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




相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网