各位 excel 高手:
我最近遇到一難題,希望各位高手可以幫幫手......
公司最近有條數.要在小數點後一個位四捨五入....但最奇就係如果小數
點後一個位是3,4,5,6,7既話就捨.......(ROUNDDOWN),而小數點後一個
位是 1,2,8,9 既話就入(ROUNDUP),到依家都唔知點解決,希望各位高手
可以幫幫手,可以點樣寫入函數
萬分感謝
✔ 最佳答案
另一個比較古怪的方法, 但條 formula 會短啲:
計番如果小數點後一位的數字, 減左 3 後會細過 5, 便 rounddown, 否則便 roundup
=IF(VALUE(RIGHT(INT(A1*10-3),1))<5,ROUNDDOWN(A1,),ROUNDUP(A1,))
下面的方法可能較直接及易理解:
=CEILING(A1,1)-(RIGHT(A1,1)="3")-(RIGHT(A1,1)="4")-(RIGHT(A1,1)="5")-(RIGHT(A1,1)="6")-(RIGHT(A1,1)="7")
將公式複製到下面的 cells.
方法是全部有小數點的都進1, 但遇到尾數是3, 4, 5, 6, 7 時, 再將結果減1.
設數字在 A1
B1=INT(A1)+OR(A1-INT(A1)=0.1,(A1-INT(A1))=0.2,A1-INT(A1)=0.8,A1-INT(A1)=0.9)
2010-08-21 00:01:39 補充:
=INT(A1)+OR(ROUND(A1-INT(A1),1)=0.1,ROUND(A1-INT(A1),1)=0.2,ROUND(A1-INT(A1),1)=0.8,ROUND(A1-INT(A1),1)=0.9)
2010-08-21 00:06:05 補充:
=INT(A1)+OR(ROUND(A1-INT(A1),1)=0.1,ROUND(A1-INT(A1),1)=0.2,ROUND(A1-INT(A1),1)=0.8,ROUND(A1-INT(A1),1)=0.9)
2010-08-21 07:28:09 補充:
=INT(A1)+IF(ISNA(MATCH(ROUND((A1-INT(A1)),1),{0.1;0.2;0.8;0.9},0)),0,1)
2010-08-21 22:55:34 補充:
=INT(A1)+OR(ROUNDDOWN(A1-INT(A1),1)=0.1,ROUNDDOWN(A1-INT(A1),1) =0.2,ROUNDDOWN(A1-INT(A1),1)=0.8,ROUNDDOWN(A1-INT(A1),1)=0.9)
OR
=INT(A1)+IF(ISNA(MATCH(ROUNDDOWN((A1-INT(A1)),1),{0.1;0.2;0.8;0.9},0)),0,1)
另外 LAM 提供的公式亦可, 或許比我的更高明
你好,
已經嘗試,例如輸入12.1,會計算為12
其他也出現同樣情況,只有輸入 12.9
先會計算為13,不知道發生問題所在,
可否再教一教我,
多謝 andy 兄
2010-08-21 14:01:07 補充:
ANDY 兄,
=INT(A1)+OR(ROUND(A1-INT(A1),1)=0.1,ROUND(A1-INT(A1),1)=0.2,ROUND(A1-INT(A1),1)=0.8,ROUND(A1-INT(A1),1)=0.9)
已經嘗試,
發現問題如下,如果小數點後只得一個位是無問題
但小數點多於一個位後就會有問題.
如 12.7 輸入是無問題,計算後是12
但 12.77 計算就會出現 13
THX
2010-08-23 22:01:07 補充:
joe 兄,
=CEILING(A1,1)-(RIGHT(A1,1)="3")-(RIGHT(A1,1)="4")-(RIGHT(A1,1)="5")-(RIGHT(A1,1)="6")-(RIGHT(A1,1)="7")
多謝你的作答,輸入 12.3 計算沒有問題,但輸入12.388 計算會進一,即答
案是13,
輸入 12.111 計算沒有問題,但輸入 12.123亦會出現計算出12
thx