※本記事には広告(アフィリエイトリンク)を含む場合があります。
ExcelのEOMONTH関数で支払期限を自動計算|月末締め翌月末払い・20日締め・土日の前倒しまで
請求書を作るたびに「翌月末っていつだっけ?」とカレンダーを見ていませんか。ExcelのEOMONTH(エンド・オブ・マンス)関数を使えば、支払期限を自動で計算できます。
この記事では、よくある支払条件ごとの式と、支払日が土日のときに前の平日にずらす方法を紹介します。
EOMONTH関数の形
=EOMONTH(開始日, 月数)
「開始日から○か月後の月末の日付」を返します。月数が0なら同じ月の月末、1なら翌月末、2なら翌々月末です。
2月が28日まで、4月が30日まで、といった月ごとの違いはExcelが自動で計算してくれます。
支払条件ごとの式
A2セルに請求日が入っているとします。
| 支払条件 | 式 |
|---|---|
| 月末締め翌月末払い | =EOMONTH(A2,1) |
| 月末締め翌々月末払い | =EOMONTH(A2,2) |
| 月末締め翌月10日払い | =EOMONTH(A2,0)+10 |
| 20日締め翌月末払い | =EOMONTH(A2,IF(DAY(A2)<=20,1,2)) |
練習用ファイルでの結果は次のとおりです。
| 請求日 | 翌月末 | 翌々月末 | 翌月10日 | 20日締め翌月末 |
|---|---|---|---|---|
| 2026/1/15 | 2026/2/28 | 2026/3/31 | 2026/2/10 | 2026/2/28 |
| 2026/1/31 | 2026/2/28 | 2026/3/31 | 2026/2/10 | 2026/3/31 |
| 2026/12/10 | 2027/1/31 | 2027/2/28 | 2027/1/10 | 2027/1/31 |
ポイントを2つ説明します。
- 翌月10日払いは、「今月末」(
EOMONTH(A2,0))に10日を足しています。今月末の10日後は、翌月10日です。 - 20日締めは、20日までの請求なら翌月末、21日以降なら翌々月末になります。
DAY(A2)で請求日の「日」を取り出し、IF関数で月数を1か2に切り替えています。1/31の請求が3/31払いになるのはこのためです。
支払日が土日なら前の平日にする
支払期限が土日にあたる場合は、前の平日に前倒しするルールの会社もあります。そのときはWORKDAY関数を組み合わせます。
=WORKDAY(EOMONTH(A2,1)+1, -1)
「翌月末の次の日(翌々月1日)」から、平日を1日さかのぼる、という意味です。翌月末が平日ならその日、土日なら直前の金曜日になります。
| 請求日 | 翌月末 | 土日なら前の平日 |
|---|---|---|
| 2026/1/15 | 2026/2/28(土) | 2026/2/27(金) |
| 2026/4/15 | 2026/5/31(日) | 2026/5/29(金) |
| 2026/12/10 | 2027/1/31(日) | 2027/1/29(金) |
WORKDAY関数は、そのままでは土日だけを休みとして扱います。祝日も避けたいときは、祝日の一覧を別の場所に入力して、3つ目の引数にその範囲を指定します(例:=WORKDAY(EOMONTH(A2,1)+1,-1,$H$2:$H$20))。
よくあるつまずき:日付ではなく数字が出る
EOMONTH関数を入れたセルに「46081」のような数字が表示されることがあります。これは日付のシリアル値(Excelが内部で使っている日付の番号)で、計算結果は合っています。
セルの表示形式を「日付」に変えれば、2026/2/28 のように表示されます。曜日も出したいときは、ユーザー定義で yyyy/m/d(aaa) と指定すると「2026/2/28(土)」の形になります。
テンプレートで使いたい人へ
この記事の式は、ラクスプのテンプレートでも使っています。
- 請求書テンプレート(プロ版):取引先を選ぶと、支払期限が自動で入る
- 売上・所得管理テンプレート(プロ版):入金予定日を自動で計算し、期限を過ぎた未入金を赤く表示する
まとめ
=EOMONTH(日付, 月数)で、○か月後の月末が出る- 翌月10日払いは
EOMONTH(日付,0)+10、20日締めは IF と DAY で月数を切り替える - 土日を避けるときは
=WORKDAY(EOMONTH(日付,1)+1, -1) - 数字が表示されたら、表示形式を日付にする