新人菜鸟求助!谢谢各位高手了!
excel吧
全部回复
仅看楼主
level 2
zhagbbb 楼主
当A1<1时,在B1处用进一法将A1数值保留到小数点后2位;当A1>=1时,在B1处用进一法保留到小数点后面1位,请问如何实现?
其实我的最终目的是这样的:无论A1为何值,在B1处均用进一法将其保留2位有效数字。
作为菜鸟的我已经焦头烂额了,麻烦各位高手了!
2013年06月18日 05点06分 1
level 2
zhagbbb 楼主
在线等啊
2013年06月18日 05点06分 2
吧务
level 12
B1 = CEILING(A1,0.01) A1应为正数
2013年06月18日 05点06分 4
我来试试看
2013年06月18日 06点06分
回复 zhagbbb :试过了不行,谢谢你
2013年06月18日 06点06分
吧务
level 14
B1=ROUND(A1,2-LEN(INT(A1))*(A1>1))
2013年06月18日 06点06分 5
谢谢,我试试看
2013年06月18日 06点06分
我试过了,roundup,但是举个例子,当A1为1.91111时,B1显示2而不是2.0,也就是说小数点最后一位为0时就不显示了。
2013年06月18日 06点06分
吧务
level 12
你是这个意思么?
2013年06月18日 06点06分 6
是的,但是你这个和roundup类似吧。
2013年06月18日 06点06分
level 2
zhagbbb 楼主
谢谢各位大侠,我的问题已经解决了!
2013年06月18日 06点06分 7
没解决,悲剧
2013年06月18日 16点06分
level 2
zhagbbb 楼主
我的公式是:
=IF(A1<1,TEXT(ROUNDUP(A1,2),"0.00"),IF(A1>=1,TEXT(ROUNDUP(A1,1),"0.0"),""))
可能有更简单的方法吧。
2013年06月18日 06点06分 8
=TEXT(ROUNDUP(A1,1+(A1<1)),"0."&REPT(0,1+(A1<1)))
2013年06月18日 07点06分
但是你这不是保留两位有效数字。
2013年06月18日 07点06分
回复 温柔小兔 :你这个公式当0.9999时候显示为1.00这个是3位有效数字了。
2013年06月18日 17点06分
回复 zhagbbb :这就是你说的小于1.根据你的公式改的,难道还会不一样?
2013年06月18日 23点06分
吧务
level 14
你是要"保留2位有效数字",但是你的公式结果是小於1则小数点取2位,大於1则小数点取1位,到底是要哪一个?
2013年06月18日 07点06分 9
两个都要[哈哈]
2013年06月18日 07点06分
回复 温柔小兔 :怎麼是小兔回复,而不是楼主回复?两个都要?那就要两个不同公式。
2013年06月18日 07点06分
回复 胡须客 :[哈哈]我也在想,我以为是要保留两位有效数字呢[汗]原来不是
2013年06月18日 07点06分
回复 温柔小兔 :是要保留两位有效数字,但是最后一位为0时候excel好像不显示
2013年06月18日 16点06分
level 9
①如果这个数不超过99,那么
=CEILING(A1, SIGN(A1)*10^(INT(LOG(ABS(A1)))-1))
这种情况,111→120 它也是3位有效数字
②于是,对任意数都可以这个
=TEXT(CEILING(A1, SIGN(A1)*10^(INT(LOG(ABS(A1)))-1)),"0.0E+0")
2013年06月18日 08点06分 11
恩 万分感谢 我明天试试看
2013年06月18日 16点06分
不行啊,你这个好像是科学计数,当A1为0.11111时候显示为1.2E-1,这个结果不是我想要的。我想要的是直接显示0.12
2013年06月18日 16点06分
第一个公式,当A1为0.9999时候就直接显示为1了,应该显示1.0
2013年06月18日 16点06分
level 2
zhagbbb 楼主
我自己试过好几种公式,现在主要的问题就是,excel不显示最后一位的0,我自己8楼的公式使用范围为0.1-9之间。假如是0.011就不行了。我就是想保留两位有效数字所以我是这样做的:当A1>=1时,保留小数点后1位;当0.1<A1<1时,保留小数点后2位。用这种方法来达到我“保留2位有效数字”的目的,当A1<0.1就不行了,所以还要再加公式很麻烦。大侠们也给了一些有效数字的公式,但是都有一个问题:当A1=0.99999时,是显示1还是1.0呢?我需要的是后者。
2013年06月18日 17点06分 12
level 10
=IF(AND(INT(-MID(TEXT(ROUNDUP(A1,1-INT(LOG(A1))),"0.0E+0"),{5,3},{9,1})/99)=0),--TEXT(ROUNDUP(A1,1-INT(LOG(A1))),"0.0E+0")&RIGHT(".0",1+(MOD(A1,1)>0.9)),--TEXT(ROUNDUP(A1,1-INT(LOG(A1))),"0.0E+0"))
应该把所有情况都包含了吧?
2013年06月19日 00点06分 13
恩 我来试试看
2013年06月19日 00点06分
回复 zhagbbb :OK了!真是太感谢了!
2013年06月19日 00点06分
回复 zhagbbb :其实你8楼的公式改一下就好,IF判断的时候判断 <=0.99
2013年06月19日 00点06分
=--TEXT(ROUNDUP(A1,1-INT(LOG(A1))),"0.0E+0")&RIGHT(".0",(1+(MOD(A1,1)>0.9))*AND(INT(-MID(TEXT(ROUNDUP(A1,1-INT(LOG(A1))),"0.0E+0"),{5,3},{9,1})/99)=0))
2013年06月19日 00点06分
level 2
zhagbbb 楼主
问题终于解决了!方法在13楼,再次感谢温柔小兔!
果然高手,就那一串公式我得好好学习学习了!
2013年06月19日 00点06分 14
我把if去掉了。太长了。
2013年06月19日 00点06分
回复 温柔小兔 :IF可以去掉吗?
2013年06月19日 00点06分
=--TEXT(ROUNDUP(A1,1-INT(LOG(A1))),"0.0E+0")&RIGHT(".0",(1+(MOD(A1,1)>0.9))*AND(INT(-MID(TEXT(ROUNDUP(A1,1-INT(LOG(A1))),"0.0E+0"),{5,3},{9,1})/99)=0))
2013年06月19日 01点06分
有待简化,而且如果如果有0和负数的话,又要加进去abs函数,总之太长了。
2013年06月19日 01点06分
level 10
建议你还是用科学计数。三位的
=TEXT(ROUNDUP(A1,2-INT(LOG(A1))),"0.00E+0")
2013年06月19日 01点06分 15
谢谢,我这个文件需要打印出来给其他人看的,不然就不要这么麻烦了,科学计数不太合适
2013年06月19日 02点06分
=--TEXT(ROUNDUP(A1,2-INT(LOG(A1))),"0.00E+0")&RIGHT(".00",LOOKUP(1,0/(-MID(0&TEXT(ROUNDUP(A1,2-INT(LOG(A1))),"0.00E+0"),{1,5,4},{1,1,2})=0),{0,1,2}+(--RIGHT(TEXT(ROUNDUP(A1,2-INT(LOG(A1))),"0.00E+0"),2)=0)*(MOD(A1-0.99,1)<=0.01)))
2013年06月19日 02点06分
回复 zhagbbb :随便写的,<10的话应该没问题。
2013年06月19日 02点06分
之前的那个3位的重新发一下好吗,我这边不显示了,我也想一次性把问题提完,关键这问题是领导一个一个提给我的...
2013年06月19日 02点06分
1