エクセルで1ヵ月後の日付を表示する数式
エクセルで、
ある日付の1ヵ月後の日付を計算する方法について
書いていきます。
日付は、シリアル値で入っていますか?
この記事の方法を使う場合、
元になる日付が、
文字列データではなく、シリアル値(=数値)で、
入力されている必要があります。
シリアル値で入っているかどうかの見分け方ですが、
- 該当する日付が入っているセルで、「セルの書式設定」を選び
- セルの書式を「標準」にしてみる
ことで、区別がつきます。
- シリアル値で入っている場合
-
日付ではなく「数字」が表示されます
- シリアル値で入っていない場合(=文字列で入っている)
-
見た目が全く変わらず、日付が表示されます
もし、シリアル値で入っていないのならば、
事前に、日付をシリアル値の形に直しておいてください。
ここまでで、事前準備は完了です。
それでは、
具体的に1ヶ月後の日付を求める方法を説明していきます。
1.edate関数を使う
インターネットで検索すると、
最初に目にするのがこの方法ですね。
例えば、
A2セルに2016/2/10と入っている場合、
1ヶ月後の日付は、
で計算できます。
2.edate関数を使わずに、基本的な関数で計算
個人的には、edate関数は嫌いなので(理由は後述)、
自力で計算することが多いです。
と入れると、
(私が見た範囲では)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ヶ月後の月末の日付を求めたい場合は、
次の計算式で計算できます。
ざっくり言うと、
「2ヶ月後の月の1日(ついたち)」の1日前
=1ヶ月後の月末
というロジックです。
エクセルを使っていると、
良く出てくる形なので、覚えておくと、役に立ちますよ!