請求書の合計が1円合わない──端数処理は「どこで1回」がすべて
明細ごとに消費税を丸めてから合計するか、税抜合計を出してから1回だけ丸めるかで、請求書の総額は1円ずれることがあります。ROUND関数で端数処理の設計を先に固定する考え方を整理します。
Excelで請求書を作っていて、明細を1行ずつ足していった合計と、別の計算式で出した総額が1円だけ合わないという経験をしたことはないでしょうか。検算しても数式に間違いは見当たらず、原因がよく分からないまま「まあ1円だから」で片付けてしまいがちな現象です。
結論を先に書きます。
**この1円ズレの正体は、多くの場合「端数処理をどの段階で行うか」が明細ごとの計算と合計後の計算で食い違っていることにあります。**明細ごとに税額を丸めてから合計するか、税抜金額を全部足してから最後に1回だけ丸めるかで、結果が変わってしまうのです。
「明細ごとに丸める」と「合計してから丸める」は別の計算
具体例で見てみます。税抜330円・税抜330円・税抜330円という3行の明細(消費税10%)があるとします。
- 明細ごとに丸めてから足す:330円×10%=33円(税込363円)を3行分足すと、税込合計は 1,089円
- 税抜合計を先に出してから1回だけ丸める:330円×3=990円、990円×10%=99円(端数なし)なので税込合計は 1,089円
この例ではたまたま一致しますが、330円が331円のような端数を含む単価になった瞬間、明細ごとの丸め誤差が積み重なって合計後の丸めと1円単位でズレ始めます。原因は計算ミスではなく、「丸めのタイミング」という設計をあらかじめ決めていなかったことにあります。
インボイス制度が示している端数処理の考え方
この問題に対して、適格請求書(インボイス)の仕組みでは端数処理は1つの請求書につき、税率ごとに原則1回までという考え方が示されています。明細行それぞれで税額の端数処理を繰り返すのではなく、税率ごとの合計額に対して最後に1回だけ丸める、という設計です。
これは「明細ごとに丸めた方が正確に見える」という直感とは逆で、丸め処理を1箇所に集約することでズレの発生源を1つに絞るという発想だと理解すると腹落ちしやすくなります。実際の要件は個別の取引形態によって細部が異なることがあるため、正確な適用は国税庁の公表資料でご確認ください。ここで押さえておきたいのは「端数処理の回数と場所は、計算を始める前に決めておくべき設計事項だ」という考え方そのものです。
ExcelのROUND関数で設計を先に固定する
Excelで請求書を組むときは、次の2点を先に決めてから数式を書くと事故が減ります。
- どの段階で丸めるか:明細ごとか、税率ごとの合計後か
- どちらに丸めるか:四捨五入(ROUND)か、切り捨て(ROUNDDOWN)か
同じ数値でも ROUND と ROUNDDOWN では結果が変わり、さらに小数点第何桁で丸めるかという桁数の指定を間違えると、また別のズレが生まれます。Excel丸め関数を整える では、同じ数値をROUND・ROUNDUP・ROUNDDOWNなど8種類の関数で同時に比較でき、消費税の端数処理のような実務プリセットも用意されています。税率の掛け算そのものを確認したいときは 消費税を整える も合わせて使うと、どこで数字が動いているのかを見失わずに済みます。次に請求書のテンプレートを作るときは、ROUND関数を書く前に「丸めるのはどこで1回か」を紙に書き出してみることをおすすめします。