ExcelのTIPS

【EXCEL】ある日付から期限日を自動で入力するEDATE関数

ExcelのTIPS

今日はEXCELを使った期限管理の話。

仕事をしていると、一定の期間が過ぎたら破棄や確認をしなければならない書類がでてくる。
こうした書類をEXCELで管理する場合は、書類の作成日や受領日に応じて自動で期日を入れると捗る。これにはEDATE関数を使う。

EDATE関数とは

EDATE関数は、「ある日から数ヶ月目の期日」を出す関数。
具体的に、A1セルに2018/2/1とあった場合、
=EDATE(A1,2)であれば、2018/4/1という答えが返る。

実務だとここまで単純ではなく、条件ごとに数ヶ月目という部分が変わるのが常だ。だから、条件付けに相性の良いVLOOOKUP関数を使う。
IF関数でも良いが、条件が多くなったり変更があると、いちいちセルを直さなきゃいけないから、VOOKUPをおすすめする。

EDATEとVLOOKUPをあわせる

まず出来上がりのイメージはこんなの。

書類の種類と作成日を入れると、
自動で破棄日が入る。

破棄日のセルに入っている関数はこんな感じだ。

=IFERROR(EDATE($D3,VLOOKUP($C3,条件!$A$2:$B$4,2,FALSE)),””)
作成日をもとに、”条件”シートで当てはまる条件の月数を加算して破棄日をだす。もし空欄やエラーがあれば、破棄日のセルには何も表示しない。」

まず、条件をVLOOKUPで拾ってくるために、EDATE関数とは別のシートに、条件一覧をつくる。EDATEと同じシートに入れてもいいが、行列の追加削除で壊れる可能性があることは留意が必要だ。

書類の種類に応じて、月数を入力する。
日数や年数ではないので注意が必要だ。

あとはこの条件をひっぱるためのVLOOKUP関数を入れるが、条件範囲は絶対参照をつけることをおすすめする。
マウスで「条件!$A$2:$B$4」
の部分をクリックしたら、F4を押すだけだ。これで「条件シート」内の行列の追加削除にも対応できる。

IFERROR関数は、エラーを明示したいなら入れなくてもいい。

ちなみに、期日の前に何かをしなくてはならない場合、数日前の日付を表示するようにアレンジしてもいい。例えば、期日をすぎると法令違反になるような場合だ。この場合は、上記の関数に引きたい日数を入れる。

=IFERROR(EDATE($D3,VLOOKUP($C3,条件!$A$2:$B$4,2,FALSE))-1,””)

こうすると、EDATE関数で算出した日付の一日前が表示される。

まとめ

期日の算出はIF関数でもできるが、条件が複数の場合は複雑になりがちだ。こうした場合にEDATE関数とVLOOKUP関数の合わせ技を試してもらいたい。

タイトルとURLをコピーしました