端数処理の基本|切り捨て・切り上げ・四捨五入の違いとExcel関数
例:1234.5678 → 小数第2位で 1234.56 / 1234.57 / 1234.57
消費税、割り勘、時給計算、利息——お金や時間の計算では必ず「端数」が出ます。どの方法で処理するかで結果が1円・1分変わり、請求書の金額が合わない、Excelの集計が合わないといったトラブルの原因になります。この記事では、3つの端数処理の違いと場面ごとのルール、Excel関数の使い分けを整理します。
3つの端数処理の違い
| 方法 | 意味 | 12.34 → 整数 | 12.56 → 整数 | 12.50 → 整数 |
|---|---|---|---|---|
| 切り捨て | 端数を無条件に捨てる | 12 | 12 | 12 |
| 切り上げ | 端数があれば無条件に上げる | 13 | 13 | 13 |
| 四捨五入 | 5以上なら上げ、4以下なら捨てる | 12 | 13 | 13 |
ポイントは「どの桁で処理するか」を必ず決めることです。「小数第1位を四捨五入して整数にする」「10円未満を切り捨てる」のように、桁の指定がないと結果が人によって変わります。
場面別:どの方法を使うのがルール?
消費税(請求書・レシート)
法律上の指定はなく、事業者が切り捨て・切り上げ・四捨五入のいずれかを選べます。多くは切り捨てです。ただしインボイス制度(2023年10月〜)では、1つの請求書につき税率(10%・8%)ごとに1回だけ端数処理を行う決まりで、商品1行ごとに端数処理することは認められていません。
給与計算(労働時間)
労働時間の端数は原則として切り捨てできません(1分単位で計算)。例外として、1か月の合計時間に30分未満の端数があれば切り捨て、30分以上なら1時間に切り上げる処理は認められています(行政通達)。日ごとに15分未満を切り捨てるといった処理は賃金未払いになるため違法です。
銀行の利息
預金利息は1円未満切り捨てが一般的です。
割り勘・会費
ルールはありませんが、集金しやすいように10円・100円単位で切り上げ、余りを幹事が調整するのが一般的です。
Excelの端数処理関数の使い分け
| 関数 | 処理 | 例:=関数(1234.5678, 2) | 例:=関数(1234.5678, -2) |
|---|---|---|---|
| ROUND | 四捨五入 | 1234.57 | 1200 |
| ROUNDDOWN | 切り捨て | 1234.56 | 1200 |
| ROUNDUP | 切り上げ | 1234.57 | 1300 |
| TRUNC | 切り捨て(ROUNDDOWNと同じ) | 1234.56 | 1200 |
| INT | 小さい方の整数へ(桁数指定不可) | =INT(1234.5678) → 1234 | |
桁数の指定:0で整数、正の数で小数点以下の桁数、負の数で整数部分の桁(-1=十の位、-2=百の位)です。「10円未満切り捨て」なら =ROUNDDOWN(金額, -1)、「100円単位に切り上げ」なら =ROUNDUP(金額, -2) と書きます。
負の数での落とし穴:INTとTRUNCの違い
| 関数 | =関数(-3.7) | 動き |
|---|---|---|
| INT | -4 | 常に小さい方の整数へ(床関数) |
| TRUNC | -3 | 0に近い方へ切り捨て |
| ROUNDDOWN(,0) | -3 | 0に近い方へ切り捨て |
マイナスの金額(返金・値引き)を扱う表でINTを使うと、意図より1大きく引かれることがあります。切り捨ての意味で使うならTRUNCかROUNDDOWNが安全です。
倍数で丸める:CEILING・FLOOR・MROUND
「500円単位に切り上げ」「15分単位に切り捨て」のように、任意の倍数で丸めたいときは次の関数を使います。
=CEILING(金額, 500):500の倍数に切り上げ(1,234 → 1,500)=FLOOR(時間, 15):15の倍数に切り捨て(52分 → 45分)=MROUND(数値, 5):5の倍数に四捨五入(13 → 15、12 → 10)
四捨五入と「偶数丸め(銀行丸め)」の違い
実は「.5」の扱いには2つの流儀があります。学校で習う四捨五入は.5を常に切り上げますが、JIS Z 8401や多くの科学計算では結果が偶数になる方へ丸める「偶数丸め」(銀行丸め、round half to even)が使われます。
| 値 | 四捨五入 | 偶数丸め |
|---|---|---|
| 0.5 | 1 | 0 |
| 1.5 | 2 | 2 |
| 2.5 | 3 | 2 |
| 3.5 | 4 | 4 |
プログラマー向け:ExcelのROUNDは四捨五入ですが、Pythonのround(2.5)は偶数丸めで2を返します。JavaScriptのMath.round(-2.5)は-2(正の無限大方向に丸める)です。言語やツールをまたいで集計すると結果がズレることがあるため、仕様を確認して統一しましょう。
よくあるミス:途中計算で四捨五入した値を使って再計算すると、合計が合わなくなります(例:各行を四捨五入してから合計 ≠ 合計してから四捨五入)。端数処理は最後に1回だけ行うのが基本です。インボイス制度の「税率ごとに1回」というルールも同じ考え方です。
まとめ
端数処理は「切り捨て・切り上げ・四捨五入」のどれを「どの桁で」行うかを先に決めること、そして途中ではなく最後に1回だけ行うことが鉄則です。Excelでは用途に応じてROUND/ROUNDDOWN/ROUNDUPを使い分け、負の数ではINTとTRUNCの違いに注意してください。消費税や割り勘の端数は、消費税計算・割り勘計算ツールが自動で処理します。