[Excel] 整数桁の丸め(切り上げ) « MISCELLANEUOS DATA STORAGE

[Excel] 整数桁の丸め(切り上げ)

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

コメントをどうぞ