概要
Excelで「月末日(その月の最後の日)」を求めたいときは EOMONTH関数 を使います。EOMONTHは、指定した日付から「指定月数だけ前後にずらした月の末日」を返します。月末締めの集計、請求書の締日、プロジェクトの期間計算などで定番の関数です。
基本の使い方
書式
=EOMONTH(開始日, 月数)
開始日には任意の日付(セル参照、DATE、TODAYなど)を指定します。月数には、開始日から何か月ずらすかを指定します(今月なら0、翌月なら1、前月なら-1)。
例
=EOMONTH("2025/12/17",0) // 2025/12/31(今月の月末)
=EOMONTH("2025/12/17",1) // 2026/01/31(翌月の月末)
=EOMONTH("2025/12/17",-1) // 2025/11/30(前月の月末)
具体例
セル参照でその月の末日を取得
=EOMONTH(A2,0)
A2が「2025/12/17」なら「2025/12/31」を返します。
今日の属する月の末日を取得
=EOMONTH(TODAY(),0)
今日がいつでも、その「今月の月末」を返します。
指定日から3か月後の月末を取得
=EOMONTH(DATE(2025,7,15),3)
結果は「2025/10/31」を返します。
応用テンプレート
月初と月末の期間を求める(締め期間)
開始 = EOMONTH(TODAY(),-1)+1
終了 = EOMONTH(TODAY(),0)
開始は「今月の月初」、終了は「今月の月末」です。SUMIFSなどの条件にそのまま使えます。
今月の日数を求める
=EOMONTH(TODAY(),0) - (EOMONTH(TODAY(),-1)+1) + 1
月初から月末までの日数を計算します。
締め日の翌営業日(暫定)を作る
=EOMONTH(A2,0)+1
月末の翌日(多くの場合は翌月1日)を返します。営業日ロジックはWORKDAY関数と組み合わせて調整します。
よくあるつまずきと対策
表示が数字になる
EOMONTHは日付のシリアル値を返します。結果セルの表示形式を「日付」に変更すると期待通りに見えます。書式例は「yyyy/mm/dd」。
月数の符号を間違える
今月は0、翌月は1、前月は-1です。符号を間違えると全く別の月の末日になります。まずは0で確認しましょう。
文字列日付での不具合
「2025/12/17」を文字列として扱うと環境によって解釈が変わることがあります。DATE関数で日付を明示的に生成するか、セルを日付として入力してください。
例題
問題1: A2セルの日付の属する月の月末日をB2に表示してください。
解答例:
=EOMONTH(A2,0)
問題2: 今日の属する月の月末日をC2に表示してください。
解答例:
=EOMONTH(TODAY(),0)
問題3: D2セルの日付から前月の月末日をE2に表示してください。
解答例:
=EOMONTH(D2,-1)
問題4: F2セルの日付から2か月後の月末日をG2に表示してください。
解答例:
=EOMONTH(F2,2)
問題5: 今月の月初と月末をそれぞれH2とI2に表示してください。
解答例(H2: 月初、I2: 月末):
H2: =EOMONTH(TODAY(),-1)+1
I2: =EOMONTH(TODAY(),0)
まとめ
月末日を取得するなら EOMONTH が最短ルートです。月数で前後の月を自在に指定でき、月初は「EOMONTH(…, -1)+1」で補完できます。月次締め、請求、在庫、労務など“月単位”の実務では必須級。まず「今月=0、翌月=1、前月=-1」を体に覚え、期間条件に素早く組み込めるようにしておきましょう。
