エクセル・スプレッドシートで消費税を計算する式

更新日

エクセルやGoogle スプレッドシートで消費税を出すときは、「金額*10/100」「税込*10/110」のように整数で掛けて割り、ROUNDDOWN(切り捨て)・ROUND(四捨五入)・ROUNDUP(切り上げ)で1円未満を処理する式をおすすめします。どの方式で端数を処理しているかが式から読み取れ、ほかの仕組みに移しても結果が変わらないためです。請求書では、SUMIFで税率ごとに合計してから1回だけ端数処理します。Google スプレッドシートでも同じ関数が使えます。

1つの金額なら消費税計算、請求書なら請求書の消費税計算で、式の結果と同じになるかを確かめられます。

このページの式の前提

例では、A2に金額を入れ、ほかのセルに式を書きます。金額は1円単位の整数で入れてください。ROUNDDOWNなどの最後の「0」は、小数点以下を0桁にする、つまり1円未満を処理するという意味です(Microsoft ROUNDDOWN 関数)。

税抜から消費税額と税込を出す

  • 消費税額(10%・切り捨て):=ROUNDDOWN(A2*10/100,0)
  • 税込金額(10%・切り捨て):=A2+ROUNDDOWN(A2*10/100,0)
  • 8%なら、10を8に変えます:=ROUNDDOWN(A2*8/100,0)、=A2+ROUNDDOWN(A2*8/100,0)

A2が1234なら、10%の消費税額は123、税込は1357です。A2が999なら、8%の消費税額は79、税込は1078です。

端数処理の3つの関数

同じ式の関数を入れ替えると、方式を変えられます。下の表はA2が1005(10%)のときです。

方式式(10%の消費税額)A2が1005のとき
切り捨て=ROUNDDOWN(A2*10/100,0)100
四捨五入=ROUND(A2*10/100,0)101
切り上げ=ROUNDUP(A2*10/100,0)101

表の結果は、このサイトの計算と同じです。

どの方式を使うかは自由で、インボイスに書く消費税額も、切り上げ・切り捨て・四捨五入のどれでもよいとされています(国税庁 インボイスQ&A 問57)。

税込から税抜を逆算する

  • 消費税額(10%・切り捨て):=ROUNDDOWN(A2*10/110,0)
  • 税抜金額(10%・切り捨て):=A2-ROUNDDOWN(A2*10/110,0)
  • 8%なら:=ROUNDDOWN(A2*8/108,0)、=A2-ROUNDDOWN(A2*8/108,0)

消費税額を先に出して税込から引く方法で、このサイトの逆算と同じです。A2が11000なら消費税額1000・税抜10000、A2が1000なら消費税額90・税抜910です。この910から税込を出し直すと1001になり、元の1000に戻りません。

元に戻らないのは式の誤りではなく、税込1,000円ちょうどになる税抜金額が無いためです。理由は1円ずれる理由で説明しています。

税抜を直接出す =ROUNDDOWN(A2*100/110,0) は、国税庁の問59の例(580円×100/110≒527円)と同じ方法です。消費税額を先に出す式とは1円違うことがあり、A2が580なら、税抜を直接出す式は527、消費税額を先に出す式は528です。

1.1で割る式について

「=A2/1.1」のように1.1で割る式は、Google スプレッドシートでは、整数で掛けて割る式と同じ結果になりました。=ROUNDDOWN(110/1.1,0) は100です。税込1円から10万円までの10万通りで、「÷1.1して切り捨て」「×1.1して切り上げ」「÷1.08して切り捨て」「×1.08して切り捨て」を整数の式と比べ、違いは0通りでした(2026年10月27日に確認)。エクセルでは確かめていません。

一方、このサイトと同じJavaScriptのように、小数のまま計算するプログラムではずれます。110÷1.1は99.99999999999999になり、切り捨てると99円です。同じ10万通りで、「÷1.1して切り捨て」は4,174通り、「×1.1して切り上げ」は5,524通りで1円違いました。

表計算の式をあとで会計ソフトやマクロ、プログラムに移すことがあるなら、はじめから整数で掛けて割る式にしておくと、移した先でも同じ結果になります。

請求書:税率ごとに合計してから1回だけ端数処理する

明細の金額をA2〜A51に、税率をB2〜B51に入れる例です。税率は「10」か「8」の数字で入れます。

  • 10%対象の合計:=SUMIF(B2:B51,10,A2:A51)
  • 10%の消費税額(税抜で入力・切り捨て):=ROUNDDOWN(SUMIF(B2:B51,10,A2:A51)*10/100,0)
  • 8%の消費税額(税抜で入力・切り捨て):=ROUNDDOWN(SUMIF(B2:B51,8,A2:A51)*8/100,0)
  • 明細を税込で入れた場合は、*10/100を*10/110に、*8/100を*8/108に変えます。

明細ごとに =ROUNDDOWN(A2*B2/100,0) を出してSUMで足す方法は、インボイスに書く消費税額としては認められません(問57)。

問57の参考の表の金額(10%は11345と12549、8%は9987と12345、税抜)で比べると、税率ごとに1回なら消費税額は2389と1786、明細ごとに足すと2388と1785になります。

Google スプレッドシートとの違い

ROUND・ROUNDDOWN・ROUNDUP・SUMIFはGoogle スプレッドシートにもあり、引数の並びも同じです(Google スプレッドシートの関数リスト)。このページの式は、そのまま書けます。このページの計算例は、Google スプレッドシートに式をそのまま入れて確かめた結果です(2026年10月27日)。

よくある質問

税込の明細の合計から、消費税だけを出すには

10%なら =ROUNDDOWN(SUMIF(B2:B51,10,A2:A51)*10/110,0)、8%なら =ROUNDDOWN(SUMIF(B2:B51,8,A2:A51)*8/108,0) です。税率ごとの税抜は、税込の合計からこの消費税額を引いて出します。

四捨五入にしたいときはどう変えますか

ROUNDDOWNをROUNDに変えます。切り上げならROUNDUPです。式のほかの部分は変えません。

出典

関連ページ