改造へのヒント

---これであなたも脱初心者---


<初めに>
 ここでは、御自分で給与支払明細書を改造する際に最低限理解しておく必要がある項目を解説します。
最初にかならず御一読下さい。
もし、ここに書いてあること・・・特に1〜3番までの項目が理解できない場合は申し訳ありませんが改造はおやめください。

  1. セルの座標位置(セルのアドレスといいます。)の表示方法
     エクセルでは、セルのアドレスは横の列番号と縦の行番号で表されます。
    あなたのエクセルでは、セルのアドレスは横の列番号がアルファベット、縦の行番号が数字で表されていますか?
    ここではセルのアドレスを、列:アルファベットと行:数字で解説しています。
    もしお使いのエクセルが、横の列番号も数字になっている場合は、アルファベットにして下さい。
    やり方は、「ツール」メニューから「オプション」を選択し、「全般」タグを押して、「R1C1参照形式を使用する」のチェックマークをはずし、OKボタンを押します。

  2. 相対セル参照と絶対セル参照($マークの使い方)
     新規にエクセルを起動し、次の数字をそれぞれのセルに入力して下さい。

    数字  セルのアドレス
    10     B3
    20     B4
    30     B5

    どうですか? 縦一列に入力できましたか?
    次にこの数字を参照する"式"をセルに入力します。

    式   セルのアドレス
    =B3    D7

    セルD7に入力する"式"はキーボードから半角入力してもいいですし、=記号を押してからマウスでターゲットとなるセル(ここではB3)をクリックしてもいいです。
    セルD7に"10"が表示されましたね。
    では次に、このセルD7を下方向に2回(つまりD8とD9のセルに)コピーして下さい。
    どうですか? セルD8に20が、セルD9に30が表示されましたね。
    このようにエクセルでは、式(ここでは=B3)をコピーするとその式が参照しているセルのアドレスが自動的に修正され、セルD8には=B4、セルD9には=B5という新しい修正後の式がコピーされます。
    今回は縦方向にコピーしたので、式の中の行番号が3から4、5へと修正されました。
    セルD8とセルD9をクリックして中の式をそれぞれ自分で確認して下さい。

    次に進む前に、セルD7,D8,D9を全部消しておいて下さい。

    今度は、セルD7に =B$3 とキーボードから半角入力して下さい。
    そしてこれをさっきと同じように下方向へ2回(つまりD8とD9のセルに)コピーして下さい。
    どうですか? 今度はすべて10になりましたね。
    コピー元の式の行番号3の前に$マークをつけたので、行番号3が修正されなかったのです。

    このように、コピーすると自動的に修正されるようなセルのアドレス指示を相対セル参照といいます。
     B3 といった指示方法だと、列番号も行番号も自動的に修正されるわけです。
    これに対し、$B$3 といった指示方法だと、コピーしても列番号も行番号も修正されなくなります。
    このように$マークを前につけてセルのアドレスを固定する方法を絶対セル参照といいます。

    このワークシートでは、あなたが入力した給与の金額を基に、源泉表から税額を拾ってきます。
    IF関数が参照している源泉表の中のセルのアドレスは固定ですので、$マークを使って絶対セル参照しています。
    御自分でこの関数をあちこちコピーして使うときは、$マークを使って税額を拾いに行くセルを固定していることを、どうかくれぐれもお忘れなく。

  3. 扶養人数の異なる社員の混在について
     社員の扶養親族等の人数は、それぞれ違うことがあります。
    この場合、給料支払明細書の下にある計算式を他のエクセルのファイルからコピーして使うことになります。
    しかしエクセルでは、他のファイルから計算式をコピーすると、いろいろと余計な修正をしてくれます。

    まずは解凍してできた"給与明細"フォルダを、あらかじめデスクトップに移動して下さい。
    次に、元になる表として"給与明細"フォルダの中の"扶養0給料.xls"を開いてください。
    これからこれをいじるので、先に必ず別の"名前を付けて保存"しておいて下さい。(基本ですね。)

    あなたがいま"名をつけて保存"した表の1人目(左側)に入力する社員は、扶養親族等が0人だとします。
    この社員の源泉税は、源泉表の扶養人数0人の税額を参照すればいいので、このまま使うものとします。

    次に、2人目(中央)の社員は扶養親族等が2人だとします。
    この場合、この社員の源泉税は源泉表の扶養人数2人の税額を参照しなければなりませんので、ファイル名"扶養2給料.xls"の計算式をコピーして使うことにします。
    "扶養2給料.xls"を開き、そこの2人目の社員の税額計算式Q39からQ419までのセルを範囲指定して"コピー"して下さい。
    (水色と黄色で色が塗ってあるところ全部です。)
    次に、これを元の(あなたが名前をつけて保存した)表の2人目の社員の税額計算式のあるところQ39からQ419に"貼り付け"して下さい。

    これで計算式のコピーができたのですが、しかしエクセルが計算式を勝手に修正しています。(うちのエクセルではそうなります。)
    そこでこれをコピーする前の状態、つまり"扶養2給料.xls"にある計算式とまったく同じ状態に手で修正し直してください。

    やり方は、あなたが名前をつけて保存した表の2人目の税額計算式のあるところQ39をクリックして下さい。
    すると修正後のながーーい計算式が

    =IF(Q$38>=[扶養2給料.xls]源泉!$A3,IF(Q$38<[扶養2給料.xls]源泉!$B3,[扶養2給料.xls]源泉!$E3,-1),-1)

    あるいは、

    =IF(Q$38>='C:\WINDOWS\デスクトップ\給与明細\[扶養2給料.xls]源泉'!$A3,IF(Q$38<'C:\WINDOWS\デスクトップ\給与明細\[扶養2給料.xls]源泉'!$B3,'C:\WINDOWS\デスクトップ\給与明細\[扶養2給料.xls]源泉'!$E3,-1),-1)

    と表示されます。(Windows版の場合。環境により多少変わります。)

    このままではこのIF関数は、給与明細フォルダの中のエクセル・ブック"扶養2給料.xls"の中のワークシート"源泉"を探しに行ってしまいます。
    ワークシート"源泉"は、扶養0給料.xlsでも扶養2給料.xlsでも、他のエクセル・ブックのワークシート"源泉"でもすべて同じです。
    いちいち他のエクセル・ブックのワークシート"源泉"をみる必要はありません。
    そこでIF関数が、あなたが名前をつけて保存したエクセル・ブックの中にあるワークシート"源泉"を参照するように修正します。
    よけいなディレクトリ名 Q$38>=[扶養2給料.xls]源泉!$A3,IF(Q$38<[扶養2給料.xls] (あるいは、C:\WINDOWS\デスクトップ\給与明細\[扶養2給料.xls]) をすべて削除すればいいのです。
    このとき、ディレクトリ名の最初と最後をあらわす ' 記号も2個ずつありますので、これも忘れずに削除して下さい。

    =IF(Q$38>=源泉!$A3,IF(Q$38<源泉!$B3,源泉!$E3,-1),-1)

    となればOKです。ずいぶんスッキリしましたね。

    次にこのセルQ39を、その下の水色のセルすべてにコピーします。
    黄色のセルにはコピーしてはいけません。
    黄色のセルの計算式は、いちいち手で修正して下さい。要領はさっきと同じく、よけいなディレクトリ名を削除するだけです。

    すべてコピーできたら、いくつか金額を入力してテストしてみましょう。
    水色のセルの計算式だけでなく、黄色のセルの計算式も正しく動作していますか?
    税務署配布の源泉徴収税額表(月額表)とにらめっこしながら、テストは必ず行って下さい。
    最後に動作確認をきっちりテストするのが鉄則です。


  4. ちょっと関数の解説
     もっと詳しく理解したいという方のために、関数でやっていることを解説します。
    これが理解できれば、たとえば社会保険料の自動計算をさせる、といった応用も将来可能かと思います。

    まず、ファイル名"扶養0給料.xls"を開けて下さい。これを例に解説します。

  5. 給与支払明細書の所得税の欄に税額を入れる
     給与支払明細書の所得税の欄(セルE26)には、

      =MAX(E39:G419)

    という関数が入っています。
    MAX関数というのは、その範囲内で最大値を選択する、という関数です。
    つまりセルE39からG419までの範囲内で最大値を取ってくるわけです。
    IF関数が偽の場合はマイナス値 -1 が入っていますから、ここでの最大値は必ず第二条件の真の場合の答え、つまりゼロ以上の源泉税額になります。
    したがって必ず源泉税が選択されるのです。


どうですか? ご理解いただけたでしょうか?