エクセル関数の便利帳 [エクセル関数の便利な使い方を事例を交えてご紹介します] エクセル関数の便利帳 [エクセル関数の便利な使い方を事例を交えてご紹介します]

最近見た
ページ

case
27

EDATE関数やEOMONTH関数で支払日や満期日の日付を求めよう!

日付と時刻2023年5月9日
対応バージョン
  • 365
  • web
  • 2021
  • 2019
  • 2016
  • 2013
  • Web App
  • 2011
  • 2010
  • 2007
  • Starter
EDATE 関数/EOMONTH 関数の使い方を説明しているイメージ

エクセルのEDATE(エクスバイレーション・デート)関数やEOMONTH(エンド・オブ・マンス)関数を使って~か月前、~か月後の日付や月末の日を求める方法を解説します。

EDATE関数・EOMONTH関数で~か月前、~か月後の指定の日付を求めてみよう

特定の日付から1か月後あるいは翌々月の月末等といった、締日・支払日・満期日を以下の関数を用いて求めることができます。

  EDATE関数 ・・・ 基準日からの数か月後の日付を算出
  EOMONTH関数 ・・・ 基準日からの数か月後の月末の日付を算出

ここでは、EDATE関数、EOMONTH関数の基本的な書式と機能について紹介します。

EDATE関数・EOMONTH関数の書式

EDATE関数は次のように入力します。

=EDATE(開始日, 月)

また、EOMONTH関数は次のように入力します。

=EOMONTH(開始日, 月)

EDATE関数は基準となる日付(関数内で指定する「開始日」)から、指定した月数(関数内で指定する「月」)の日付を返します。
EOMONTH関数は基準となる日付(関数内で指定する「開始日」)から、指定した月数(関数内で指定する「月」)の月末日付を返します。

EDATE関数とEOMONTH関数は、[関数の挿入]ボタンをクリックして[関数の分類]で[日付/時刻]を選択すると、簡単に入力できます。 また、関数ライブラリからも選択できます。

実際にひと月のカレンダーを使って、どう返されるか見てみましょう。それぞれ1月後の日付と月末を求めたいと思います。

セルC4をアクティブにし、[数式]タブの[関数の挿入]をクリックしている画面イメージ

1EDATE関数を入力する、セルC4をアクティブにし、[数式]タブの[関数の挿入]をクリックします。

[関数の分類]で「日付/時刻」を選択し、[関数名]で「EDATE」を選択して、[OK]ボタンをクリックしている画面イメージ

2[関数の分類]で「日付/時刻」を選択し、[関数名]で「EDATE」を選択して、[OK]ボタンをクリックします。

[開始日]に「A4」、[月]に「1」、を入力し、[OK]ボタンをクリックしている画面イメージ

3[開始日]に「A4」、[月]に「1」を入力し、[OK]ボタンをクリックします。

セルD4をアクティブにし、[数式]タブの[関数の挿入]をクリックしている画面イメージ

4セルC4にA4列から一月後の日付が表示されました。

次に、EOMONTH関数を入力する、セルD4をアクティブにし、[数式]タブの[関数の挿入]をクリックします。

[関数の分類]で「日付/時刻」を選択し、[関数名]で「EOMONTH」を選択して、[OK]ボタンをクリックしている画面イメージ

5[関数の分類]で「日付/時刻」を選択し、[関数名]で「EOMONTH」を選択して、[OK]ボタンをクリックします。

[開始日]に「A4」、[月]に「1」、を入力し、[OK]ボタンをクリックしている画面イメージ

6[開始日]に「A4」、[月]に「1」を入力し、[OK]ボタンをクリックします。

セルD4にA4列から一月後の末日の日付が表示されている画面イメージ

7セルD4にA4列から一月後の末日の日付が表示されました。

C4とD4をコピーして、34行目まで貼り付けます。

C列にA列に対応する一月後、D列にはA列に対応する一月後の末日が表示されていると思います。

(注意) EDATE関数の末日の計算結果を見てみましょう。
月の日数が違う場合、指定月末日に自動で調整されます。ただし開始日の日付より指定月の末日の日数が多い場合は調整されないので、利用方法を誤ると意図した結果が得られません。
※以下の表は左のセルの一月後を算出するように式を入れてます。
セルD4にA4列から一月後の末日の日付が表示されている画面イメージ

(補足) 引数の月を指定する画面イメージ EDATE関数とEOMONTH関数は、引数の月を指定する際、指定した月数後を表示させたいならプラスで、月数をさかのぼった月数を表示させたい場合はマイナスで入力します。

ステップアップ:自動更新できるカレンダーを作ってみよう!

本日の日付を基準に自動更新される12か月便のカレンダーを作ってみたいと思います。

これまでご紹介してきた WEEKDAY関数TODAY関数DATE関数
YEAR(イヤー)関数、MONTH(マンス)関数を使います。

YEAR関数は日付に対応する年を返し、MONTH関数は日付に対応する月を返します。

YEAR関数は次のように入力します。

=YEAR(シリアル値)

MONTH関数は次のように入力します。

=MONTH(シリアル値)

※シリアル値については、DATE関数で説明しています。

A3からC35に数式を入力し終わった画面イメージ

1実際に入力してみます。

 

  •  セルA1に「=TODAY()」と入力し、「セルの書式設定」の[表示形式]タブの[分類]からユーザー定義を選択し、[種類]に「yyyy」と入力します。
  •  セルA3に「=A1」と入力し、「セルの書式設定」の[表示形式]タブの[分類]からユーザー定義を選択し、[種類]に「m」と入力します。
  •  セルA4に「日」セルB4に「曜日」と入力
  •  A5からA35を選択し、「セルの書式設定」の[表示形式]タブの[分類]からユーザー定義を選択し、[種類]に「d」と入力
  •  B5からB35を選択し、「セルの書式設定」の[表示形式]タブの[分類]からユーザー定義を選択し、[種類]に「aaa」と入力
  •  セルA5に「=DATE(YEAR(A1),MONTH(A1),1)」と入力
  •  セルB4に「=A5」と入力
  •  セルA6に「=A5+1」と入力
  •  セルA6をコピーして、A7からA35まで貼り付けます。
  •  セルB5に「=A5」と入力
  •  セルB6に「=A6」と入力
  •  セルA4からC6をコピーして、D4からF6に貼り付けます。

 

D4からF6に貼り付けましたら、次の2か所の数式を修正します。

 

  •  セルD3に「=EDATE(A3,1)」と入力
  •  セルD5を「=EDATE(A5,1)」と修正します。

セルA6からF6をコピーしている画面イメージ

2セルA6からF6をコピー

A7からF35まで数式の貼り付けしている画面イメージ

3A7からF35まで数式の貼り付けをします。

D3からF35をコピーしている画面イメージ

4次にD3からF35をコピーして、G3からAJ3に貼り付けます。

12か月分のカレンダーが出来上がった画面イメージ

512か月カレンダーが出来上がったと思います。

次にA33からAJ35を選択して、「ホーム」タブの[スタイル]の[条件付き書式]から[新しいルール]をクリックします。

ルールの種類を [数式を使用して、書式を設定するセルを決定] を選択し、ルールの内容に「=MONTH(A33)<>MONTH(A5)」と入力したら、[書式]をクリックします。

セルの書式設定の「フォント」タブを選択し、色を選択し「OK」をクリックします。
※ここでは翌月になる部分を非表示にしたいので、白文字にします。

OR関数でご紹介した条件付き書式を使って土日祝日に色を付ける方法で土日祝日に色を付けていきます。

「ホーム」タブの[スタイル]の[条件付き書式]から[ルールの管理]をクリック画面イメージ

6OR関数でご紹介した手順で色付けが終わったら、 「ホーム」タブの[スタイル]の[条件付き書式]から[ルールの管理]をクリックします。

条件付き書式ルールの管理画面イメージ

7条件付き書式ルールの管理で表示順の確認をします。
末日の翌月に当たる日付は非表示にしたいので一番上になっているようにします。土曜日が祝日の場合、祝日であることを優先表示させたい場合は赤を上にします。
表示順位の入れ替えは重複ルールの右側の矢印で調整します。

表示したい順になっていたら「OK」をクリックします。

(補足) 今日の日付を基準に12か月分のカレンダーが出来上がるように作りましたが、
A5の数式を「=DATE(A1,A3,1)」にし

  • ・A1に西暦4桁
  • ・A3に月の1桁もしくは2桁
 を入力すると、セルA1の年のセルA3の月から始まるカレンダーにすることもできます。

※「セルの書式設定」の[表示形式]タブの[分類]からユーザー定義を選択し、[種類]で セルA1は「yyyy」と入力、セルA3は「m」と入力しましたが、この場合は 「セルの書式設定」の[表示形式]タブの[分類]で「標準」を選びます。

※頂いた内容についての返信は行っておりません。個人情報の記載はしないようお願いいたします。

おすすめ
ページ

ページTOP