エクセルで、源泉税額を計算する


税務署から配布される、源泉徴収月額表をもとに、所得税額を計算している人も多いと思います。「電子計算機等を使用して、源泉徴収税額を計算する方法を定める大蔵省告示」という、文書が告示されています。これを元に、エクセルで税額を自動計算させてみましょう。

平成25年1月に改正された、告示は以下のようになっています。別表1は変更ありません。  (更新:H25.1.15 25年度用です。)

別表第一(給与所得控除額の計算式)

その月の社会保険料控除語の金額(A)

給与所得控除の額

以上

以下

円 

135,416円 

54,167円

135,417円 

149,999円 

(A)×40%

150,000円 

299,999円 

(A)×30%+15,000円

300,000円 

549,999円 

(A)×20%+45,000円

550,000円 

833,333円 

(A)×10%+100,000円

833,334円以上

(A)×5%+141,667円

別表第二(扶養控除の計算)

配偶者控除の額

31,667円

扶養控除の額

31,667円×扶養親族の数

基礎控除の額

31,667円

別表第三(月額源泉税額の計算)  平成25年1月より変更  (復興特別所得税に変更され、増税になりました。)

その月の給与所得金額(B)

税額の算式

以 上

以 下

円 

162,500円 

(B)×5 .105

162,501円 

275,000円 

(B)×10 .210%− 8,296

275,001円 

579,166円 

(B)×20 .420%−36,374

579,167円 

750,000円 

(B)×23 .483%−54,113

750,001円 

1,500,000円 

(B)×33 .693%−130,688

1,500,001円以上

(B)×40 .840%−237,893

社会保険料等控除した金額から、別表第一・第二で計算した額を控除し、この金額に対して別表第三で税額を計算します。なお、別表第一は1円未満切り上げ・別表第三は10円未満を四捨五入という注があります。

シート関数ifで計算するには(この先の式は、画像なので修正してありません。別表3の赤数字に変更してください。

条件分岐が6つと6つの組み合わせになるので、これを1行のif文に書くのは無理です。そこで2つに分け、控除金額を計算してから、源泉徴収額を計算することにします。

A1のセルに、社会保険等控除後の給与額を、B1に扶養家族数(配偶者を含む)があるものとします。そこで、C1には別表1・2で控除金額を計算する式を入れます。

=if(A1<135417,54167,そうでないとき)の形になりますが、「そうでないとき」もif()文です。ここからはifの前の=は要りません。

 「そうでないとき」は、A1が150000円より小さいときは、A1の40%なので、if(A1<150000,A1*0.4,そうでないとき2)が入ります。

=if(A1<135417,54167,if(A1<150000,A1*0.4,そうでないとき2))となり、
最後の)は、2重になりますが、さらに「そうでないとき2」もif()文になり「そうでないとき3」が入り、結局「そうでないとき4」までの、5重の)で閉めることになります。

この式は138文字になっており、これに更に4つの分岐をif文で記述すると、制限の255文字を越えてしまいます (この256文字制限は、エクセル95までで97以降は1024文字まで使えます。)。ただし、これでは不十分なので、もう少し追加します。

1円未満を切り上げて、整数にする

これには、ROUNDOUP関数を使います。上のif文全体を、=ROUNDUP(if文,0)とします。

更に、扶養家族分を加えることにします。自分の分があるので、+31667*(B1+1)を最後に追加します。これで、162文字の式になりました。式は、文字数の他()の数・参照座標の数(30個まで*この制限は97以降も同じです)で制限を受けます。

税額計算の式

これも、if文で分岐させますが、こちらも5重で終わります。D1に=A1−C1を書き、ここに控除後の給与額があるものとします。

 

更に、「10円未満四捨五入」という条件を加えます。これには、ROUND関数を使います。ROUND関数は四捨五入・ROUNDUP関数は切り上げ・ROUNDDOWN関数は切り下げです。いずれも、桁数を2番目の引数に指定しますが、正数が小数点以下・負数が小数点以上の桁数です。10円の位に四捨五入は−1を指定します。

月額表の税額との違い

簡易計算のための月額表は、いくら以上・いくら未満で段階を付けてあります。実際はその中間の数字で表が作られているので、こちらの計算式の方が正しいものです。月額表と全く同じにしたければ、もう一つif関数でランクの中間値に換算する式を作ります。しかし、この方が大蔵省の指定通りの税額です し、年末調整での誤差調整は少なくなります。。

マクロ関数への応用

この関数をまとめて、ひとつの関数にすることもできます。この場合は、モジュールシートにマクロ関数を記述します。詳細は、こちらを見て下さい。if関数とともに、サンプルのファイルがあります。ダウンロードして、下さい。

賞与の源泉計算について

前月の社会保険料控除後の給与額から、賞与に乗ずる税率を求める表があります。これを、エクセルで自動計算させたいという場合、換算表をif関数で実現するのは困難です。表の数値は、何らかの数式の結果ではなさそうです。そこで、この表を丸ごとデータとしてシートに書き込み、給与の額と扶養家族数から読み取るようにします。具体的には、MATCH関数を使いますが、その他INDEX関数・INDIRECT関数・ADDRESS関数を駆使します。「テーブルから参照する」を見てください。

乙欄の源泉税額計算について

作って見ました。こちらをご覧下さい。

表紙へ