路桥隧 - 免费·分享·共赢
标题:
Excel单元格中奇进偶不进公式
[打印本页]
作者:
baihei
时间:
2007-11-15 15:17
标题:
Excel单元格中奇进偶不进公式
以前就有不少人问我要过试验上经常用到的奇进偶不进公式,方法比较多。今天又有人提到,花了点时间编了一个自以为比较简洁而且所有公式非常简单的方法,不知效果如何,请大家指教。
假如要进行奇进偶不进四舍五入的单元格为“A1",需要保留两位小数,折计算公式:
=IF(AND(INT(100*A1)-2*INT(A1*100/2)=0,(A1*100-INT(A1*100))<0.6),INT(A1*100)/100,ROUND(A1,2))
如果需要保留3位小数,则把式中的100改成1000,同事更改最后的“ROUND(A2,
2
))”为“ROUND(A1,
3
))”即可。
=IF(AND(INT(
1000
*A1)-2*INT(A1*
1000
/2)=0,(A1*
1000
-INT(A1*
1000
))<0.6),INT(A1*
1000
)/
1000
,ROUND(A1,
3
))
如果需要保留N位小数,则把式中的100改成1后面加N个0,同事更改最后部位为“ROUND(A2,
N
))”即可。
=IF(AND(INT(
10^N
*A1)-2*INT(A1*
10^N
/2)=0,(A1*
10^N
-INT(A1*
10^N
))<0.6),INT(A1*
10^N
)/
10^N
,ROUND(A1,
N
))
另外还可以用很多别的办法实现
比如:
ROUND(A1/(IF(--(RIGHT(A1/10^(INT(LOG(ABS(A1)))-2),2))=0.5,2,1)*SIGN(A1)*10^(INT(LOG(ABS(A1)))-2)),0)*IF(--(RIGHT(A1/10^(INT(LOG(ABS(A1)))-2),2))=0.5,2,1)*SIGN(A1)*10^(INT(LOG(ABS(A1)))-2)
大家还有什么好办法欢迎交流
作者:
baihei
时间:
2007-11-15 16:22
假如公式运用中存在负数应改为:
=IF(AND(INT(100*ABS(A2))-2*INT(ABS(A2)*100/2)=0,(ABS(A2)*100-INT(ABS(A2)*100))<0.6),A2/ABS(A2)*INT(ABS(A2)*100)/100,ROUND(A2,2))
作者:
zhangbf
时间:
2010-5-3 22:36
谢谢分享,
作者:
灵魂的影子
时间:
2010-6-28 08:44
好东西 谢谢了啊!!!!
作者:
lily010679
时间:
2010-7-7 08:23
好东东!
欢迎光临 路桥隧 - 免费·分享·共赢 (http://luqiaosui.com/)
Powered by Discuz! X3.2