设为首页收藏本站

路桥隧 - 免费·分享·共赢

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

打印 上一主题 下一主题
开启左侧

[分享] Excel单元格中奇进偶不进公式

[复制链接]
跳转到指定楼层
1
发表于 2007-11-15 15:17:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前就有不少人问我要过试验上经常用到的奇进偶不进公式,方法比较多。今天又有人提到,花了点时间编了一个自以为比较简洁而且所有公式非常简单的方法,不知效果如何,请大家指教。
假如要进行奇进偶不进四舍五入的单元格为“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)
大家还有什么好办法欢迎交流
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持1 踩
2
 楼主| 发表于 2007-11-15 16:22:53 | 只看该作者
假如公式运用中存在负数应改为:
=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))
3
发表于 2010-5-3 22:36:56 | 只看该作者
谢谢分享,
4
发表于 2010-6-28 08:44:42 | 只看该作者
好东西 谢谢了啊!!!!
5
发表于 2010-7-7 08:23:06 | 只看该作者
好东东!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|【路桥隧】 ( 湘ICP备16018960号-1 )  QQ群:【路桥吾爱-lq52.com】

GMT+8, 2024-4-24 22:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表