税務署から配布される、源泉徴収月額表をもとに、所得税額を計算している人も多いと思います。「電子計算機等を使用して、源泉徴収税額を計算する方法を定める大蔵省告示」という、文書が告示されています。これを元に、エクセルで税額を自動計算させてみましょう。
平成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関数を駆使します。「テーブルから参照する」を見てください。
乙欄の源泉税額計算について
作って見ました。こちらをご覧下さい。
●表紙へ