Googleスプレッドで関数を使う(日付系関数のうまい使い方)その3

締切日や満了日など、業務上日付をいろんな形で扱うことは多いはず。

指定した日の○ヵ月後は何年何月何日?

開始日から翌々月の月末を締め切りにしたいけど、簡単にできないかな?

などの悩みを解決できる関数があります。

ここでは、EDATE関数とEOMONTH関数の使い方について、わかりやすく図解付きで解説していきます。

ここで解説する関数一覧

日付を処理する関数はいろいろありますが、ここでは次の関数の使い方を解説しています。

基本的には起算日から月数を動かしてその値を表示する関数です。

関数名概要
EDATE起算日から指定した月数だけ前または後ろの日付を返します
EOMONTH 起算日から指定した月数だけ前または後ろの月の最終日の日付を返します 

EDATE関数で○ヵ月後or○ヵ月前の日付を計算する

EDATE関数は指定して起算日から、指定した月数だけ前、または後ろの日付を返す関数です。

構文は以下のとおり。

=EDATE(開始日,月数)

早速ですが、関数を仕掛けた結果を見ながら解説します。

見やすいようにセルの表示設定を以下のようにしています。

年・月・日を表示し曜日も()付の表示形式にしてみました。

B列にEDATE関数をそれぞれ仕掛けています。

例えばセルB2には、以下のように書いています。

=EDATE(A2,1)

(C列にそれぞれ関数も表記しています)

上記の構文では、 開始日=セルA2の値  月数=1  としています。

セルB3のように、開始日より、指定した月数(今回は1なので1か月後)が長い(12月は31日まで)ときは、1か月後として、12月30日を表示します。

セルB4のように、翌月が開始日の月より短い場合は、1か月後として月末の日付を表示してくれます。

EDATE関数の引数を全てセルの値参照にする

月数を直すのに、いちいち関数の値を修正していては面倒ですよね?

この書き方が美しいわけではありませんが、[月数]もセルの値を参照するように作ると、見た目にも何か月後を指定したのかわかりやすく、変更も容易になると思います。

セルB2には以下のように書いています。

=EDATE(A2,D2)

セルD5を見ると、マイナスの値を指定しています。

マイナスの値を入れると、その値の月数分、開始日から遡った日付が返されます。

EOMONTH関数で○ヵ月後or○ヵ月前の末尾を表示する

EOMONTH関数はEDATE関数と似ていますが、計算結果が異なります。

EOMONTH関数は、指定した月数後(前)の末日を表示します。

構文は以下のとおり。

=EOMONTH(開始日,月数)

EDATE関数と書き方も一緒ですね。

ちなみに「エンド オブ マンス」と読むそうです。(ちょっとかっこいい・・・)

必ず月末の日付を返しますので、「締切日を日数関係なく翌月末までとする」とか、末日をうまく利用したいときに活躍する関数です。

実際に関数を仕掛けたイメージはこんな感じです。

セルB2には以下のように書いています。

=EOMONTH(A2,D2)

(C列に記述した式を記載しています)

開始日が何日だろうと、指定した月数後の末日が表示されていますね。

EDATE関数同様、全てセル参照で値を指定できるので、そのように使い方が便利でしょう。

また、EOMONTH関数も、[月数]にマイナスの値を指定できます。開始日から遡った月の末日の値が帰ってきます。

まとめ

今回はEDATE関数とEOMONTH関数を解説しました。

月の日数はその月によって30日だったり31日だったりするので、こういった関数があると、日数を無視して、○ヵ月後の日付を簡単に表示できるので便利です。

また、月末締めなどの処理はEOMONTH関数を使うことで、かなり簡単になると思うので、使いどころを見極めて使ってみてはいかがでしょうか?

コメント