エクセルで1ヵ月後の日付を表示する数式

エクセルで、
ある日付の1ヵ月後の日付を計算する方法について
書いていきます。

日付は、シリアル値で入っていますか?

この記事の方法を使う場合、
元になる日付が、
文字列データではなく、シリアル値(=数値)で、
入力されている必要があります。

シリアル値で入っているかどうかの見分け方ですが、

  1. 該当する日付が入っているセルで、「セルの書式設定」を選び
  2. セルの書式を「標準」にしてみる

ことで、区別がつきます。

シリアル値で入っている場合

日付ではなく「数字」が表示されます

シリアル値で入っていない場合(=文字列で入っている)

見た目が全く変わらず、日付が表示されます

1kagetsugo_1

もし、シリアル値で入っていないのならば、
事前に、日付をシリアル値の形に直しておいてください

ここまでで、事前準備は完了です。

それでは、
具体的に1ヶ月後の日付を求める方法を説明していきます。

1.edate関数を使う

インターネットで検索すると、
最初に目にするのがこの方法ですね。

例えば、
A2セルに2016/2/10と入っている場合、
1ヶ月後の日付は、

=EDATE(A2,1)

で計算できます。

2.edate関数を使わずに、基本的な関数で計算

個人的には、edate関数は嫌いなので(理由は後述)、
自力で計算することが多いです。

=MIN( DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)) , DATE(YEAR(A2),MONTH(A2)+2,0 ) )

と入れると、
(私が見た範囲では)edate関数と全く同じ結果になります。

なぜ、私はedate関数が嫌いなのか?

さて、先ほど、
edate関数は嫌いなので使わない、
という話をしました。

なぜ、嫌いなのかというと、
動きが読めないからです。

実は、「1ヶ月後の日付」と言っても、
文脈によって、求めたい日付が変わります

例えば、
2016年2月29日の1ヶ月後は、いつでしょうか?

...

...(考えてみてください)

...

2016年2月29日の「1ヶ月後」の日付は、

状況により、
下記の2つの「答え」があり得ます。

答1:2016年3月29日

1ヶ月後の応当日と考えて「2016年3月29日」。

答2:2016年3月31日

月単位で考えて、
1ヶ月後は3月の月末である「2016年3月31日」。

edate関数を使うと、どちらの結果が出るのか?

他人のホームページや、エクセルのヘルプを、
ぱっと読んだだけではわからないので、
怖くて使えない
のです。

実際のところは、
edate関数を使うと、
「答1:2016年3月29日」のほうになるようなのですが、

インターネットの解説ページや、
エクセルのヘルプを見ただけで、
ここまで辿りつくのは、大変です。

もし、
私が、edate関数を使わざるを得ないとしたら、
どのような日付を返してくるのか、
事前に試してみた上で、使うと思います。

でも、
そんな手間をかけるくらいならば、
完璧に挙動がわかる単純な関数で、
計算式を入れたほうがミスが減る
ので、
私は、edate関数は使っていないのです。

もちろん、
あなたのエクセルの腕にもよるので、
edate関数を使っちゃダメ、というわけではないのですが、

少なくとも、
インターネットを見て、何も考えずに、言われた関数を使うのは怖い
という感覚は、
持っておいたほうがいいと思います。

3.1ヶ月後の月末の日付を求めたい場合

最後に、
1ヶ月後の月末の日付を求めたい場合は、
次の計算式で計算できます。

=DATE(YEAR(A2),MONTH(A2)+2,0)

ざっくり言うと、
「2ヶ月後の月の1日(ついたち)」の1日前
=1ヶ月後の月末

というロジックです。

エクセルを使っていると、
良く出てくる形なので、覚えておくと、役に立ちますよ!

おすすめ記事

エクセル基礎講座 「無料」動画マニュアル

「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!

このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。

ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます!

無料動画講座 登録フォーム

※ご登録頂いたメールアドレスに、エクセルを使いこなすための情報を配信するメールセミナー「エクセル倍速講座」も合わせて配信させていただきます。