今日の 1 か月後は何月何日か、セル A1 の日付の 1 か月後は何月何日か、など、
開始日となる日付の数か月後の日付を表示したいときは、EDATE 関数を使います。

EDATE 関数は、Excel 2003 までは「分析ツール」をアドインで組み込まなければ利用できない
数でしたが、Excel 2007 や Excel 2010 であれば、標準で (特別なことをしなくても) 他の
ワークシート関数と同じように利用できます。


step1 EDATE関数について


EDATE 関数は、(ヘルプの説明だと) 「開始日から起算して、指定した月数だけ前または後の日付に対応するシリアル値を返します。」とのこと。
ようは、基準となる日付と、知りたいのは "何か月後" (または何か月前) なのかを指定すれば、
その日付を表示してくれる、ということですね。

数式は下記のように作成します。

=EDATE(開始日, )

開始日には、起算日となる日付を指定します。起算日となる日付が入力されているセルを指定する
ことができます。たとえば、セル A1 に起算日となる日付が入力されているのなら、A1 を指定します。
そのほか、「2012/10/1」のような特定の日付を指定するときは、シリアル値で指定したり、
「=EDATE("2012/10/1" , 1) のようにダブル クォーテーションで括って指定したりできます。

には、開始日から起算した月数を指定します。「1」の場合は 1 か月後、「2」の場合は
2 か月後、のように、正の値を指定すると開始日より後の日付が表示されます。
「-1」のようにの、負の値を指定すると 1 か月前など、開始日より前の日付が表示されます。


step2 1ヵ月後の日付を表示する


ここでは、セル C4 に入力されている日付を開始日として、1 か月後の日付をセル C6 に、
セル C2 にセル C4 の 1 か月前の日付を表示します。

1. セル C6 に、「=EDATE(C4 , 1)」となるように数式を作成して [Enter] キーを 押します。


2. セル C4 の日付 (2012/5/10) の 1 か月後の日付が表示されます。
このとき、日付ではなく、「41070」のようにシリアル値が表示されている場合は、
セルの書式設定で表示形式を日付に変更します。


3. セル C6 に、「=EDATE(C4 , -1)」となるように数式を作成して [Enter] キーを 押します。


4. セル C4 の日付 (2012/5/10) の 1 か月前の日付が表示されます。


step3 1ヵ月後の日付の前日を表示する


特別なことではないと思うけれど、、、
「今日から丸 1 か月を期間として、最終日を表示したい」という場合は、1か月後の日付ではなく、
1 日前の日付を表示したいですね。

EDATE 関数による結果はシリアル値ですから、前日の日付を表示したければ「-1」を
翌日なら「+1」をすればよい、というシンプルな編集を加えていただければ結果は出ます。





下図のような表があったときに、ピンクのセルの日付を変更すると、水色のセルが変わるように
したいと、質問をいただいたことがあるのです。
(そのときは、日付までは不要だったような気もしますが、、)

セル C2 に「=EDATE(B2 ,1)」という数式が入っていて、これを、そのほかの水色のセルに
コピーしただけです。


1 回作って終わりなら、連続データをコピーしてもよいと思うけれど、
開始日が変わる可能性があるのなら、数式を作ってしまったほうがよいですね。


石田 かのこ