2011/12/20

用excel取得某數的個十百千位數

這邊會用到三種函數,TRUNC,CEILING跟RIGHT
首先TRUNC是無條件捨去小數,Right是取得該數最右邊的數字,
所以除了個位數外,都可以利用這兩個函數取得想要的位數

十位數 =RIGHT(TRUNC(儲存格/10))
百位數 =RIGHT(TRUNC(儲存格/100))
千位數 =RIGHT(TRUNC(儲存格/10^3))
萬位數 =RIGHT(TRUNC(儲存格/10^4))

但個位數的部分就不能無條件捨去小數點了,在會計上,這樣會少1元
所以必須用無條件進位的函數CEILING
用法是
=CEILING(數字,進位的基準數)
例如=CEILING(2.5, 1) 將 2.5 進位到3
 =CEILING(2.51, 0.1)會將2.51進位到2.6
所以
個位數 =RIGHT((CEILING(儲存格,1)))

 

但是問題來了,如果只有這樣的話,如果剛好個位數字是 9,又有小數點後面數字,進位之後會導致之前做的十位數少1,所以為了保險起見

最好把上面的公式改成

=RIGHT(TRUNC(((CEILING(A1,1))/X)))

十位數 =RIGHT(TRUNC(((CEILING(儲存格,1))/10)))
百位數 =RIGHT(TRUNC(((CEILING(儲存格,1))/10^2)))
千位數 =RIGHT(TRUNC(((CEILING(儲存格,1))/10^3)))
萬位數 =RIGHT(TRUNC(((CEILING(儲存格,1))/10^4)))


是說

如果要公式看起來一致

個位數 =RIGHT(TRUNC(((CEILING(儲存格,1))/10^0)))

這樣寫也是可以,只是有點多餘就是了

沒有留言:

張貼留言