在excel表格中,有些数如3.14 3.17 5.11 5.10 这类的数,我想把最后那位数都精确到0.5的精确度,如
1个回答

如果楼主是想达到如下的要求,

3.11 3.10

3.12 3.10

3.13 3.15

3.14 3.15

3.15 3.15

3.16 3.15

3.17 3.15

3.18 3.20

3.19 3.20

3.20 3.20

A1单元格为原数,在B1单元格里输入函数

CEILING(A1-0.025,0.05)

具体解释如下:

CEILING(number,significance)

Number 要舍入的数值.

Significance 用以进行舍入计算的倍数.

将参数 Number 向上舍入(沿绝对值增大的方向)为最接近的 significance 的倍数.

如果您不愿意使用像“分”这样的零钱,而所要购买的商品价格为 ¥4.42,可以用公式 =CEILING(4.42,0.05) 将价格向上舍入为以“角”表示.

关于A1数字修正的解释

A1-0.025

因为CEILING函数是向上取倍数,而不是近似来找,

比如3.13至3.17均要变成3.15,这才是近似取整,而向上取整,则3.16、3.17就要变成3.20.

那就必须采用修正措施,将原来的数字减去0.025,

这样,就能保证正确.

但是对于3.175这个数是取到3.15还是3.20呢?他们离3.15和3.20是一样近.

上面的公式是取到3.15的

但是如果你想让这个中间数3.175变为3.20,则应修正公式

=CEILING(A7-0.025+OR((MOD(A7*100,10)/100=0.025),(MOD(A7*100,10)/100=0.075))*0.01,0.05)

即在A7-0.025后增加

OR((MOD(A7*100,10)/100=0.025),(MOD(A7*100,10)/100=0.075))*0.01

OR((MOD(A7*100,10)/100=0.025),(MOD(A7*100,10)/100=0.075))*0.01

他的意思是原数刚好为中间数时,如3.175,给他往上加点,这样就可以利用CEILING的向上取整的功能达到目的.

函数的表达为MOD(A7*100,10)/100为0.025或0.075时,将原数加0.01,达到向上取整,而不是中间数时,就为0,即不对原公式部分造成影响.