EOMONTH(エンドオブマンス)関数
=EOMONTH(開始日,月)
■開始日から、指定した月数だけ前または後の月末の日付を取り出す

 「当月末」の日付を求めるには、EOMONTH関数を使う【注】。引数に「開始日、経過月」を指定すると、開始日から指定しただけ後の月末の日付を取り出せる関数だ。図では、「開始日」をF3セルの今日の日付(ここでは2002/1/24)とし、「経過月」は当月なので「0」とすれば、「2002/1/31」と当月末の日付を表示できる。

【注】 EOMONTH関数は、初期状態では組み込まれていない「アドイン」関数の一つ。組み込むには、「ツール」メニュー→「アドイン」を選び、設定画面で「分析ツール」をオンにする。

「当月末」の日付を求めるには、EOMONTH関数を使う。「開始日」をF3セルの今日の日付(2002/1/24)、「経過月」は当月なので「0」とすれば、当月末の「2002/1/31」を表示できる
DATE(デイト)関数
=DATE(年,月,日)
■数値で指定した年、月、日に対応する日付データを求める
DAY(デイ)関数
=DAY(日付)
■日付データから「日」の値だけを数値として取り出す

 “別解”として、DATE関数と、YEAR関数、MONTH関数を使う方法もある。DATE関数は引数に「年、月、日」を数値で指定すると日付データを求められる。YEAR関数は引数に指定した日付から「年」だけを数値として取り出す関数、MONTHは日付から「月」だけを数値で取り出す関数だ。

末日は常に「翌月1日の前日」であることに着目した別解。翌月1日を求め、そこから「1」(シリアル値で1日分)を引けば「当月末」がわかる

 月末の日付は月によって変わるが、常に「翌月1日の前日」であることに注目する。つまり、ひとまず翌月1日を求め、そこから「1」(シリアル値で1日分)を引けば、「当月末」が表示できる。

 この方法を覚えておくと、「閏(うるう)年の判定」などもできる(下図)。まず「A3セルで指定した年の3月1日」を求め、そこから「1」を引く(B3セル)。これで、「指定した年の2月末日」がわかる。この日付の「日」が29日なら閏年、それ以外(28日)なら普通の年だ。DAY関数でB3セルの日付の「日」だけを取り出し(C3セル)、それが29日なら「○」を表示できるように、IF関数の式を立てればよい(D3セル)。

閏(うるう)年の判定には、指定した年の3月1日から「1」を引いて2月末日を求める(B3セル)。この日付の「日」が「29」日なら閏年だ