昨日のNETWORKDAYS関数に続き、Excelで日付の計算をしたい気分の時の話。
月初めは必ず「1日」なのでいいとして、問題は月末。例えば、シート上で月をドロップダウンリストから切り替えると自動的に月末が28〜31で可変になるようにしたいとき、月末は固定するわけにはいかない。閏年もあるから、2月は年によっても変わってしまう。
そこで月末を指定するのに個人的によく使うのが
翌月1日の1日前
=DATE(年,翌月,1)-1
ただし、12月だけは年をまたぐので、年が関係する計算の時は要注意。
・・・と思っていたら、もっとスマートな方法があった。
=EOMONTH(開始日, 月)
例)今月の月末
=EOMONTH(TODAY(),0)
End of month の略か? こんな関数あるの気づかんかった。でもこの関数はネットワークの日々関数と同様に、「ツール → アドイン → 分析ツール」にチェックを入れておかないと使えない。配布したり誰が使うかわからないようなExcelファイルの場合は、やっぱり「翌月1日の1日前」の方が確実そう。
日付関係の扱い方は、以前、Excelで万年カレンダーを作ったときに覚えた。万年カレンダーづくりは、これからExcelの関数を覚えようという人にはいい練習になるのでオススメ。