源泉税エクセルで、源泉税額を計算する税務署から配布される、源泉徴収月額表をもとに、所得税額を計算している人も多いと思います。「電子計算機等を使用して、源泉徴収税額を計算する方法を定める大蔵省告示」という、文書が告示されています。これを元に、エクセルで税額を自動計算させてみましょう。平成25年1月に改正された、告示は以下のようになっています。別表1は変更ありません。(復興特別所得税に変更され、増税になりました。した金額から、別表第一・第二で計算した額を控除し、この金額に対して別表第三で税額を計算します。別表第一は1円未満切り上げ・別表第三は10円未満を四捨五入という注があります。シート関数ifで計算するには(この先の式は、画像なので修正してありません。別表3の赤数字に変更してください。)条件分岐が6つと6つの組み合わせになるので、これを1行のif文に書くのは無理です。そこで2つに分け、控除金額を計算してから、源泉徴収額を計算することにします。給与額を、B1に扶養家族数(配偶者を含む)があるものとします。そこで、C1には別表1・2で控除金額を計算する式を入れます。=if(A1<135417,54167,そうでないとき)の形になりますが、「そうでないとき」もif()文です。ここからはifの前の=は要りません。「そうでないとき」は、A1が150000円より小さいときは、A1の40%なので、if(A1<150000,A1*0.4,そうでないとき2)が入ります。最後の)は、2重になりますが、さらに「そうでないとき2」もif()文になり「そうでないとき3」が入り、結局「そうでないとき4」までの、5重の)で閉めることになります。(この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関数を駆使します。「テーブルから参照する」を見てください。乙欄の源泉税額計算について作って見ました。