【Excel】期日を求める方法

【EOMONTH関数】期日を求める方法

EOMONTH関数を使って様々な期日(月末、翌月一日、翌々月の十日・・・など)を求める方法を紹介します。

月末を求める方法

EOMONTH関数は月末を求めるためのワークシート関数です。
この関数は”開始日”に”月”を加えた日付の月末を表示する関数です。

=EOMONTH(開始日,月)

例えば、”開始日” に “2021/1/15″、”月”に”2(か月後)”というようにセットすると2か月後の月末である”2021/3/31″が求められます。

=EOMONTH(DATE(2021,1,15),2)         '←開始日 2021年1月15日で、2か月後
 ↓
結果は2021/3/31

注意点は開始日にセットするのは文字列ではなくてシリアル値という点です。
シリアル値がどういうものかわからない方は次のように入力してください。

※文字列でも動作しますが、MicrosoftのOfficeサポートによるとエラーが発生することがあると記載されていましたので避けた方がいいと思います。

当月の場合は”月”の部分には0を指定します。

=EOMONTH(DATE(2021,1,15),0)         '←開始日 2021年1月15日で、当月
 ↓
結果は2021/1/31

開始日に日付の入ったセルを指定することもできます。
A1のセルに2021/1/20が入力されていた場合、結果は2021/1/31です。

=EOMONTH(A1,0)  'A1セルに 2021/1/20で当月
の場合
↓
結果は2021/1/31

先月の15日を求める

EOMONTH関数で前の月を求める時には”月”にマイナス値を指定します。先月なので-1と入れてしまいそうですが、”月”にはー2を入力します。一旦、2か月前の月末に15日を加えたものが先月の15日に該当するからです。

=EOMONTH(A1,-2)+15  'A1セルに 2021/1/20で当月
の場合
↓
結果は2020/12/15

ちなみに上述の例で+15の部分は日数を表しています。日付や時刻を計算する際にシリアル値を知っておいた方がよいと思いますが、これについては後日別の記事で説明します。

【DATE関数】月末を求める方法

DATE関数でも同じように期日を求めることができます。
DATE関数は年月日をそれぞれパラメータとして渡すと、日付のシリアル値に変換する関数です。この関数を使います。

=DATE(年,月,日)

計算式の内容

例えば2021年1月の2か月後の月末を求める場合は以下の式でもとめることができます。少しわかりにくいので、考え方を説明します。

=DATE(2021,1+3,0)         '2021年1月の2か月後の月末
 ↓
結果は2021/3/31

考え方


考え方としては以下の通りです。

  1. 求めたい月の翌月の月初を求める
  2. そこから-1日した日付が求めたい月の月末

1.求めたい月の翌月の月初を求める

まず、求めたい月は2021年1月の2か月後ですが、その翌月の月初を求めるので、月の部分を+3か月後”とします。日にちは月初とするので”1日”とします。

=DATE(2021,1+3,1)
↓
結果は2021/4/1

2.-1日して求めたい月の月末を計算する

次に求めたいのはこの1日前なので、先ほどの式から日にち部分を-1日とします。日にち部分を0としても同じ結果です。

=DATE(2021,1+3,1-1)
=DATE(2021,1+3,0)
↓
結果は2021/3/31

一つのセルに年月日が格納されている場合はEOMONTH関数、年月が別々のセルに格納されているような場合はDATE関数を用いるといいと思います。