原文由 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))
请大家检验一下。
原文由 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))
请
大家检验一下。