エクセルで月末の日付を計算する
A1セルにシリアル値で日付が入っている場合、
エクセルで月末の日付を計算したいときは、
で計算できます。
あるいは、
汎用的な関数である「date」関数を使って、
で計算できるようにしておくほうが
(他の課題への)応用がききます。
個人的には、
エクセルを本気で使いこなしたいのであれば、、
応用範囲が広い、
date関数を使った計算方法を理解することを
おすすめしています。
月末の日付を計算する方法
eomonth関数を使わずに、
月末の日付を計算するのは、
少し難しいところがあります。
なぜかというと、
月末の日付は、次の表のように、
月末が何日かが、年・月によって変わるからです。
- 1月、3月、5月、7月、8月、10月、12月
-
月末は31日
- 4月、6月、9月、11月
-
月末は30日
- 2月(通常年)
-
月末は28日
- 2月(うるう年)
-
月末は29日
もちろん、これを素直に計算式に実装してもいいのですが、
特に、うるう年の部分が大変です。
シリアル値を使って計算する
そこで、
直接日付(年・月・日)を計算する代わりに、
シリアル値を使って計算をします。
シリアル値を使うと、
- ある日の前日
- ある日の翌日
といった日付を簡単に計算できます。
そして、
毎月「1日」のシリアル値も、
date関数を使うと、簡単に求められます。
そこで、
- date関数を使って「翌月1日」のシリアル値を計算して
- その日の1日前の日付を計算することで「今月月末」の日付を計算します
翌月初の日付を計算する
A1セルにシリアル値で日付が入っている場合、
エクセルで翌月初の日付は、
で計算できます。
※この関数は(ある意味)賢くて、
A1セルが12月だった場合も、自動的に、
翌月(=翌年1月)1日のシリアル値を取得してくれます。
1日前の日付を計算する
上記日付の「1日前」が、求める日付です。
1日前の日付を計算するためには、
「1を引けばいい」ので、
で、計算できることになります。
実際に使うときには、次のような形で使うことも多いです。
「○年△月0日」が「○年△月1日」の1日前として取り扱われますので、先ほどの計算式と同じ意味になります。