はじめに
EXCELで業務管理などをしていると、ある月の月末日を求めたくなることがある。
これを自力でやろうとすると、結局はうるう年の判定処理を自前で実装することになって多大な労力を強いられることになる。
もっと簡単に月末日を知ることができないものかと色々調べてみると、実は関数を一つ呼び出すだけで実現できることが分かった。
もちろんうるう年の判定などもすべて自動で行ってくれる。
今回はその便利な関数を紹介する。
EOMONTH 関数
その便利な関数は「EOMONTH 関数」だ。
当月のみならず、過去や未来の月の月末日を求めることもできる優れものだ。
下の例では、A列に入力された日付に対応する月末日がB列に表示されるような式が設定されている。
上図においてB2セルに設定されている式の内容は以下の通りだ。
=EOMONTH(A2, 0)
上式の意味は、A2セルから0か月後の月の月末日を求めよという意味になる。
0か月後とはすなわち当月のこととなるため、2020年1月の月末日が表示されているわけだ。
うるう年の判定も自動的に行われるため、2月の月末日を求める場合にも、その年がうるう年かどうかを意識する必要はない。
例えば下図において2020年はうるう年なので2月の月末日は29日となっているが、2022年はうるう年ではないので2月の月末日は28日となっている。
過去月や未来月の月末日を求めるには
当月の月末日を求める場合には、前述の例では、EOMONTH 関数の第2引数に 0 を設定していた。
過去月や未来月の月末日を求める場合には、この第2引数に当月からの月数の差分を入力すればよい。
なお、過去と未来を区別するために、過去はマイナス値で表現し、未来はプラス値で表現する仕様となっている。
すなわち、nか月前の月の末日を求めるには「-n」を入力し、nか月後の月の末日を求めるには「n」を入力すればよいのだ。
具体的な例を示そう。
前出の表を改修して、恐らく最も使用機会が多いと思われる前月末日を求める式を追加してみた。
C列が追加された部分で、A列に入力された日付に対応する前月末日が表示されるようになっている。
例えばC2セルには、以下のような式が設定されている。
=EOMONTH(A2, -1)
上図の式では、EOMONTH 関数の第2引数に -1 を設定しているため、1か月前の月の末日が計算されている。
Googleスプレッドシートでも利用可能
EOMONTH 関数は、Googleスプレッドシートでも利用可能となっている。
以下の例は、A列に入力された日付に対応する月末日をB列に表示するものだ。
前出のEXCELの場合と同様の式をEOMONTH 関数を使用して設定している。
EXCELの場合と全く同じ結果が得られていることが分かるだろう。
まとめ
EXCELやGoogleスプレッドシートで、ある月の月末日を求める方法を紹介した。
当月のみならず過去月や未来月の末日を求めることも可能となっている。