Excel関数を使って経過月数後の日付を計算する
今回はExcelで、ある日付から経過月数後の日付を計算する方法をご紹介します。
「日付の計算なんて、日付に日数を足し算をすればよいのでは?」と思うかもしれません。
しかし、足し算では日にち単位での計算になるので、月毎の日数が異なると、日付が微妙に変わってきます。
例えば、毎月末をExcelに表示したい場合に、日付を足し算で表現すると以下のようになります。
2022/4/1を基準にひと月ずつ足していこうとすると、それぞれの月の日数が異なるので、毎月の同じ日付を指定するのが難しいです。
そこで、今回はいくつかの関数を組み合わせて、月単位で日付に足し算をして経過月数後の日付を表示する方法をご紹介します。
関数を組み合わせて経過月数から日付を計算する
関数を使用して経過月数後の日付を計算するには、以下のように数式を記述します。
=TEXT(EDATE(年月日,経過月数),"表示形式")
2つの関数が組み合わさっており、上記だけでは分かりずらいので、実際に引数を入力して使用した例をお見せします。
例えば、カーソルの当たっているセルでは、2022/4/1を基準日としてD9セルに入力されている経過月数4か月を参照して経過月数後の日付2022/8/1を表示しています。
他の日付が表示されているセルも同様の数式で経過月数後の日付を表示して、毎月の同じ日付を表しています。
では、なぜ関数を2つ使わなくてはいけないのか、それぞれの関数に分解して解説していきます。
EDATE関数
EDATE関数は1つ目の引数に指定した年月日から2つ目の引数で指定した経過月数の日付をシリアル値に変換する関数です。
EDATE関数の構文は以下です。
=EDATE(年月日,経過月数)
シリアル値とはExcelで日付を表示するために使われ、数字で表現されます。
そのため、EDATE関数をそのまま使って月の経過を表現すると以下のようになります。
上の画像のように日付を表現するためのシリアル値が表示されてしまうため、ぱっと見ただけでは日付に見えません。
そこで、次に解説するTEXT関数を使用する必要があります。
TEXT関数
TEXT関数は1つ目の引数に指定した数値を2つ目に指定した表示形式に変換して表示するための関数です。
=TEXT(数値,表示形式)
そこで、EDATE関数の結果として返されるシリアル値を1つ目の引数に指定して、2つ目の引数として年月日を表示させるための表示形式を指定することで、シリアル値を日付として表示させることができます。
ちなみにyyyyが西暦(year)、mmが月(month),ddが日にち(day)のように表現されます。
他にも下記のように数値を通貨として表現したりもできます。
書式設定でも上記のように設定することができますが、TEXT関数を使用して表現することもできます。
EDATE関数で返されるシリアル値では日付として分かりづらいので、TEXT関数で見た目に分かりやすいように変換するということですね!
まとめ:経過月数後の日付を表示するEDATE関数とTEXT関数
今回は、Excel上で基準となる日付から指定した月数分経過した日付を表示させる方法を解説いたしました。
EDATE関数については、使用法が限定されそうですが、TEXT関数は汎用性が高い関数なので、他にも活用法がありそうです。
当ブログでは、他にも実務で使えるようなExcelの便利な関数などを紹介していますので、興味がある方はぜひご覧ください!
コメント