【Excel】EOMONTH関数で月末・翌月末の日付を自動計算する方法

【Excel】EOMONTH関数で月末・翌月末の日付を自動計算する方法
🛡️ 超解決

Excelで月末の日付を計算したい場面は多いでしょう。

給与計算やプロジェクト管理、請求書発行など、締め日や期日を正確に把握するために月末日付の自動計算は不可欠です。

しかし、手作業で月末日を計算・入力するのは手間がかかり、ミスも発生しやすいです。

この記事では、ExcelのEOMONTH関数を使って、指定した月の月末日や翌月末日を自動で計算する方法を解説します。

この関数を使いこなせば、日付関連の業務効率が格段に向上します。

【要点】EOMONTH関数で月末・翌月末を自動計算する

  • EOMONTH関数: 指定した日付から指定した月数だけ前または後の月の末日を計算します。
  • 開始日: 計算の基準となる日付を指定します。
  • 月数: 開始日から何ヶ月前(負の数)または何ヶ月後(正の数)の月末を求めるかを指定します。

ADVERTISEMENT

EOMONTH関数の基本と仕組み

EOMONTH関数は、Excelで日付計算を行う際に非常に便利な関数です。この関数を使うことで、特定の日付から数ヶ月後の月末日や、過去の月末日を簡単に求めることができます。

例えば、毎月15日に契約が開始された場合、その契約の月末日を自動で計算したいといった場合に役立ちます。また、プロジェクトの締め切り管理や、定期的なレポート作成など、様々なビジネスシーンで活用できます。

EOMONTH関数は、引数として「開始日」と「月数」の2つを取ります。この2つの引数を適切に設定することで、柔軟に月末日を計算できるのが特徴です。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

EOMONTH関数を使った月末日計算の手順

  1. 計算結果を表示するセルを選択する
    まず、EOMONTH関数で計算した月末日を表示したいセルをクリックして選択します。
  2. EOMONTH関数を入力する
    選択したセルに、「=EOMONTH(」と入力します。
  3. 開始日を指定する
    次に、計算の基準となる日付が入力されているセルを参照するか、直接日付を入力します。例えば、A1セルに開始日が入っている場合は「A1」と入力します。直接入力する場合は、「2023/1/15」のように「年/月/日」または「年-月-日」の形式で入力し、ダブルクォーテーションで囲みます(例:「”2023/1/15″」)。
  4. 月数を指定する
    開始日のセル参照または入力後、カンマ「,」を入力します。次に、月末日を計算したい月数を指定します。現在の月の月末日を求める場合は「0」、翌月の月末日を求める場合は「1」、2ヶ月後の月末日を求める場合は「2」と入力します。過去の月を求める場合は、負の数を指定します。例えば、前月の月末日を求める場合は「-1」と入力します。
  5. 関数を確定する
    月数の指定が終わったら、閉じ括弧「)」を入力し、Enterキーを押して関数を確定します。

これで、指定した開始日から計算された月末日が表示されます。必要に応じて、セルの表示形式を日付形式に変更してください。

EOMONTH関数で翌月末日を計算する具体例

ここでは、具体的なシナリオを想定して、EOMONTH関数を使って翌月末日を計算する方法を解説します。

例1:ある日付の翌月末日を計算する

例えば、A1セルに「2023/3/10」という日付が入っているとします。この日付の翌月末日を計算するには、以下の数式を入力します。

数式: =EOMONTH(A1,1)

解説:

A1セルが開始日となり、月数に「1」を指定しているため、A1の日付から1ヶ月後の月末日、つまり「2023/4/30」が計算されます。

例2:今日の日付の翌月末日を計算する

現在の日付を基準にして翌月末日を計算したい場合は、開始日にTODAY関数を使用します。

数式: =EOMONTH(TODAY(),1)

解説:

TODAY()関数は、その都度、現在の日付を返します。EOMONTH関数で月数に「1」を指定しているため、今日の日付の1ヶ月後の月末日が表示されます。例えば、今日が2023/5/20であれば、結果は「2023/6/30」となります。

例3:特定の月の月末日を計算する

例えば、2023年7月の月末日を計算したい場合、開始日として「2023/7/1」のようなその月の初日を指定し、月数に「0」を指定します。

数式: =EOMONTH("2023/7/1",0)

解説:

この数式は、「2023/7/1」から0ヶ月後の月末日、つまり「2023/7/31」を返します。

例4:特定の月の前月末日を計算する

例えば、2023年6月の前月末日(つまり5月末日)を計算したい場合、開始日として「2023/6/1」などを指定し、月数に「-1」を指定します。

数式: =EOMONTH("2023/6/1",-1)

解説:

この数式は、「2023/6/1」から-1ヶ月後(つまり1ヶ月前)の月末日、すなわち「2023/5/31」を返します。

ADVERTISEMENT

EOMONTH関数と他の日付関数との組み合わせ

EOMONTH関数は、他の日付関数と組み合わせることで、さらに高度な日付計算が可能になります。ここでは、代表的な組み合わせ例を紹介します。

EDATE関数との組み合わせ

EDATE関数は、指定した日付から指定した月数だけ前または後の日付を返します。EOMONTH関数と組み合わせることで、「特定の日付から数ヶ月後の『特定の日』」といった計算ができます。

例えば、契約開始日(A1セル)から3ヶ月後の契約終了日(月末日ではない)を計算したい場合、EDATE関数で3ヶ月後の日付を求め、その月末日をEOMONTH関数で取得するという考え方になります。しかし、EDATE関数自体が指定した月数後の日付を返すため、月末日を求めるならEOMONTH関数単体で十分な場合が多いです。

より具体的には、開始日(A1セル)からちょうど3ヶ月後の「日」を求めたい場合、EDATE(A1,3)となります。この日付の月末日を求める必要はありません。EOMONTH関数は、その月の日数に関わらず、月末日を正確に返してくれるからです。

WORKDAY関数との組み合わせ

WORKDAY関数は、指定した開始日から数日前の、または数日後の営業日を計算します。EOMONTH関数と組み合わせることで、「月末から数えてN営業日目の日付」や「月末までにN営業日を確保する必要がある場合の日付」などを計算できます。

例えば、月末(EOMONTH(TODAY(),0))から5営業日前の日付を計算したい場合、以下のように記述できます。

数式: =WORKDAY(EOMONTH(TODAY(),0),-5)

解説:

まず、EOMONTH(TODAY(),0)で当月末日を求めます。次に、その月末日から5営業日前の日付をWORKDAY関数で計算します。祝日リストを指定したい場合は、WORKDAY関数の第3引数に祝日リストの範囲を指定します。

DATE関数との組み合わせ

DATE関数は、年・月・日を指定して日付を作成する関数です。EOMONTH関数と組み合わせることで、より複雑な条件に基づいた月末日の計算が可能になります。

例えば、特定の年の特定の月の月末日を計算したい場合、DATE関数でその月の初日を作成し、EOMONTH関数に渡すという方法が考えられます。

数式: =EOMONTH(DATE(2023,7,1),0)

解説:

DATE(2023,7,1)で「2023/7/1」という日付を作成し、EOMONTH関数でその月の月末日「2023/7/31」を求めています。これは前述の例3と同じ結果になりますが、年や月を別のセルで指定して、その値をDATE関数に渡すことで、柔軟な計算が可能になります。

EOMONTH関数でよくある質問とトラブルシューティング

EOMONTH関数を使用する際に、よく発生する問題や疑問点について解説します。

Q1:計算結果が数値になってしまう

原因: セルの表示形式が「標準」や「数値」になっているためです。

対処法:

  1. 結果が表示されているセルを選択します。
  2. 「ホーム」タブの「数値」グループにある表示形式のドロップダウンリストから「短い日付」または「長い日付」を選択します。
  3. または、「セルの書式設定」ダイアログボックス(Ctrl+1)を開き、「表示形式」タブで「日付」を選択し、好みの形式を選んで「OK」をクリックします。

Q2:開始日としてセル参照したが、意図しない日付になる

原因: 開始日として指定したセルに、日付として認識されない文字列や、Excelが日付として解釈できない形式で入力されている可能性があります。

対処法:

  1. 開始日として指定したセルの値を確認します。
  2. セルの表示形式が「日付」になっているか確認します。もし「標準」などの場合は、「日付」形式に変更してみてください。
  3. それでも改善しない場合は、一度そのセルをクリアし、「YYYY/MM/DD」や「YYYY-MM-DD」の形式で日付を再入力してみてください。

Q3:月数の指定方法がわからない

原因: 月数の指定方法が混乱しやすいポイントです。

対処法:

  1. 「0」を指定: 開始日と同じ月の月末日を計算します。
  2. 「1」を指定: 開始日から1ヶ月後の月末日を計算します。
  3. 「-1」を指定: 開始日から1ヶ月前の月末日を計算します。
  4. 「n」を指定: 開始日からnヶ月後の月末日を計算します(nは正の整数)。
  5. 「-n」を指定: 開始日からnヶ月前の月末日を計算します(nは正の整数)。

基本的には、開始日を基準として、指定した月数だけ進んだ(または戻った)月の月末日を返すと理解してください。

Q4:Excelのバージョンによる違いはあるか

EOMONTH関数は、Excel 2007以降のバージョンで利用可能です。

Excel 2019やMicrosoft 365など、比較的新しいバージョンでは問題なく使用できます。古いバージョン(Excel 2003以前)では利用できないため、注意が必要です。

EOMONTH関数とVLOOKUP関数を組み合わせた活用例

EOMONTH関数は、他の関数と組み合わせることで、より実践的なデータ分析に活用できます。ここでは、VLOOKUP関数と組み合わせた活用例を紹介します。

月末締め請求書の作成支援

顧客リストと請求締切日リストがあり、特定の顧客の請求締切日を抽出したい場合を考えます。顧客リストには契約開始日があり、請求締切日はその契約開始日の月末日とします。

準備:

  1. 顧客リスト: A列に顧客名、B列に契約開始日(例: 2023/1/15)
  2. 請求締切日リスト: D列に顧客名、E列に請求締切日(ここにVLOOKUPで抽出)

手順:

  1. E列の請求締切日を計算するセル(例: E2セル)に、以下の数式を入力します。
  2. 数式: =IFERROR(VLOOKUP(D2,A:B,2,FALSE),"")
    この数式は、D2セルの顧客名に対応するB列の契約開始日を抽出します。
  3. 次に、抽出した契約開始日の月末日を計算します。例えば、上記のVLOOKUPの結果がF2セルに表示されると仮定した場合、E2セルに以下の数式を入力します。
  4. 数式: =IF(F2="", "", EOMONTH(F2, 0))
    ※実際には、VLOOKUPの結果を直接EOMONTH関数に渡すことも可能です。
  5. より簡潔にするには、数式をネストします。E2セルに以下の数式を入力します。
  6. 数式: =IFERROR(EOMONTH(VLOOKUP(D2,A:B,2,FALSE),0), "")
    解説: D2セルの顧客名を検索し、対応する契約開始日(B列の値)を取得します。その契約開始日をEOMONTH関数の開始日とし、月数「0」を指定して月末日を計算します。顧客名が見つからない場合は、IFERROR関数により空白を表示します。
  7. E2セルを下にオートフィルして、他の顧客の請求締切日も計算します。

このように、EOMONTH関数とVLOOKUP関数を組み合わせることで、契約開始日や登録日などから月末締めの日付を自動で算出・管理することが可能になります。

EOMONTH関数とPower Queryの連携

大量のデータを扱う場合や、定期的にデータを取り込む必要がある場合は、Power Queryとの連携が非常に強力です。

Power Queryでは、M言語という関数言語を使ってデータの変換や加工を行います。EOMONTH関数に相当する機能も用意されており、より複雑な日付処理を自動化できます。

例えば、外部から取得したCSVファイルやデータベースのデータに、元々日付情報しかなくても、Power Queryを使って月末日や翌月末日といった列を簡単に追加できます。

Power Queryエディター内で、列を選択し「日付」タブから「月末日」などの変換機能を使うことで、M言語を直接記述することなく、視覚的な操作で同様の処理を実現できます。これにより、データの前処理や整形作業の自動化・効率化が図れます。

まとめ

本記事では、ExcelのEOMONTH関数を使った月末日・翌月末日の自動計算方法について解説しました。

EOMONTH関数は、開始日と月数を指定するだけで、簡単に月末日を計算できるため、日付関連の業務効率を大幅に改善します。

TODAY関数やVLOOKUP関数との組み合わせ、さらにはPower Queryとの連携も視野に入れることで、より高度なデータ処理が可能になります。

ぜひ、EOMONTH関数を活用して、日々の業務における日付計算の手間を削減し、正確性を高めてください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】