今日の日付から月初/月末日を算出する。

日付を指定すると、その当月の月初日/月末日を表示します。2種類の方法を案内します。





DATE関数」を使う方法です。

こちらが「月初日」です。

月初/月末日の算出
(画像をクリックすると、このページのサンプルがダウンロードできます)
DATE関数」は引数で年・月・日をそれぞれ指定することで日付のシリアル値が返る関数です。
ここでは年・月については「YEAR関数」「MONTH関数」で「指定日(B2セル)」から取り出し、 日は「1」固定としています。





こちらが「月末日」です。

月初/月末日の算出

同じく「DATE関数」を使います。
「月初日」と違うのは「月」に「1」を加算して「日」は「0」としています。つまり「翌月の0」ということです。
翌月の0」は「翌月の1日の前日」であり、これで正しく算出されます。



「指定日」を変更して試してみると判りますが、例えば12月の日付にした場合は、この数式の上では「当年130」で 「DATE関数」に渡されますが、正しく「当年1231」になります。



関数概略説明
 DATE関数  3つの独立した値を受け取り、それらを組み合わせて日付を作成します。
 引数は以下の通りです。
 ① 年
 ② 月
 ③ 日
 YEAR関数  日付に対応する年を返します。 引数は日付(シリアル値)です。
 MONTH関数  日付に対応する月を返します。 引数は日付(シリアル値)です。




EOMONTH関数」を使う方法です。

EOMONTH関数」は月末日を算出する関数なので、「月末日」を先に説明します。

月初/月末日の算出

EOMONTH関数」は第1引数で指定した日付(指定日)に対して、 「nヶ月後の月末日」のシリアル値が返る関数です。
今回は「当月月末日」なので第2引数で「0」を指定するだけです。





こちらが「月初日」です。

月初/月末日の算出

DATE関数」の月末日の算出同様に考えれば解ると思いますが、「月初日」は「前月月末日の翌日」です。
EOMONTH関数」の第2引数で「-1」を指定すれば「前月月末日」が得られるので、戻り値段階で「+1」します。



関数概略説明
 EOMONTH関数  開始日から起算して、指定された月数だけ前または後の月の最終日に対応するシリアル値を返します。
 引数は以下の通りです。
 ① 開始日
 ② 月数(前の月を指定する時はマイナス値)