Board logo

標題: Rounding 函數 [打印本頁]

作者: Qin    時間: 2013-11-1 22:55     標題: Rounding 函數

有什麼 rounding 函數可以讓例如:

180.05
73.50
79.90
45.20

全部進位為 0.90

答案:
180.90
73.90
79.90
45.90
作者: sunnyso    時間: 2013-11-2 00:02

=TRUNC(A1)+0.9
作者: sunnyso    時間: 2013-11-2 00:04

=int(A1)+0.9
作者: sunnyso    時間: 2013-11-2 00:05

本帖最後由 sunnyso 於 2013-11-2 00:06 編輯

=floor(a1,1)+0.9
作者: sunnyso    時間: 2013-11-2 00:09

本帖最後由 sunnyso 於 2013-11-2 00:23 編輯

=roundup(a1,0)-0.1

這個公式對整數會出錯
作者: sunnyso    時間: 2013-11-2 00:10

=rounddown(a1,0)+0.9
作者: sunnyso    時間: 2013-11-2 00:16

來個複雜的
=IFERROR(LEFT(A1,FIND(".",A1))&"9", A1&".9")
作者: sunnyso    時間: 2013-11-2 00:19

=IF(ISERR(FIND(".",A1)), A1 &".9",LEFT(A1,FIND(".",A1))&"9")
作者: sunnyso    時間: 2013-11-2 00:36

=ROUNDUP(A1+1E-13,0)-0.1
作者: sunnyso    時間: 2013-11-2 00:37

=CEILING(A1+1E-13,1)-0.1
作者: c_c_lai    時間: 2013-11-2 07:49

有什麼 rounding 函數可以讓例如:

180.05
73.50
79.90
45.20

全部進位為 0.90

答案:
180.90
...
Qin 發表於 2013-11-1 22:55

提供你兩種模式處理方式:
1.  使用公式:
  1. =INT(A1)+0.9
複製代碼
.   .   .   .    .
  1. =INT(A4)+0.9
複製代碼
2.  使用 VBA 處理:
  1. Sub Ex()
  2.     Dim rng As Range
  3.    
  4.     For Each rng In Range("A1", Range("A" & Rows.Count).End(xlUp))
  5.         rng.Offset(, 1) = Int(rng) & ".9"
  6.     Next
  7. End Sub
複製代碼
如果使用 Round 方式: (譬如: A3 =  79.9;  E3 = ?)
  1. =ROUND(A3,0)+0.9
複製代碼
或者是
  1. Sub Ex()
  2.     Dim rng As Range
  3.    
  4.     For Each rng In Range("A1", Range("A" & Rows.Count).End(xlUp))
  5.         rng.Offset(, 1) = Int(rng) & ".9"
  6.         rng.Offset(, 4) = Round(rng, 0) & ".9"
  7.     Next
  8. End Sub
複製代碼
E3 的結果等於 80.9。
所以使用 INT() 會去掉 number 的小數部份而傳回剩下的整數 (79.9)。
如考慮有負值時,則建議使用 Fix() 函數。
作者: ML089    時間: 2013-11-2 14:38

回復 1# Qin

樓主,>7.9 <8.0 這一段是要變成 7.9或8.9
作者: Qin    時間: 2013-11-2 14:42

回復  Qin

樓主,>7.9
ML089 發表於 2013-11-2 14:38



    7.90 沿用
    8.00 就進位為 8.90
作者: ML089    時間: 2013-11-2 18:01

回復 13# Qin

明確來講就是 >=7.0, <8.0 都是 7.9
用 INT(數值)+0.9比較明確

不建議使用 ROUND函數




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)