・DATE関数とYEAR関数、MONTH関数の組み合わせ方
・IF関数とDAY関数の組み合わせ方
・請求日によって支払日を自動変更する方法
練習用サンプルデータ(ダウンロード)
※シートは練習用と成果物(解答)の2種類あります。閲覧したい方はダウンロードして下さい。
請求日の翌月15日が支払日と決めつつ、請求処理の締め日を毎月25日などと決めている会社などがあります。そうっいた場合、25日までに請求書を発行していれば、支払日が15日であるが、26日以降だと、翌々月15日が支払日となります。
このように締め切りの前か後かで支払日が変わる場合はIF関数を使って条件分岐する必要があります。
(手順)
‘1)下の方に、翌月15日支払と翌々月15日支払を計算して表示しておく
‘2)計算した両方の支払日付から、IF関数を使い、請求日によって支払日を表示
(練習で実施する支払日の自動計算の完成図)
※beforeの状態を、afterの状態まで仕上げる過程を説明します。
例題は、25日までの請求発行は翌月15日支払。26日以降は、翌々月15日支払となるよう支払期限を設定する問題です。
練習サンプルデータは、ダウンロードファイルのシート「練習用」となります。

‘【1】請求日によって支払日を自動設定
‘(1)請求月の翌月支払を計算
まず、セルB27に、請求日を元に、翌月支払日を自動表示する計算を組みます。
‘①セルB27を選択し、fxをクリックし関数の挿入画面を開く。

’②「関数の検索」ボックスに「DATE」と入力し「検索開始」をクリック。その後、「関数名」の中のDATEを選択し、「OK」をクリックしてください。

‘③すると、DATE関数のダイアログボックスが表示されます。「年」のボックスにマウスのカーソルが当たっていることを確認してください。

‘④「年」のボックスが選択された状態で、「名前ボックス」のプルダウンに「YEAR」があれば、YEARを選択します。選択肢にYEARがない場合は、「その他の関数」を選択してください。今回はないこと想定して「その他の関数」を選択して進めます。

‘⑤すると、関数の挿入のダイアログボックスが表示されます。

‘⑥関数の検索で「YEAR」と入力し検索開始をクリックし。その後、YEARが選択されていることを確認し、OKをクリック。

‘⑦YEAR関数のダイアログボックスが起動されるので、シリアル値に、セルG3を選択してください。まだOKは押さないように。

‘⑧数式バーのDATEの文字の上をクリックしてください。すると、DATE関数のダイアログボックス画面に戻ります。そして次は月のボックスを選択してください。

‘⑨名前ボックスから月を表示させる「MONTH」関数を選択します。
リストにない場合は、「その他の関数」を選択し、検索してMONTH関数を選んでください。

‘⑩MONTH関数のダイアログボックスが起動したら、シリアル値に請求日のセルG3を選択してください。
まだ、OKは押さないでください

‘⑪数式バーのDATEの文字をクリックしてください。すると、DATE関数の入力画面に戻ります。

‘⑫「月」に「+1」を足してください。(請求月の翌月支払の為) そして、「日」に15と入力してください。(15日支払の為)その後、OKをクリック。

‘⑬すると、セルB27に請求日の翌月15日が表示されました。

‘(2)請求月の翌々月支払を計算
先ほど作った翌月支払の数式を利用して計算します。翌々月なので、B27の数式をコピーしたものをB28に貼付け、月のボックスをさらに+1を加えると翌々月になります。
‘①セル27を選択し、数式バーの数式の中身をマウスで範囲選択し、数式をコピーします。コピーのショートカットキー(CTRLキー押しながらCキーを押す)

‘②キーボードのESCキーを1回押してコピーモードを一旦解除しておきます。
そして、セルB28を選択し貼付けてください。(CTRLキー+Vキー)
すると、B27と同じ計算式が貼り付けられます。

‘③セルB28を選択した状態で、fxをクリックしDATEの修正画面を起動します。

‘④月のボックスの「+1」を「+2」に修正し、OKをクリック

‘⑤セルB28に翌々月の支払日が表示されました。

(3)支払期限に支払日を表示する。
IF関数を使って、請求月が25日以内なら翌月15日。26以降なら翌々月15日となるよう計算します。
‘①セルB7を選択し、fxをクリックし、関数の挿入画面を起動します。

‘②「関数の検索」ボックスに「IF」と入力し「検索開始」ボタンをクリック。
その後、「関数名」で「IF」を選択し、「OK」をクリック

‘③IFのダイアログボックスが開いたら、論理式を選択し、名前ボックスから「DAY」関数がないか確認してください。ない場合はその他の関数から検索します。今回、ない場合の想定で、その他の関数を選択します。

‘④関数の挿入のダイアログボックスが起動されます。関数の検索のボックスでDAYと入力し検索開始をクリック。関数名でDAYを選択し、OKをクリック。
※DAY(G3)は請求日の日にちを取り出す関数。

‘⑤シリアル値に請求日のG3を選択し数式バーのIFの文字をクリック

‘⑥するとIFのダイアログボックスが起動されます。

‘⑦論理式に25日以上(>=25)を追記します。
※日にちが、25以上かどうかの判定式を追記します。

‘⑧条件式を満たす場合は、セルB28を表示。満たさない場合はB27を表示となるよう入力し、OKをクリック。

‘⑨支払期限が正しく計算されました。

(4)補足
27行目と28行目の日付が記載している行が邪魔に感じるため、削除したい場合のやり方。(行を非常時する以外のやり方を紹介)
支払期限の数式の中に、B28とB27があります。ここに、セルB28の数式とB27の数式を代入するだけです。数式の中に、B27とB28が消えてしまえば、削除してもエラーになりません。

1)支払期限の数式の中に、セルB27の数式を代入
‘①セルB27を選択して、数式バーから、「=」を除く数式を範囲選択しコピー(CTRLキー+Cキー)します。その後、ESCキーを押してコピーモード解除しておく

‘②次に支払期限のセルB7を選択し、数式バーの中のB27を範囲選択します。

‘③貼付けます。(CTRLキー押しながらVキー)を押して、ENTERキーをクリックする。
すると、セルB7の数式からB27のセル表示が消えました。

‘④同じようにセルB28も同様にやると、支払期限のB7の数式は以下になります。
支払期限の数式から、B28もB27のセルも消えました。

‘⑤27行と28行を削除すると以下になります。エラー表示などなく、正常に計算されます。

【3】まとめ
契約検収が締め日に間に合うか、間に合わないかよって、支払日が異なってくるケースが多いかと思います。そういった時に、お役に立つようであれば、ご参考にしていただけたらと思います。






