主题:【讨论】检验计算常用的EXCEL函数

浏览0 回复13 电梯直达
可能感兴趣
phillyrin
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
原文由 whuisvfg(whuisvfg) 发表:
原文由 phillyrin(phillyrin) 发表:
这个用公式也不太难,但是要两个单元格,一个保存待评估数据,另一个保存小数点位数。,假设A1保存原始数据,B1保存小数点位数;。
思路如下:
1. 判断原始数据小数点后(B1+1)位是否为5。表达式为:TRUNC(MOD(A1*10^(B1+1),10))=5
2. 如果不为5,直接round
3. 如果为5, 看原始数据小数点后B1位是奇数还是偶数。表达式为:MOD(TRUNC(A1*10^B1),2)=0
4. 如果3 为真,则trunc,否则,roundup
最后,公式为:
=IF(TRUNC(MOD(A1*10^(B1+1),10))=5,IF(MOD(TRUNC(A1*10^B1),2)=0,TRUNC(A1,B1),ROUNDUP(A1,B1)),ROUND(A1,B1))

大家检验一下。


还有一种情况楼上的没有考虑,即当小数点后为5时,还应看5以后有没有数字,如果有,不管前面是偶数还是奇数都要进位的:如2.50000001  保留整数应为3  ,只有2.50000000即5后面全为o时才不进位等于2。

这个情况好像我还没有怎么见过,我明天去看看国标的修约规则,然后想想办法,怎么能改进一下。
不过条件这么多,看来还是写个宏比较简单了。

http://support.microsoft.com/kb/196652/zh-cn
赞贴
0
收藏
0
拍砖
0
2011/12/20 21:42:48 Last edit by phillyrin
syyyl
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
明明亮
结帖率:
100%
关注:0 |粉丝:0
新手级: 新兵
猜你喜欢最新推荐热门推荐更多推荐
品牌合作伙伴