2014-02-07 69 views
1

使用Excel for Mac。我想要公式將十進制數字舍入到分數。我希望的最小增量是1/16(我可以很容易做到),但我想自動降低至十六分1/81/4,並且1/2在適當的時候(這裏不四捨五入)。減少表示0.0625增量的分數

  1. 只有四捨五入到最接近的16位。 (我都四捨五入到最接近1/16的分數)
  2. 但隨後降低了分數,如:

14/16 - 這應該成爲7/8
12/16 - 這應該成爲3/4
8/16 - 這應該成爲1/2

所以最後,我將有分數的大型Excel工作表,有的小1/16,和一些較大。

我該怎麼做?

+0

它是2011年的Excel。我可以將它設置爲格式爲兩位數,但它將保持爲兩位數。我想在適用時將1/16數字轉換爲1/8,1/4和1/2。到目前爲止,我只能看到如何爲一組值設置1約定......但不是多個。 – AgileMan

回答

0

我收集你確實有格式化分數的一些功能。 Excel 2007中的例子有:

SO21634379 example

我正在考慮「做數學」中的0.0625倍數達到數(小數),然後應用格式只是出場。

+1

謝謝......原本這不起作用,因爲我忘記了先把它們四捨五入變成一個可以被0.0625整除的數字。一旦我做到了,而不是這個選項的工作。 – AgileMan

0

這將適用於0和1之間的值。選擇單元格並運行這個小宏:

Sub FixFormat() 
Dim r As Range, v As Variant, s As String 
Dim numerator As Long 
Selection.NumberFormat = "General" 
For Each r In Selection 
    v = r.Value 
    If v >= 0 And v <= 1 Then 
     r.NumberFormat = "??/16" 
     numerator = CLng(Split(r.Text, "/")(0)) 
     Select Case numerator 
      Case 0, 1, 3, 5, 7, 9, 11, 13, 15 
      Case 2, 6, 10, 14 
       r.NumberFormat = "# ?/8" 
      Case 4, 12 
       r.NumberFormat = "?/4" 
      Case 8 
       r.NumberFormat = "?/2" 
      End Select 
    End If 
Next r 
End Sub 

該宏將檢測該值並應用正確的格式。

0

舍入至1/16份

ROUND(YourNumber * 16,0)/ 16

然後,小區設置到兩位數餾分。他們會自動減少到1/2,1/4,1/8,1/16。四捨五入掉落「額外」部分。這可以與圓形和圓形一起使用。