2009/12/29

EXCEL v.s. 有效位數

因為工作上需要,必需對一些數值取三位有效數字,然而 EXCEL 並有沒直接提供這樣的函數,這時候就要轉幾個彎來達成了。

範例 :

對 A1 取 B1 位有效數字後,放在 C1 儲存格...
A1 = 1234.567
B1 = 3
C1 = ROUND(A1,B1-LEN(INT(A1))
當 B1 =3, C1 = 1230
當 B1 =5, C1 = 1234.6

函數說明:
  • ROUND(數值,位數)
    用來將數值四捨五入至特定位數 (位數正值是小數點後,位數負值是小數點前)。
  • LEN(字串)
    傳回一字串的字元個數,在此是用來傳回數值共有幾位。
  • INT(數值)
    將數值無條件捨去成為整數。
由內向外看,LEN(INT(A1) 就是先求原本數值 A1 的整數有幾位,再由想要的有效位數 B1 計算要四拾五入到哪一位數 B1-LEN(INT(A1)),完整寫出就是 ROUND(A1, B1-LEN(INT(A1)))。

變化:

到個位數為止,最多對 A1 取 B1 位有效數字,並放在 D1 儲存格...
A1 = 1234.567
B1 = 3
D1 = ROUND(A1,MIN(B1-LEN(INT(A1)),0))
當 B2 =3, D1 = 1230
當 B2 =5, D1 = 1235 (不是 1234.6)

沒有留言:

張貼留言