Excelで日付を扱う際、「月末日」を自動で求めたい場面は意外と多くあります。たとえば、月末締めの請求書や勤怠管理、スケジュール作成など。そんなときに便利なのが、EOMONTH関数です。EOMONTH関数を使えば、基準日から何か月後または何か月前の「月末日」を一瞬で計算できます。この記事では、EOMONTH関数の基本的な使い方から、実務で役立つ活用例、よくあるエラーの対処法まで、丁寧に解説します。日付処理に強くなれば、Excel作業の効率が格段にアップします。ぜひ最後までご覧ください。
EOMONTH関数とは?基本の意味と目的
EOMONTH関数(イー・オー・マンス)は、「End Of Month」の略で、指定した日付から、指定した月数だけ前後した月の末日を返す関数です。
形式は以下の通りです。
=EOMONTH(開始日, 月数)
- 開始日:基準となる日付(シリアル値または日付形式)
- 月数:開始日からの月数(正の数なら未来、負の数なら過去)
この関数の最大のメリットは、正確な月末日が簡単に求められる点です。月末日が28日だったり30日だったり、閏年には29日になったりする複雑さを自動で処理してくれます。
EOMONTH関数の基本的な使い方
例1:現在の日付の月末日を求める
セルA1に日付「2025/05/15」が入っているとします。
=EOMONTH(A1, 0)
この式は、「2025年5月の月末日」である「2025/05/31」を返します。
月数が0なので、「その月」の末日を返すのがポイントです。
例2:2か月後の月末日を求める
=EOMONTH(A1, 2)
この式は、「2025/07/31」を返します。A1の日付から2か月後の「末日」です。
例3:1か月前の月末日を求める
=EOMONTH(A1, -1)
この場合は、「2025/04/30」を返します。1か月前の月末です。
EOMONTH関数の応用例|実務での活用シーン
給与・請求の締日処理に使う
多くの企業では「月末締め」を採用しており、請求書や給与明細の処理でEOMONTH関数が活躍します。
=EOMONTH(TODAY(), 0)
この式で「今月の末日」を取得できます。毎月変わる月末を正確に計算できるので、システム化に最適です。
勤怠管理で翌月の月末を出す
=EOMONTH(TODAY(), 1)
これで翌月の末日が自動で求まります。月初に翌月の予定表を作る場合に便利です。
年末調整や年度末を求める
=EOMONTH(DATE(2025, 12, 1), 0)
この式で「2025年12月の末日」、つまり「2025/12/31」が取得できます。
年度末の処理や、プロジェクトの締切管理にも応用可能です。
EOMONTH関数の注意点とよくあるエラー
開始日が日付形式でない場合のエラー
たとえば、文字列「5月15日」などの書き方だと、Excelが日付と認識できずエラーになります。
対策:正しい日付形式(例:2025/05/15)で入力しましょう。
日付がシリアル値になっている場合
EOMONTH関数は、日付を数値(シリアル値)として処理します。
「44500」などの値が日付に見えなくても、実際には「2022年1月1日」などの日付である場合があります。
POINT:セルの表示形式を「日付」に変更することで正しく確認できます。
EOMONTH関数とEDATE関数の違い
EOMONTHと似た関数に「EDATE」があります。
=EDATE(開始日, 月数)
:開始日から指定月数後の「同じ日付」を返す=EOMONTH(開始日, 月数)
:開始日から指定月数後の「月末日」を返す
たとえば、2025/05/15を基準にすると:
=EDATE("2025/05/15", 1) → 2025/06/15
=EOMONTH("2025/05/15", 1) → 2025/06/30
同じ月数でも、返ってくる日付が異なるので、用途に応じて使い分けましょう。
他の関数と組み合わせた応用技
TEXT関数と組み合わせてフォーマット変更
=TEXT(EOMONTH(A1, 0), "yyyy年mm月dd日")
これで「2025年05月31日」のような形式で出力できます。資料作成時など見た目を整えたいときに便利です。
NETWORKDAYS関数と組み合わせて営業日を計算
=NETWORKDAYS(TODAY(), EOMONTH(TODAY(), 0))
これは「今日から今月の月末までの営業日数」を返します。
スケジュールの見積もりや納期管理に役立ちます。
まとめ|EOMONTHで日付処理をもっとスマートに
EOMONTH関数は、Excelで月末日を求めるときに非常に役立つ便利な関数です。
手動で日付を修正する手間を省き、自動化や効率化を助けてくれる強力な武器になります。
- 基本の使い方:
=EOMONTH(日付, 月数)
- 今月の末日:
=EOMONTH(TODAY(), 0)
- 来月の末日:
=EOMONTH(TODAY(), 1)
- エラー対策:日付形式を正しく使う
業務でExcelを使う方にとって、EOMONTHは覚えておいて損はない関数です。ぜひ実際のファイルで試して、あなたの業務に取り入れてみてください。