Excel 一問

2010-08-20 6:07 am
各位 excel 高手:

我最近遇到一難題,希望各位高手可以幫幫手......

公司最近有條數.要在小數點後一個位四捨五入....但最奇就係如果小數

點後一個位是3,4,5,6,7既話就捨.......(ROUNDDOWN),而小數點後一個

位是 1,2,8,9 既話就入(ROUNDUP),到依家都唔知點解決,希望各位高手

可以幫幫手,可以點樣寫入函數


萬分感謝

回答 (4)

2010-08-21 8:50 am
✔ 最佳答案
另一個比較古怪的方法, 但條 formula 會短啲:

計番如果小數點後一位的數字, 減左 3 後會細過 5, 便 rounddown, 否則便 roundup

=IF(VALUE(RIGHT(INT(A1*10-3),1))<5,ROUNDDOWN(A1,),ROUNDUP(A1,))
2010-08-24 2:45 am
下面的方法可能較直接及易理解:

=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.
2010-08-21 8:06 am
設數字在 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 提供的公式亦可, 或許比我的更高明
2010-08-21 6:53 am
你好,
已經嘗試,例如輸入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


收錄日期: 2021-04-13 17:27:41
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20100819000051KK01872

檢視 Wayback Machine 備份