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

日付を指定すると、その当月の月初日/月末日を表示します。
DATE関数」を使用します。
月初/月末日の算出
(画像をクリックすると、このサンプルがダウンロードできます)
DATE関数の引数は「年」「月」「日」の3つです。
「月初日」の算出は、DATE関数で「指定日」の年、月と日は「1」固定でOKです。

「月末日」は変動するのですが、「月初日」の「翌月1日」を算出し、そこから「1」を差し引きます。
月初/月末日の算出
MONTH($D$2)+1」は、このサンプルでは12月に「1」を加えているので「13」になるのですが、DATE関数は「13月の場合は翌年1月」として判断してくれます。こうしてDATE関数では「2017/01/01」が算出され、「1」を差し引いているので、「2016/12/31」となります。
※「翌月の1日を算出して1を引く」という説明を明確にするため、このように書きましたが、「1日から1を引く」、つまり「1から1を引く」わけです。

 =DATE(YEAR($B$2),MONTH($B$2)+1,0)
で同じ結果になります。「翌月のゼロ日は当月末日」ということです。

さて、Excel2007以降(*.xlsx、*.xlsm)ではEOMONTH関数」が追加されました。
EOMONTH関数は、「起算日からnヶ月後の月末日」を算出するものです。
上と全く同じサンプルで関数をEOMONTH関数に置き換えてみましょう。
月初/月末日の算出
EOMONTH関数は第1引数が「起算日」、第2引数が「経過月数(マイナス可)」ですから、当月末日を求める場合は「経過月数=0」となります。
一方、このサンプルでは月初日を求める方にもEOMONTH関数を使ってみました。DATE関数ではYEAR関数、MONTH関数と組み合わせなければなりませんでしたが、EOMONTH関数では、

 =EOMONTH($B$2,-1)+1
だけになりました。これは「前月末日の翌日」のいう計算になります。