見出し画像

[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
となります。

実際に計算式を入れてみると、以下の通りです。

基準日の月の3か月後の末日は
基準日の月の(3+1)か月の日の前日(-1)です。


こうやって出す人は少ないでしょうけれど、こういう頭の体操も、必要だと思っています。



いいなと思ったら応援しよう!