この記事で分かること
- EOMONTHが「月末日」、EDATEが「同じ日にちの前後の日付」を返す違い
- 整数設例で見る、利払日スケジュールと期間ヘッダーの自動生成
- 月数を1セルにまとめ、日付の手入力をなくすモデル設計の考え方
- 日にちが存在しない月をまたぐときの挙動と営業日調整の注意
30秒で分かる定義
EOMONTH関数とEDATE関数は、いずれも基準日から指定した月数だけ前後した日付を返す日付関数ですが、返す日にちが異なります。EOMONTH(読み方:いーおーまんす)は、基準日から指定月数だけ移動した月の「月末日」を必ず返します。EDATE(読み方:いーでーと)は、基準日と同じ日にち(応当日)を維持したまま移動した日付を返します。財務モデルでは、決算期末の期間ヘッダーにEOMONTH、契約上の利払日・満期日の計算にEDATEを使い分けます。
なぜ実務で重要なのか
財務モデルの期間ヘッダーや、デットスケジュールの利払日・返済日は、モデルの土台となる行です。日付を手入力すると、月によって日数が違う、うるう年の2月が29日になる、といった暦のルールを人間が毎回意識する必要があり、ミスの温床になります。EOMONTHとEDATEを使えば開始日を1セルで管理でき、開始日が変わっても下流のタイムライン全体が連動します。四半期・月次モデルの展開やDebt Scheduleの作り方の土台がこの2関数です。
計算式(または仕組み)
EDATE(同じ日にち)= EDATE(開始日, 月数)
月数に正の数で未来方向、負の数で過去方向に移動します。0を入れるとEOMONTHは「開始日が属する月の月末日」を返します。EDATEは移動先の月にその日にちが存在しない場合(1月31日の1か月後で2月に31日が無い等)、自動的にその月の末日に調整されます。これは仕様上の挙動でエラーにはなりません。
整数設例で確認する
設例(架空数値)。借入実行日を2026年1月15日とし、3か月ごとの利払日をEDATEで求めます。
=EDATE(2026/1/15, 6) → 2026年7月15日
=EDATE(2026/1/15, 9) → 2026年10月15日
いずれも「15日」が維持され、月だけ進みます。次に決算期末3月末の会社の四半期末をEOMONTHで求めます。
=EOMONTH(2026/3/31, 6) → 2026年9月30日
=EOMONTH(2026/3/31, 9) → 2026年12月31日
EOMONTHは開始日の日にち(31日)を無視して対象月の末日だけを返すため、6月は30日、12月は31日と月ごとの日数差があっても正しく末日が返ります。開始日1セルを変えるだけで、以降の期間末日がすべて連動して再計算されるのが利点です。
財務モデルでの位置付け
期間ヘッダーと利払日はモデルで最も上流に位置する行です。ここで日付を1つでも手入力すると、日数按分の計算(利息・減価償却・運転資本の増減)が連鎖的に狂います。EOMONTHとEDATEで期間軸を関数化しておけば、決算期や借入実行日の前提が変わっても列を手で直す作業が発生しません。LBOやプロジェクトファイナンスでは返済スケジュールの日付が1日ずれると日割り計算がすべて合わなくなるため、期間軸の関数化は初期設計で最優先される項目です。
財務モデル・Excelでの使い方
- 期間ヘッダー行:先頭セルに開始日を置き、2列目以降は
=EOMONTH(前セル,1)をドラッグする。四半期モデルなら月数を3にする - 利払日・返済日:借入実行日を前提セルに1つ置き、
=EDATE(借入実行日セル,3*列番号)で参照すれば支払回数の変更に数式1本で対応できる - 期間の日数:期首・期末のEOMONTHの差分で実日数を求め、日割り計算の分母に使う
複数シートにまたがるタイムライン設計はモデルタイムラインとフラグ、解像度を上げる考え方は四半期・月次モデルへの展開を参照してください。
この用語をExcelで「組める」状態にする
開始日1セルからEOMONTH・EDATEで期間ヘッダーと利払日スケジュールを自動生成し、前提変更に連動するタイムラインを組めるようになる。
実務家が確認するポイントとよくある誤解
誤解1:「EOMONTHとEDATEはどちらでも同じ」→ 月末基準か応当日基準かで結果が変わります。使い分けを誤ると月末31日と応当日30日がずれ、日数計算全体が狂います。
誤解2:「月数は正の数しか使えない」→ 負の数も使え、EDATE(基準日,-1)で1か月前を求められます。
誤解3:「EOMONTHの第2引数0の意味が分からない」→ 0は「今月の月末日」を返し、期首日から当月末を求める場面で頻出します。
確認ポイント:うるう年をまたぐ期間は日数が28日、29日と変わるため、日割り計算の検算をうるう年とそうでない年の両方で行います。
日本実務での扱い
日本企業の多くは決算期末を3月末とするため、EOMONTHで四半期末を自動生成する組み方が標準です。一方、借入契約書に定める利払日は、応当日が休日に当たる場合の調整ルール(前営業日・翌営業日の繰り上げ下げ)を別途定めるのが一般的で、EDATE自体はこの営業日調整を行いません(2026年7月時点)。応当日が休日に当たるかは祝日一覧との突き合わせで別途判定し、契約書の条項どおり調整する数式を後段に追加する必要があります。
面接・モデルテストで問われるポイント
Q:期間ヘッダーを日付の手入力ではなく関数で作るべき理由を説明してください。
「開始日を1セルに集約しEOMONTHやEDATEで関数化しておけば、決算期や借入実行日の変更があってもそのセルを直すだけでタイムライン全体が更新されます。手入力では列ごとに直す作業とうるう年の数え間違えのリスクが発生します。利息計算や減価償却はこのタイムラインに依存するため、期間軸の関数化がモデルの信頼性の土台になります。」
深掘りでは「応当日が休日の場合の調整をどこで行うか」が問われます。
よくある質問(FAQ)
Q. EOMONTHで求めた月末日を「翌月1日」に変換するには?
A. =EOMONTH(開始日,0)+1とすれば翌月1日が求められます。期末日と期首日を1日ずらして両方使いたい場面で使います。
Q. EDATEとEOMONTHはアドインなしで使えますか?
A. 現在のExcel(Microsoft 365、Excel 2016以降)では標準関数として組み込まれており、有効化は不要です。
出典・参考(2026-07-21確認)
- Microsoft サポート(Excel「EOMONTH関数」公式ドキュメント) https://support.microsoft.com/
- Microsoft サポート(Excel「EDATE関数」公式ドキュメント) https://support.microsoft.com/
※本記事は教育目的の一般的な解説であり、法務・税務・投資助言ではありません。設例は理解のための架空数値です。