[Excel] 翌月(1か月後)の末日を表示する EOMONTH(日付セル,1) *別解(頭の体操)あり
【まとめ】
翌月(1か月後)の末日を表示する計算式
=EOMONTH(日付セル,1)
〇か月後の同日を表示するなら
=EOMONTH(日付セル,〇) *〇に数値が入る(当月なら「0」)
*「〇か月」後となる「月数」は別セルに入れると修正が楽。
【説明】
前記事では「翌月(1か月後)の同日を表示する EDATE(日付セル,1) *別解あり」を説明しましたが、今回は「月の末日」を表示する計算式です。
「お役所」ではあまり「末日締め」の「翌月払い」みたいなことはしませんが、締め切り設定などで使う場合があるかもしれません。
EOMONTHで月末日を出す
計算式は簡単です。「まとめ」のとおりです。
EOMONTH関数について
マイクロソフトサポートには
EOMONTH(開始日, 月)
と出ています。
そのまんまですね。
「月」のところは直接「月数」を入れてもいいのですが、セルを指定しておいた方が修正が楽です(計算式内に変数を直接入れるのは御法度)。
EOMONTHとは、END OF MONTH の略で、「月の終わり」。
そのまんまなので、覚えやすいかと思います。
EOMONTHで月の初日も出せる
EOMONTH関数は「月末日」を出す関数ですが、「月の初日」も出せます。
考え方は簡単。
「初日を求めたい月の前月の月末日」に1を足せばいいんです。
「〇か月後の月の初日」は「〇か月後の前の月の末日の翌日」と同じ、ということです。
文字にすると、ちょっとややこしいけど、当たり前のことです。
具体的には
EOMONTH(基準日,〇か月後-1)+1です。
実際に計算式を作ってみると以下の通りです。
11月の翌月(1か月後)の初日は、1か月後の月の前月(11月)の月末日の翌日、ということです。
下の方は、DATE関数を使って出したものです。
こちらは、
DATE(基準日の年,基準日の月+〇か月,1)
なので、分かりやすいでしょう。
月末日はDATE関数でもさせる(頭の体操)
以下はおまけです。
「〇か月後の末日」をDATE関数で出さないか、考えてみました
EOMONTH関数を知らない場合、の想定です。
EOMONTH関数の存在は調べればすぐにわかりますが、頭の体操ということで。
DATE(年,月,日)で年月日になりますが、月末日は月によって違います。
特定の日の指定はできません。
月によって変化させるのも難しい。
しかし、「月末日」は「翌月の初日の前の日」です。これはどの月の月末日にも当てはまります(当たり前)。
月の初日はDATE関数で設定できます。
DATE(年,月,1)です。
この「月」が「基準日の〇か月後の月の翌月」
つまり「基準日の月の〇か月+1か月」となればいいので、
DATE(年,月+〇か月+1,1)とすると
「基準日の〇か月後の月の翌月の初日」になります。
この前日が「基準日の〇か月後の月の月末日」になります。
つまり、1日引けばいいので、
DATE(年,月+〇か月+1,1)-1
となります。
実際に計算式を入れてみると、以下の通りです。
こうやって出す人は少ないでしょうけれど、こういう頭の体操も、必要だと思っています。