この月の月末は何日?DATE関数で月末日を求める

解説記事内の画像はExcel 2013のものですが、操作方法は下記のバージョンで同じです。
  • Excel 2013, 2010, 2007
Excel 2013・2010・2007用 練習ファイル
(date-end-of-month.xlsx  9.88KB)

スポンサーリンク

月末に「締め」が発生するお仕事をしている方にとって、書類にその月の末日を記載することは、なかなかの頻度で発生するのではないでしょうか?
でも、月末って、30日で終わる月もあれば、31日で終わる月もあったりとバラバラですし、2月にいたっては28日しかないのに、うるう年には29日になったりします。

そんなわけで、月末日を書類に書くために、毎回カレンダーを確認している方もいらっしゃると思います。
そこで今回は、「年」と「月」を指定するだけで、その月の末日を勝手に表示してくれるよう、関数を使って数式を組み立てたいと思います!

月末日を求めるには、EOMONTH関数を使う方法もありますが、今回はDATE関数を使う方法をご紹介します。
言われてみれば当然なのだけれど、意外と思い浮かばない「日付処理のアイディア」を、DATE関数の実用例としてご紹介していきますヨ。

スポンサーリンク

「月末」をどう考えるか?

DATE関数で月末を求める01 今回はG1番地に、A5番地で指定した「年」と、C5番地で指定した「月」の末日が表示されるようにしてみます!

DATE関数で月末を求める02 ここでいきなり「日付処理のアイディア」を!
今回は月末日を求めたいわけですが、その月によって30日だったり31日だったりするから、ややこしく感じるわけです。
でもですよ、その逆の「月初」は、必ず「1日(ついたち)」から始まるわけです。
1月は「1日(ついたち)」から始まるけど、2月は「3日」から始まるとか、そういったことは絶対無く、必ず「1日(ついたち)」から始まります。
そして更に、「1日(ついたち)」の前日は、必ず前の月の末日になります。

DATE関数で月末を求める03 ということは、まずは末日を知りたい月の、翌月の1日(ついたち)を求めさえすれば、必然的にその前日が、知りたい月の月末日ということになります!
というわけで、C5番地の数字の「次の月」、つまりC5番地の数字に「1」を足した月のことを求めていくんだ!ということを念頭に入れ、早速、操作に入っていきましょう!

DATE関数で月末を求める01 後ほど、指定した月の末日が表示されるようにするものの、とりあえず最初に求めたいのは、A5番地で指定されている「年」、C5番地で指定されている「月」の、翌月の1日(ついたち)。
A5番地とC5番地が、図のように指定されているなら、答として「2015/10/1」と表示されるようにしたいわけです。
ただ、このように「年」や「月」が別々のセルに入力されているときは、それらの数字をドッキングして、1つのセルにまとめないと、「2015/10/1」のように、1つのセルの中に「日付」として表示させることはできません。
というわけで、今回使う関数は、バラバラに収められた年・月・日の情報をドッキングして、1つのセルに「日付」としてまとめてくれるDATE関数となります。

DATE関数で月末を求める04 とりあえず、「翌月の1日」から求めていくものの、その後で、その前日である月末日を表示させるようにするので、月末日を表示させたいセルを選択し、[関数の挿入]ボタンをクリックします。

DATE関数で月末を求める05 表示されたダイアログボックスで、「DATE」を選択します。
ちなみに、関数を選択するときの便利な方法は、「Excel 関数 基本のキ(まずはここから編)」でご紹介していますので、こちらも見ていただけたら嬉しいです。)
「DATE」を選択後、[OK]ボタンをクリックすると、

DATE関数で月末を求める06 DATE関数の引数を設定するダイアログボックスが表示されるので、まずは引数「年」から設定していきましょう。
「年」となる数字は、A5番地に入力されているので、引数「年」の欄には「A5」と設定します。

DATE関数で月末を求める07 続いて、引数「月」の設定。
「月」となる数字は、C5番地に入力されていますが、ここで求めるのは、この月の翌月なので、C5番地の1ヶ月後の月となるよう「C5+1」と設定します。

DATE関数で月末を求める08 引数「日」の設定は深く考えずに、シンプルに考えます。
今回求めたいのは「C5番地に入力されている月の翌月」の「1日(ついたち)」。
つまり、日は必ず「1日」(ついたち)となってほしいので、引数「日」の欄には「1」と入力します。
すべての引数を設定し終わったので、[OK]ボタンをクリックすると、

DATE関数で月末を求める09 末日を知りたい月の、翌月の1日(ついたち)を求めることができました!

スポンサーリンク

更に「前日」を求めよう!

DATE関数で月末を求める10 G1番地に、「翌月の1日(ついたち)」を表示させるようにしたものの、結局このセルには、その前日である「1日前」の日付が表示されなければいけないので、その処理をしていきましょう。
G1番地を選択した状態で数式バーを見ると、先ほどG1番地に入力した数式が確認できます。

DATE関数で月末を求める11 この数式で求めた日付の「1日前」を求めればいいわけですから、数式の最後に「-1」と入力します。
日付の足し算・引き算では、「1」は「1日分」のことになるので、「-1」とすることで、「1日分引く」ことができるわけです。
[Enter]キーなどで数式の入力を確定すると、

DATE関数で月末を求める12 DATE関数で求めた「翌月の1日」から、更に「1日分を引いた」日付、つまり知りたい月の末日を求めることができました!

DATE関数で月末を求める13 改めてG1番地を選択した状態で数式バーを見ると、今回設定した数式が確認できます。

DATE関数で月末を求める14 「年」にあたる数字、「月」にあたる数字が、別々のセルに入力されているので、それらの数字をドッキングして、1つのセルの中に年・月・日の情報が揃った「日付」として表示されるよう、使うのはDATE関数
このDATE関数で求めた日付から、1日分引いてね、という処理をしています。

今回ご紹介した「日付処理のアイディア」を活用すれば、「翌々月の末日」なども表示させることができます!
次のページで、操作のチェックがてら力試しを!

スポンサーリンク