EOMONTHは、指定した月の末日を返す関数です。
End Of MONTH の略で、月末が28日か30日か31日かを自動で判定します。うるう年も正しく処理されます。
月次集計や締め日の計算で頻繁に使う、実務価値の高い関数です。ExcelとGoogleスプレッドシートで共通です。
書式
=EOMONTH(基準日, 月数)
| 引数 | 内容 |
|---|---|
| 基準日 | 起点となる日付 |
| 月数 | 何ヶ月後(先)か。0が当月、-1が前月、1が翌月 |
月数の0が「当月」である点が最も重要です。
基本の使い方
A1に 2026/4/15 が入っているとします。
=EOMONTH(A1, 0) → 2026/4/30 (当月末)
=EOMONTH(A1, 1) → 2026/5/31 (翌月末)
=EOMONTH(A1, -1) → 2026/3/31 (前月末)
結果が数値で表示されたら、セルの表示形式を「日付」に変更してください。
月初日を求める
EOMONTHには「月初」を返す機能がありません。前月末に1を足すという書き方をします。
=EOMONTH(A1, -1) + 1 → 2026/4/1 (当月1日)
これが定番のイディオムです。翌月1日なら次のようになります。
=EOMONTH(A1, 0) + 1 → 2026/5/1
DATE(YEAR(A1), MONTH(A1), 1) でも同じことができますが、EOMONTHのほうが短く、月をまたぐ計算に強い書き方です。
月次集計での使い方
EOMONTHが最も活きるのがここです。
今月のデータだけ集計する
=SUMIFS(C:C, A:A, ">="&EOMONTH(TODAY(),-1)+1, A:A, "<="&EOMONTH(TODAY(),0))
「当月1日以上、当月末日以下」という条件です。月が変わっても数式を直す必要がありません。
ただし、日付に時刻が含まれている場合、<= で月末を指定すると 4/30 15:00 のデータが漏れます。安全なのは翌月1日未満で指定する形です。
=SUMIFS(C:C, A:A, ">="&EOMONTH(TODAY(),-1)+1, A:A, "<"&EOMONTH(TODAY(),0)+1)
< で翌月1日——これを習慣にしておくと事故が防げます。
月次の集計表を作る
A列に月初日を並べ、その横に集計を置きます。
A2: =DATE(2026, 4, 1)
A3: =EOMONTH(A2, 0) + 1 (翌月1日)
A4: =EOMONTH(A3, 0) + 1
A3を下にコピーすれば、月初日が並びます。
集計側は次の形です。
B2: =SUMIFS($C:$C, $A:$A, ">="&A2, $A:$A, "<"&EOMONTH(A2,0)+1)
月初日を起点に、その月末までを集計しています。この形なら何ヶ月分でもコピーで作れます。
締め日・支払日の計算
月末締め・翌月末払い
=EOMONTH(A1, 1)
月末締め・翌々月10日払い
=EOMONTH(A1, 1) + 10
翌月末に10日を足すと翌々月10日になります。
20日締め・翌月末払い
20日締めは、20日を境に締め月が変わります。
=IF(DAY(A1) <= 20, EOMONTH(A1, 1), EOMONTH(A1, 2))
20日以前なら翌月末、21日以降なら翌々月末です。
支払日が土日なら前倒し
WORKDAY と組み合わせます。
=WORKDAY(EOMONTH(A1,1)+1, -1)
「翌月末の翌日から、営業日を1つ戻る」=翌月末以前の直近営業日です。祝日リストを第3引数に渡せば、祝日も避けられます。
=WORKDAY(EOMONTH(A1,1)+1, -1, 祝日!A:A)
月をまたぐ計算に強い理由
「3ヶ月後の月末」を求める場面を考えてください。
DATE(YEAR(A1), MONTH(A1)+3, 0) でも計算できますが、月が12を超えると年をまたぐ処理が必要になります。
EOMONTHなら気にする必要がありません。
=EOMONTH(A1, 3)
年またぎもうるう年も自動で処理されます。 2026/12/15 から3ヶ月後は 2027/3/31 と正しく返ります。
エラーの対処
結果が数字で表示される
セルの表示形式が「数値」になっています。「日付」に変更してください。日付は内部的に数値(シリアル値)で保持されているためです。
#VALUE! が出る
- - 基準日が日付ではなく文字列になっている
- - 月数が数値でない
文字列の日付は DATEVALUE で変換してください。
#NUM! が出る
計算結果がスプレッドシートの扱える日付の範囲を超えています。月数に極端な値を入れていないか確認してください。
集計が合わない
日付に時刻が含まれている可能性が高いです。<= で月末を指定するのをやめ、< で翌月1日を指定してください。
Excelとの違い
書式・挙動ともに共通です。WORKDAY DATE DAY との組み合わせも同じように使えます。
古いExcel(2003以前)ではアドインが必要でしたが、現在のバージョンでは標準機能です。
まとめ
- - 書式は
=EOMONTH(基準日, 月数)。0が当月 - - 月初は
=EOMONTH(A1, -1) + 1 - - 月次集計は
>=月初と<翌月1日で書く(時刻対策) - - 締め日・支払日の計算に強い
- - 年またぎ・うるう年を自動で処理する
- - 結果が数字なら表示形式を「日付」に
コメントを残す