Excel で見積書を作成する際に単価などを整数桁(百円単位)などで切り上げしたいケースは良くあります。
Excel では、ROUNDUP 関数の2番目の引数をマイナス数値で指定すると、整数桁での切り上げが可能です。
このとき、単価が数十万~数円単位まで、広範囲に渡っていると、頭から3桁程度を有効にして切り上げできるように関数を組み合わせると、あとはコピー&ペーストで一気に処理できます。
単価(数値)の桁数は10の対数の整数部分で得られます。 また、最小の切り上げ単位を10円で設定すると、セルの関数は下のようになります。
=ROUNDUP([セル参照],MIN(2-INT(LOG10([セル参照])),-1))
OpenOffice.org Calc でも全く同じ関数で問題なく動作します。
2011/08/95 選択範囲の数式を有効桁数付の切上げ数式に変換するマクロを作成しました。
' 有効桁数3桁で切上げ
Sub Kiriage3Keta()
Dim c As Range
With Selection
For Each c In .Cells
If c.Formula <> "" Then
f = c.Formula
key = Right(f, Len(f) - 1)
new_formula = "=ROUNDUP(" & key & ",MIN(2-INT(LOG10(" & key & ")),-1))"
c.Formula = new_formula
End If
Next
End With
End Sub
' 有効桁数2桁で切上げ
Sub Kiriage2Keta()
Dim c As Range
Dim key, new_format, f As String
With Selection
For Each c In .Cells
If c.Formula <> "" Then
f = c.Formula
key = Right(f, Len(f) - 1)
new_formula = "=ROUNDUP(" & key & ",MIN(1-INT(LOG10(" & key & ")),-1))"
c.Formula = new_formula
End If
Next
End With
End Sub