エクセルで月末日を簡単に求める!EOMONTH関数の基本と応用

当ページのリンクには広告 (Amazonアソシエイト含む) が含まれています。
アイキャッチ

「エクセルで月末の日付を簡単に求めたい!」
このように感じたことはありませんか?


エクセル関数で月末を求めたい

閏年も加味して計算したい

その場合は、ワークシート関数の「EOMONTH関数」を
使用すると解決します!


例えば、請求書の締め日や給与計算など、月末の日付が必要になるシーンは意外と多いものです。
そんな時に便利なのが「EOMONTH関数」です。

基本的な使い方から応用的なテクニックまで、初心者でもすぐに実践できる内容です。
ぜひ最後までお読みください。


【 この記事の概要 】

よく使う度
難しさ
覚えておくと安心度

関数を使いこなせれば、エクセル作業が何倍も速くなり、ミスも激減します。

でも、どこから始めればいいか迷いますよね?

初心者でもわかりやすくステップアップできる本があれば、効率的にスキルを伸ばせますよ!

目次

この記事を見て「できるようになる」こと

スポンサーリンク

EOMONTH関数とは?月末日を簡単に求める基本関数

EOMONTH関数 とは、「End of Month (エンド オブ マンス)」の略で、名前の通り「指定した日付を基準にして、何か月後または何か月前の月末日を求める」ことができるエクセルの関数です。

例えば、請求書や給与計算の締め日など、月末日を求めたいシーンで非常に便利です。

また、操作がシンプルなので初心者でも簡単に使いこなせます。


EOMONTH関数で出来ること

EOMONTH関数の基本構成

EOMONTH構成
引数名内容
開始日 (必須)基準となる日付を指定します(セル参照や日付を直接入力)。
月数 (必須)基準日から何か月後または何か月前の月末日を求めるかを指定します。

EOMONTH関数の動作イメージ

「開始日」と「月数」に応じて次のように計算されます。

EOMONTH関数のイメージ

より詳しい情報は、Microsoft公式 – EOMONTH 関数を参照してみてください。

使用するうえでの注意ポイント

EOMONTH関数の結果はシリアル値として返されます。

シリアル値とは、エクセルで日付を数字で管理している形式のことです。
1900年1月1日を「1」として、そこから何日経過したかを表すものとなります。

そのため、計算結果がそのままではシリアル値(例: 45123)として表示されてしまいます。

正しく「日付」として表示するには?

表示方法1 : セルの書式設定で変更する方法
  1. 関数の結果が表示されているセルを選択します。
  2. リボンメニューの「ホーム」タブの「数値」の右下にある「」をクリックします。
  3. 「セルの書式設定」の「分類(C):」から「日付」を選び、「種類(T):」から表示させたい日付形式を設定します。
表示方法2 : TEXT関数を使う方法

関数の結果を「日付形式」に変換したい場合、TEXT関数 を使うと便利です。

以下のように記述します。

=TEXT(EOMONTH(開始日, 月数), "yyyy/mm/dd")

具体例:EOMONTH関数で月末日を求めてみよう。

1. 指定日から1か月後の月末日を求める

例えば、2024年12月15日を基準に1か月後の月末日を求めたい場合。

=EOMONTH("2024/12/15", 1)
1. 指定日から1か月後の月末日を求める

2. 現在の月末日を求める

例えば、2024年12月15日の月末日を求めたい場合。

=EOMONTH("2024/12/15", 0)
2. 現在の月末日を求める

3. 5か月前の月末日を求める

例えば、2024年12月15日を基準に5か月前の月末日を求めたい場合。

=EOMONTH("2024/12/15", -5)

応用編 | エクセルで月末日を自動更新!EOMONTH関数を使った便利な表の作り方

EOMONTH関数 を使用すると、月末日が自動更新される便利な表を作成することができます。

この表を使えば、毎月末の締め日やレポート提出期限を自動更新できるため、スケジュール管理が簡単になります。
月によって日付が異なる場合でも、調整の手間がかかりません。

自動で更新される表のイメージ

自動更新される表の作り方を解説

1. セル「B2」に年月日を入力
このセルの日付を変更するだけで、表全体の月末日が自動的に更新されます。

2. セル「B28」以降に次の関数を記載します。
月末日が変動する28日以降のセル(例:セルB28以降)に以下の関数を入力し、それ以降のセルには オートフィル を設定してください。
これにより、28日以降のすべてのセルに自動的に計算結果が反映されます。

=IFERROR(IF(EOMONTH($B29,0)>=$B29+1,$B29+1,""),"")
この関数がすること
  • EOMONTH($B29,0)
    • 指定した日付の月末日を求める。
  • $B29+1
    • 現在のセルの翌日を計算する。
      $相対参照を使用しています。
  • IF()
    • 月末日までの日付を表示。それ以外は空白。
  • IFERROR()
    • エラーが発生した場合は空白を返す。
応用編 | エクセルで月末日を自動更新!EOMONTH関数を使った便利な表の作り方

この表を使うメリット

  • 作業効率の向上
    • 月ごとの日数の違いを気にせずにスケジュール管理やデータ入力が可能になります。
  • 手動修正が不要
    • 月末日が異なる場合でも、自動的に調整されるため、人的ミスを防ぐことができます。
  • プロジェクト管理に最適
    • 請求書の締め日や契約更新日を効率的に管理できるので、業務がスムーズになります。
スポンサーリンク

DATE関数を使った別アプローチで月末日を求める方法 | EOMONTH関数を使わない方法

エクセルでは、EOMONTH関数を使用して簡単に月末日を求めることができます。
しかし、EOMONTH関数を使わずに月末日を求める別のアプローチも存在します。
これには DATE関数 を活用します。

DATE関数は、日付を「年」「月」「日」ごとに指定して計算する強力な関数で、場合によってはEOMONTH関数の代替として使えることがあります。
この記事では、DATE関数を使った月末日の計算方法を詳しく解説します。

DATE関数を使った月末日の求め方

考え方
  1. 指定した月の初日を計算する
    • DATE関数を使用して、指定した「月の翌月」の1日を求めます。
  2. その初日から「1日引く」
    • 翌月の初日を基準に1日を減算することで、元の月の月末日が求められます。

計算式

以下がDATE関数を使った月末日の計算式です。

=DATE(年, 月+1, 1)-1

使用例:手動で計算する場合

例えば、2024年12月の月末日 を求めたい場合、次のように記述します。

=DATE(2024, 12+1, 1)-1

このように、求めたい月末の次の月の初月を求めて、「1日」引くことで求めることができます。

DATE関数を使った月末日の求め方

EOMONTH関数とDATE関数の使い分けについて

スクロールできます
項目EOMONTH関数DATE関数
主な用途月末日を簡単に計算月末日や月初日など、幅広い日付計算に対応
操作の手軽さシンプルで初心者向け設定がやや手動だが柔軟性が高い
応用性月末日の計算に特化幅広い日付計算(特定の日、月初日など)に対応

どちらを使うべき?

  • EOMONTH関数
    • 月末日を簡単に求めたい場合に最適です。
  • DATE関数
    • 月末日以外の日付計算を行いたい場合に便利です。
スポンサーリンク

注意ポイント:EOMONTH関数を使う際に知っておきたいこと

注意1 : 日付形式を正しく設定する

エクセルで日付を扱う場合、入力されているデータが正しい「日付形式」になっていないと、関数が正しく動作しないことがあります。

具体例

セル「C1」に「2024/12/15」と入力している場合

=EOMONTH(C1, 0)
日付形式を正しく設定するの具体例

エラーが発生する場合

セルA1に「12月15日2024年」など日付形式ではない文字列を入力した場合は、「#VALUE!」エラーが返されます。

日付形式を正しく設定するのエラーが出る場合

注意2 : エラー対策

エクセル関数を使用していると、空白セルや無効な値(文字列や日付形式ではないデータ)が入力されている場合に、「#VALUE!」や「#NAME?」などのエラーが発生することがあります。

具体例

空白セルが原因の場合

セル「C1」が空白の場合、エクセルは内部的に「1900年1月0日」と解釈します。
このため、計算結果として「1900年1月31日」が返されます。

=EOMONTH(C1, 0)
空白セルが原因の場合
無効な値が原因の場合

セル「C1」に「abc」や「エラー」といった文字列が入力されている場合は、「#VALUE!」のエラーが返ってきます。

=EOMONTH(C1, 0)
無効な値が原因の場合

解決方法

空白セルをチェックする
 入力データが必須のセルには必ず値を入力します。

無効な値を回避する
 数式に IFERROR関数 を追加して、エラーが発生した場合でも空白や特定のメッセージを表示するようにします。

=IFERROR(EOMONTH(A1, 0), "入力エラー")

⇒ 空白セルや無効な値がある場合は、「入力エラー」と表示される。

スポンサーリンク

EOMONTH関数関数以外のおすすめ関数一覧 | 日付計算の目的別に徹底解説

以下の表を参考に、計算したい内容に応じた関数を見つけてください。

「これを調べたい場合はこちら」をクリックするような感覚で目的に合わせた関数を選びましょう!

スクロールできます
目的使用する関数説明
指定日から数ヶ月後の
月末日を求めたい
EOMONTH関数指定日から特定の月数後の月末日を
計算します(給与締め日や請求締め日などに便利)。
2つの日付の間の営業日数を
計算したい
NETWORKDAYS関数開始日と終了日の間の営業日数を
計算します(土日・祝日を除外)。
指定日から営業日単位で
日付を計算したい
WORKDAY関数指定した日付から特定の営業日後を
計算します(土日・祝日を除外)。
土日以外の週末を設定して
日付計算をしたい
WORKDAY.INTL関数指定日から特定の営業日後を計算。
週末のパターンを柔軟に変更可能。
土日以外の週末を設定して
営業日数を計算したい
NETWORKDAYS.INTL関数開始日と終了日の間の営業日数を計算。
週末のパターンを柔軟に変更可能。
日付から「年」「月」「日」の
差を求めたい
DATEDIF関数2つの日付の間の期間を年、月、日単位で
計算します(年齢や勤務年数の計算に便利)。
指定日から数ヶ月前後の
日付を求めたい
EDATE関数指定日から特定の月数前後の日付を
計算します(契約更新日や支払期日などの計算に便利)。
日付を年・月・日から
作りたい
DATE関数年、月、日を指定して日付を
作成します(計算式や他の関数と組み合わせて使用可能)。

適切な関数の選び方をご紹介

2つの日付の間の「営業日数」を求めたい

この場合はNETWORKDAYS関数を使用しましょう。

NETWORKDAYS関数は、「開始日」と「終了日」を指定して、その間の営業日数(平日から土日と祝日を除外した日数)を計算します。

  • 開始日 : 2023/11/01
  • 終了日 : 2023/11/30
  • 計算式 : =NETWORKDAYS(DATE(2023,11,1), DATE(2023,11,30))
  • 結果 : 21営業日
指定日から「営業日単位」で日付を計算したい

この場合はWORKDAY関数を使用しましょう。

WORKDAY関数を使えば、指定した開始日から特定の営業日後または営業日前の日付を簡単に求められます。

  • 開始日  : 2023/11/01
  • 営業日数 : 5日後
  • 計算式  : =WORKDAY(DATE(2023,11,1), 5)
  • 結果   : 2023/11/08(水曜日)
異なる週末パターンで営業日数を計算したい

この場合はNETWORKDAYS.INTL関数を使用します。

NETWORKDAYS.INTL関数は、土日以外の休日パターンを指定して営業日数を計算できる関数です。業界や国によって異なる週末パターンに柔軟に対応できます。

  • 開始日    : 2023/11/01
  • 終了日    : 2023/11/01
  • 週末パターン : 金曜・土曜
  • 計算式    : =NETWORKDAYS.INTL(DATE(2023,11,1), DATE(2023,11,10), "0000011")
  • 結果     : 7営業日

「週末パターン」は、「1=日曜と土曜」「2=月曜と日曜」など、数字や文字列で指定できます。
これにより、特殊な営業日ルールを持つプロジェクト管理にも対応可能です。

2つの日付の間の「日数」「月数」「年数」を知りたい

この場合はDATEDIF関数を使用しましょう。

DATEDIF関数は、2つの日付の間の差を「年」「月」「日」単位で計算できます。

  • 開始日  : 2023/01/01
  • 終了日  : 2023/11/30
  • 計算式  : =DATEDIF(DATE(2023,1,1), DATE(2023,11,30), "D")
  • 結果   : 333日

他にも以下のような計算が可能です:

単位結果
“Y”経過年数
“M”経過月数
“D”経過日数
指定した日付から数ヶ月後の同じ日付を求めたい

この場合はEDATE関数を使用しましょう。

EDATE関数は、指定した日付から特定の月数前後の日付を計算します。

  • 開始日  : 2023/01/15
  • 月数   : 6ヶ月後
  • 計算式  : =EDATE(DATE(2023,1,15), 6)
  • 結果   : 2023/07/15
特定の日付を作りたい

この場合はDATE関数を使用しましょう。

DATE関数は、年・月・日を指定して特定の日付を生成する便利な関数です。
これを使うことで、他の計算結果から新しい日付を作成できます。

  • 年    : 2023
  • 月    : 11
  • 日    : 30
  • 計算式  : =DATE(2023, 11, 30)
  • 結果   : 2023/11/30
スポンサーリンク

この記事のまとめ

EOMONTH関数は、エクセルで月末日を効率的に求めるための便利な関数です。

この記事では、基本的な使い方から応用例、代替方法、注意点までを詳しく解説しました。

ポイントのおさらい

さらに学ぶために

EOMONTH関数をマスターしたら、他のエクセル関数や自動化ツールも活用して、さらに作業効率を向上させましょう。

あわせて読みたい
サイトマップ このページは、本サイトの記事を分かりやすくまとめました。ぜひご覧ください。 目次 「VBA」を見る 「Officeスクリプト」を見る 「ワークシート関数」を見る 「JavaScr...
スポンサーリンク
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次