「売上を千円単位に丸めたい」
「計算結果を小数第2位まで表示したい」
「見積書で切り上げ計算をして安全な金額にしたい」
そんなときに便利なのが、Excel(エクセル)のROUND関数をはじめとする丸め処理関数です。
数値の丸め処理は、ビジネスにおいて非常に重要な機能です。価格計算、在庫管理、財務レポート、統計分析など、様々な場面で正確で適切な丸め処理が求められます。しかし、ROUNDとROUNDUP、ROUNDDOWNの違いがよく分からず、間違った使い方をしてしまう人も少なくありません。
また、「なぜ0.1+0.2が0.3にならないのか」といった浮動小数点の問題や、「銀行丸め」といった特殊な丸め方法についても理解が必要です。
この記事では、Excelでの丸め処理(ラウンド)の基本をやさしく解説しながら、ROUND・ROUNDUP・ROUNDDOWNの正しい使い分け、実際のビジネスシーンでの活用例、さらによくある疑問と注意点も詳しく説明します。ぜひ最後まで読んで、日々の資料作りや帳票の精度アップに役立ててください。
【基本編】ROUND関数の完全理解

ROUND関数の基本構文
基本的な使い方
構文
=ROUND(数値, 桁数)
パラメータの説明
- 数値:丸めたい数値または数値を含むセル参照
- 桁数:小数点以下何桁まで残すか(負の値も可能)
桁数指定の考え方
正の値での指定
桁数 = 2 → 小数第2位まで残す
桁数 = 1 → 小数第1位まで残す
桁数 = 0 → 整数にする(小数点以下なし)
負の値での指定
桁数 = -1 → 十の位で丸める
桁数 = -2 → 百の位で丸める
桁数 = -3 → 千の位で丸める
実際の計算例
正の桁数での丸め
元の数値 | 式 | 結果 | 説明 |
---|---|---|---|
123.456 | =ROUND(123.456, 2) | 123.46 | 小数第2位まで(四捨五入) |
123.456 | =ROUND(123.456, 1) | 123.5 | 小数第1位まで(四捨五入) |
123.456 | =ROUND(123.456, 0) | 123 | 整数に(四捨五入) |
負の桁数での丸め
元の数値 | 式 | 結果 | 説明 |
---|---|---|---|
1234.56 | =ROUND(1234.56, -1) | 1230 | 十の位で丸める |
1234.56 | =ROUND(1234.56, -2) | 1200 | 百の位で丸める |
1234.56 | =ROUND(1234.56, -3) | 1000 | 千の位で丸める |
四捨五入の規則
標準的な四捨五入
基本ルール
- 5以上:切り上げ
- 4以下:切り捨て
具体例
=ROUND(2.5, 0) → 3 (5なので切り上げ)
=ROUND(2.4, 0) → 2 (4なので切り捨て)
=ROUND(2.6, 0) → 3 (6なので切り上げ)
=ROUND(2.49, 1) → 2.5 (9が5以上なので切り上げ)
特殊なケース
正確に中間値の場合
=ROUND(2.5, 0) → 3
=ROUND(3.5, 0) → 4
=ROUND(-2.5, 0) → -3
=ROUND(-3.5, 0) → -4
注意点
- Excelは常に「5以上切り上げ」を使用
- 一部のシステムで使われる「銀行丸め」(偶数丸め)とは異なる
【比較編】ROUND・ROUNDUP・ROUNDDOWNの使い分け
3つの関数の特徴
ROUND(四捨五入)
特徴
- 最も一般的な丸め方法
- 統計的にバランスが良い
- 日常的な計算に適している
使用例
=ROUND(12.34, 1) → 12.3
=ROUND(12.35, 1) → 12.4
=ROUND(12.36, 1) → 12.4
ROUNDUP(切り上げ)
構文
=ROUNDUP(数値, 桁数)
特徴
- 常に大きい方向に丸める
- 安全な見積もりに使用
- 在庫確保などに適用
使用例
=ROUNDUP(12.31, 1) → 12.4
=ROUNDUP(12.35, 1) → 12.4
=ROUNDUP(12.39, 1) → 12.4
ROUNDDOWN(切り捨て)
構文
=ROUNDDOWN(数値, 桁数)
特徴
- 常に小さい方向に丸める
- 保守的な計算に使用
- 予算の上限設定などに適用
使用例
=ROUNDDOWN(12.31, 1) → 12.3
=ROUNDDOWN(12.35, 1) → 12.3
=ROUNDDOWN(12.39, 1) → 12.3
実際の比較表
元の数値 | ROUND | ROUNDUP | ROUNDDOWN | 用途例 |
---|---|---|---|---|
12.34 | 12.3 | 12.4 | 12.3 | 価格表示 |
12.35 | 12.4 | 12.4 | 12.3 | 税額計算 |
12.36 | 12.4 | 12.4 | 12.3 | 割引計算 |
-12.34 | -12.3 | -12.3 | -12.4 | 損失計算 |
-12.35 | -12.4 | -12.3 | -12.4 | 赤字管理 |
負の数での注意点
方向性の理解
正の数の場合
- ROUNDUP:より大きな値(12.3 → 12.4)
- ROUNDDOWN:より小さな値(12.4 → 12.3)
負の数の場合
- ROUNDUP:より大きな値(-12.4 → -12.3)
- ROUNDDOWN:より小さな値(-12.3 → -12.4)
実例
=ROUNDUP(-12.34, 1) → -12.3 (より大きな値)
=ROUNDDOWN(-12.34, 1) → -12.4 (より小さな値)
【実践編】ビジネスでの活用例

価格・金額計算
消費税計算
税込み価格の計算
# 基本的な計算
=ROUND(税抜価格*1.1, 0)
# 実例
=ROUND(A2*1.1, 0) # A2が税抜価格の場合
税額の個別計算
# 消費税額を別途計算
=ROUND(税抜価格*0.1, 0)
# 実例:税抜1000円の場合
=ROUND(1000*0.1, 0) → 100円
端数処理の選択
# 切り捨て(店舗によくある方式)
=ROUNDDOWN(税抜価格*1.1, 0)
# 切り上げ(安全な方式)
=ROUNDUP(税抜価格*1.1, 0)
割引計算
パーセント割引
# 10%割引の計算
=ROUND(元価格*0.9, 0)
# 割引額の計算
=ROUND(元価格*0.1, 0)
# より複雑な例:段階割引
=IF(数量>=100, ROUND(単価*0.8, 0),
IF(数量>=50, ROUND(単価*0.9, 0), 単価))
在庫・発注管理
発注数量の計算
安全在庫の確保
# 必要数量を切り上げ
=ROUNDUP(予想売上/包装単位, 0)*包装単位
# 実例:10個入りの商品で157個必要な場合
=ROUNDUP(157/10, 0)*10 → 160個
コスト最適化
# 送料無料ラインでの調整
=IF(発注金額>=送料無料ライン, 発注金額,
ROUNDUP(送料無料ライン/単価, 0)*単価)
給与・人事計算
労働時間の計算
残業時間の端数処理
# 15分単位で切り上げ
=ROUNDUP(実労働時間*4, 0)/4
# 30分単位で切り捨て
=ROUNDDOWN(実労働時間*2, 0)/2
# 実例:8時間17分の場合
=ROUNDUP(8.283*4, 0)/4 → 8.5時間(8時間30分)
給与計算
# 基本給の日割り計算
=ROUND(月給/稼働日数*勤務日数, 0)
# 時給計算(端数処理)
=ROUND(時給*労働時間, 0)
統計・分析
平均値の表示
適切な桁数での表示
# アンケート結果の平均(小数第1位)
=ROUND(AVERAGE(回答範囲), 1)
# 売上の月平均(千円単位)
=ROUND(AVERAGE(売上範囲), -3)
パーセンテージ表示
# 割合を小数第1位まで
=ROUND(該当数/全体数*100, 1)&"%"
# 成長率の計算
=ROUND((今年売上/昨年売上-1)*100, 1)&"%"
【応用編】高度な丸め処理テクニック
複数条件での丸め処理
条件付き丸め
金額レンジによる丸め方の変更
=IF(金額<=1000, ROUND(金額, 0),
IF(金額<=10000, ROUND(金額, -1),
ROUND(金額, -2)))
業界標準に合わせた丸め
# 建設業界:万円単位
=ROUND(見積金額, -4)
# 製造業:千円単位
=ROUND(製造コスト, -3)
# 小売業:十円単位
=ROUND(販売価格, -1)
カスタム丸め関数
VBAでの独自丸め処理
特定の倍数に丸める関数
Function RoundToMultiple(value As Double, multiple As Double) As Double
RoundToMultiple = Round(value / multiple, 0) * multiple
End Function
' 使用例:50円単位に丸める
=RoundToMultiple(237, 50) ' 結果:250
銀行丸め(偶数丸め)の実装
Function BankersRound(value As Double, digits As Integer) As Double
Dim factor As Double
Dim temp As Double
factor = 10 ^ digits
temp = value * factor
If Abs(temp - Int(temp)) = 0.5 Then
' 中間値の場合は偶数に丸める
If Int(temp) Mod 2 = 0 Then
BankersRound = Int(temp) / factor
Else
BankersRound = (Int(temp) + Sgn(temp)) / factor
End If
Else
BankersRound = Round(value, digits)
End If
End Function
配列での一括丸め処理
大量データの効率的処理
配列数式での一括丸め
# Excel 365の場合
=ROUND(A1:A1000, 2)
# 従来のExcelでの配列数式
{=ROUND(A1:A1000, 2)} # Ctrl+Shift+Enterで入力
条件付き一括丸め
# 正の値のみ丸める
=IF(A1:A1000>0, ROUND(A1:A1000, 2), A1:A1000)
【関連関数】その他の数値処理関数

INT関数とTRUNC関数
INT関数(整数部分の抽出)
基本的な使い方
=INT(12.89) → 12
=INT(-12.89) → -13 # 注意:負の数では小さい方の整数
ROUNDDOWNとの違い
=ROUNDDOWN(12.89, 0) → 12
=ROUNDDOWN(-12.89, 0) → -12 # より0に近い値
=INT(12.89) → 12
=INT(-12.89) → -13 # より小さい整数
TRUNC関数(切り捨て)
基本的な使い方
=TRUNC(12.89) → 12
=TRUNC(12.89, 1) → 12.8
=TRUNC(-12.89) → -12
ROUNDDOWNとの違い
- TRUNC:常に0方向に切り捨て
- ROUNDDOWN:指定桁数で切り捨て
CEILING関数とFLOOR関数
CEILING関数(指定倍数への切り上げ)
構文
=CEILING(数値, 倍数)
使用例
=CEILING(12.3, 1) → 13 # 1の倍数に切り上げ
=CEILING(12.3, 5) → 15 # 5の倍数に切り上げ
=CEILING(12.3, 0.5) → 12.5 # 0.5の倍数に切り上げ
FLOOR関数(指定倍数への切り捨て)
構文
=FLOOR(数値, 倍数)
使用例
=FLOOR(12.7, 1) → 12 # 1の倍数に切り捨て
=FLOOR(12.7, 5) → 10 # 5の倍数に切り捨て
=FLOOR(12.7, 0.5) → 12.5 # 0.5の倍数に切り捨て
MROUND関数(最も近い倍数への丸め)
基本的な使い方
構文
=MROUND(数値, 倍数)
実用例
# 時間を15分単位に丸める
=MROUND(8.23, 0.25) → 8.25 # 8時間15分
# 価格を50円単位に丸める
=MROUND(237, 50) → 250
# 在庫を10の倍数に丸める
=MROUND(157, 10) → 160
【注意点】浮動小数点と丸め誤差

浮動小数点の問題
よくある現象
予期しない計算結果
=0.1+0.2 → 0.300000000000004 # 0.3ではない
=0.1+0.2=0.3 → FALSE
丸め処理での対策
=ROUND(0.1+0.2, 10) = 0.3 → TRUE
実際の業務での問題例
価格計算での誤差
# 問題のある計算
単価 = 0.1
数量 = 3
合計 = 単価 * 数量 # 0.30000000000000004
# 改善された計算
合計 = ROUND(単価 * 数量, 2) # 0.30
丸め誤差の蓄積
連続計算での誤差
問題のあるパターン
# 各段階で丸めて累積誤差が発生
段階1 = ROUND(元値 * 係数1, 2)
段階2 = ROUND(段階1 * 係数2, 2)
最終 = ROUND(段階2 * 係数3, 2)
改善されたパターン
# 最終段階でのみ丸める
最終 = ROUND(元値 * 係数1 * 係数2 * 係数3, 2)
比較演算での注意点
安全な比較方法
問題のある比較
=IF(計算結果=期待値, "一致", "不一致")
安全な比較
=IF(ABS(計算結果-期待値)<0.001, "一致", "不一致")
# または
=IF(ROUND(計算結果, 2)=ROUND(期待値, 2), "一致", "不一致")
【実装例】実際のシステムでの応用
請求書システム
複雑な価格計算
# 基本料金の計算
基本料金 = ROUND(基本単価 * 数量, 0)
# 割引の適用
割引後金額 = ROUND(基本料金 * (1 - 割引率), 0)
# 消費税の計算
消費税額 = ROUND(割引後金額 * 0.1, 0)
# 最終金額
請求金額 = 割引後金額 + 消費税額
給与計算システム
複数手当の計算
Function CalculateSalary(baseSalary As Double, overtimeHours As Double, _
allowances As Double) As Double
Dim overtimePay As Double
Dim totalBeforeDeduction As Double
' 残業代計算(30分単位切り上げ)
overtimeHours = Application.WorksheetFunction.RoundUp(overtimeHours * 2, 0) / 2
overtimePay = Application.WorksheetFunction.Round(baseSalary / 160 * 1.25 * overtimeHours, 0)
' 総支給額
totalBeforeDeduction = baseSalary + overtimePay + allowances
' 社会保険料控除(千円未満切り捨て)
Dim socialInsurance As Double
socialInsurance = Application.WorksheetFunction.RoundDown(totalBeforeDeduction * 0.15, -3)
' 手取り額
CalculateSalary = totalBeforeDeduction - socialInsurance
End Function
在庫管理システム
発注点の計算
# 安全在庫の計算(切り上げ)
安全在庫 = ROUNDUP(平均使用量 * リードタイム * 安全係数, 0)
# 発注点の計算
発注点 = 安全在庫 + ROUND(平均使用量 * リードタイム, 0)
# 発注量の計算(最小ロット単位)
発注量 = CEILING(必要数量, 最小ロット)
まとめ
ExcelのROUND系関数は、正確で美しい数値表示と計算に欠かせない重要な機能です。適切な使い分けにより、業務の精度と効率を大幅に向上させることができます。
関数の使い分けガイド
ROUND(四捨五入)
- 用途:一般的な計算、統計処理、レポート表示
- 特徴:統計的にバランスが良い
- 推奨場面:日常的な数値処理全般
ROUNDUP(切り上げ)
- 用途:見積もり、安全在庫、発注量計算
- 特徴:常に安全側に計算
- 推奨場面:コスト予算、リスク管理
ROUNDDOWN(切り捨て)
- 用途:割引計算、税務処理、保守的な予測
- 特徴:常に控えめに計算
- 推奨場面:損失回避、厳格な予算管理
業務での実装ポイント
設計段階
- 業務要件の明確化:どの丸め方法が適切か
- 精度の設定:必要な小数点桁数の決定
- 誤差の許容範囲:計算精度の基準設定
実装段階
- 一貫性の確保:ファイル全体での統一
- 誤差対策:浮動小数点問題への対応
- 検証機能:計算結果の妥当性確認
運用段階
- 定期的な見直し:業務変化への対応
- ユーザー教育:正しい使い方の周知
- システム連携:他システムとの整合性
コメント