月末の日を調べる


日付は操作が難しいデータのひとつです。月は12進数ですし、毎月の日数は月によって異なります。さらに、閏年などという特殊なケースもあったりして。ところが、ビジネスの現場では、否が応でも日付に関する計算や処理が必要になります。ここでは、ある月の月末日を調べる方法を解説しましょう。

EOMONTH関数を使う

実はExcelには、そのものズバリの関数があります。EOMONTH関数です。EOMONTH関数は、End Of Monthの略で、引数に指定した月の月末日を返します。書式は次の通りです。

EOMONTH(開始日, 月)

引数「開始日」には、任意の日付を指定します。引数「月」には、引数「開始日」から数えて、何ヶ月後の月末日を返すのかを指定します。たとえば、引数「開始日」に2009/01/15を指定し、引数「月」に1を指定したとします。するとEOMONTH関数は、2009/01/15から数えて1ヶ月後に該当する2009年2月の月末日を返します。

引数「開始日」には、日付を表すシリアル値を指定します。まぁ実際には「=EOMONTH("2009/01/15",1)」のように文字列で指定しても正しく計算してくれますが、その場合は、指定した文字列が日付として有効でなければなりません。特別な理由がない限り、シリアル値を指定した方がいいでしょうね。引数「月」は"○ヶ月後"を表しますので、当月(ここでは2009年1月)の月末日を調べたいのでしたら0を指定します。前月(ここでは2008年12月)でしたら-1です。

なお、Excel 2007では、それまで「分析ツール」アドインで提供されていた特別な関数を、アドインを組み込まなくても使用できるようになりました。詳しくは「分析ツールの関数が標準で使える」をご覧ください。

標準の関数で月末日を調べる

月末日は、EOMONTH関数を使わなくても調べることができます。ここでは、1月の月末日を例に考えてみましょう。また、式を簡単に表すため、基準となる日(ここでは2009/01/15)がセルB2に入力されているものとします。

ある月の月末日とは、その翌月1日の前日です。

ということは、
(1)月末日を調べたい月の翌月を求めて
(2)その翌月の1日から1を引いた日
が月末日ということになります。