EOMONTH関数の使い方・読み方|月末日と月初日を求める

執筆者:

カテゴリ:

EOMONTH関数の使い方・読み方のイメージ

日付

EOMONTH関数の使い方・読み方

Excel関数辞典

読み方:EOMONTH は「イーオーマンス」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)

EOMONTHは、指定した月の末日を返す関数です。

使える環境Excel○Googleスプレッドシート○
このページの中身(22項目)
  1. 書式
  2. 基本の使い方
  3. 月初日を求める
  4. 月次集計での使い方
  5. 締め日・支払日の計算
  6. 月をまたぐ計算に強い理由
  7. エラーの対処
  8. Excelとの違い
  9. 月末を手で計算してはいけない理由
  10. 期間の集計に使う
  11. 締め日が月末でない場合
  12. 経過月数や更新日の計算
  13. 月次の集計表を自動化する
  14. 締め日と支払日の管理
  15. 「日付」の関数を全体から見る
  16. 数式を書く前の手順
  17. どの関数でも共通する確認
  18. 引き継ぐときに残すこと
  19. このサイトの収録状況
  20. よくある質問
  21. まとめ
  22. 関連する関数

この記事の書式と対応環境の出どころ(2026-08-26 確認)

関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。

End Of MONTH の略で、月末が28日か30日か31日かを自動で判定します。うるう年も正しく処理されます。

月次集計や締め日の計算で頻繁に使う、実務価値の高い関数です。ExcelとGoogleスプレッドシートで共通です。

EOMONTH関数の使い方の記事構成図
EOMONTH関数の使い方:この記事で扱う内容

書式

=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関数の使い方の要点図
EOMONTH関数の使い方

月初日を求める

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以前)ではアドインが必要でしたが、現在のバージョンでは標準機能です。


月末を手で計算してはいけない理由

月末の日付は、月によって二十八日、二十九日、三十日、三十一日と変わります。うるう年もあります。この判定を数式で書こうとすると、条件分岐が増えて必ずどこかで間違えます。

専用の関数を使えば、基準の日付から何か月後の月末か、を指定するだけで済みます。うるう年も自動的に処理されます。当月の月末なら零、翌月なら一、前月なら負の一を指定します。

この関数を知らずに、月の日数を条件分岐で書いている数式を実務でよく見かけます。動いてはいますが、うるう年の判定が抜けていることが多く、四年に一度だけ誤る、という発見しにくい不具合になります。

月初の日付が欲しい場合は、前月末に一を足します。日付は連続した数値なので、一を足せば翌日です。この組み合わせで、当月の初日と末日が両方求まります。


期間の集計に使う

月次の集計表を作る場合、各月の開始日と終了日が必要になります。これを手で入力すると、月が変わるたびに更新が必要になり、入力ミスも起こります。

月初の日付だけを列に入力し、月末は関数で求める形にすると、更新の手間がなくなります。さらに、月初の日付そのものを、前の行に一か月を足す形で求めれば、最初の一行だけ入力すれば済みます。

こうして作った開始日と終了日を、条件付きの集計関数の条件として使います。期間を指定する条件は、開始日以上と終了日以下の二つです。同じ日付の列を二回条件範囲として指定する形になります。

この構成にしておくと、行を追加するだけで翌月の集計が加わります。数式を書き換える必要はありません。

注意点として、データに時刻が含まれる場合、終了日を以下という条件では、その日の零時までしか含まれません。時刻を切り落とした作業列を用意するか、翌月の月初未満という条件にしてください。


締め日が月末でない場合

実務では、締め日が月末とは限りません。二十日締め、二十五日締めといった運用があります。この場合、月末を求める関数だけでは足りません。

考え方としては、締め日を基準に期間を区切ります。二十日締めなら、前月二十一日から当月二十日まで、が一つの期間になります。

これを求めるには、月初の日付に締め日の数値を足す形で締め日を作り、その前月分と組み合わせます。年月日から日付を作る関数を使って、年と月と締め日を指定する方法もあります。こちらのほうが意図が明確になります。

締め日が土日にあたる場合の扱いも決めておく必要があります。前倒しか後ろ倒しか、業務のルールに従ってください。営業日を扱う関数と組み合わせれば、自動化できます。

締め日の運用は業務ごとに違うため、数式に埋め込まず、締め日をセルに置いて参照する形にしてください。運用が変わったときに、セルを直すだけで済みます。


経過月数や更新日の計算

契約の更新日や、支払期日の計算にも使えます。

契約開始日から一年後の更新日を求めるなら、十二か月後の月末を求めるか、年月日から日付を作る関数で年に一を足します。どちらを使うかは、更新日が月末なのか同日なのかで決まります。

支払期日が「翌月末」であれば、請求日の翌月末を求めるだけです。「翌々月十日」であれば、二か月後の月初に九を足します。

こうした計算を数式にしておくと、日付の入力ミスがなくなり、期日の一覧も自動で作れます。期日から今日を引けば残り日数が出るので、督促の管理にもつながります。

なお、月末の同日という概念には注意が必要です。一月三十一日の一か月後を二月三十一日にはできません。月末を求める関数を使えば二月二十八日になりますが、年月日から日付を作る関数では三月三日になることがあります。どちらの挙動が業務に合っているかを確認してください。


月次の集計表を自動化する

月末を求める関数を使うと、月次の集計表を一度作るだけで、以降ずっと使える形にできます。

まず、月初の日付を並べた列を作ります。最初の一行だけを手で入力し、以降は前の行に一か月を足す形にします。年月日から日付を作る関数を使えば、月をまたぐ計算も正しく処理されます。

次に、その横に月末の日付を出します。月初の日付を基準に、当月の月末を求めるだけです。うるう年も自動的に処理されます。

この二列があれば、条件付きの集計関数で期間を絞れます。開始日以上と終了日以下の二つの条件を指定します。

さらに横に、集計したい項目を並べます。件数、合計、平均。条件付きの集計関数を、月初と月末のセルを条件にして書きます。

一行分の数式が完成したら、下にコピーします。行を足すだけで翌月の集計が加わります。数式を書き換える必要はありません。

年をまたぐ場合も、月初の計算が正しければ自動的に処理されます。十二月の次は翌年一月になります。

この構成を一度作っておけば、毎月の集計作業がデータの追加だけになります。


締め日と支払日の管理

請求や支払の管理では、日付の計算が繰り返し必要になります。関数で自動化しておくと、確認の手間が減ります。

締め日が月末なら、取引日から当月の月末を求めるだけです。締め日が二十日なら、年月日から日付を作る関数で、当月の二十日を求めます。取引日が二十日を過ぎていれば翌月の締め日になるので、条件で分岐します。

支払日は、締め日を基準に計算します。翌月末払いなら、締め日の翌月末。翌々月十日払いなら、二か月後の月初に九を足します。

これらを列として持てば、取引を入力するだけで締め日と支払日が自動で出ます。支払日から今日を引けば、残り日数も分かります。

支払日が土日にあたる場合の扱いも決めておいてください。前倒しか後ろ倒しか。営業日を扱う関数と組み合わせれば、自動化できます。

締め日や支払サイトは取引先ごとに違うことが多いので、取引先マスタに持たせて検索で引く形にしてください。数式に埋め込むと、取引先が増えるたびに数式を直すことになります。

「日付」の関数を全体から見る

日付と時刻を扱う関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに18本あります。

記事
DATE
DATEDIF
DATEVALUE
DAY
DAYS
EDATE
HOUR
MINUTE
MONTH
NETWORKDAYS
NOW
TIME
TODAY
WEEKDAY
WEEKNUM
WORKDAY
YEAR
YEARFRAC

このカテゴリで共通するつまずき

文字列の日付には使えません。日付として認識されているかを先に確認してください。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。

どれを使うかの決め方

日数・月数・営業日のどれが必要かで使う関数が決まります。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。

迷ったときは

→ 全関数の一覧 に目的別の索引があります。


数式を書く前の手順

先に決めておけば、書くのは数分で終わります。

1. 出したい結果を一文で書く

「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。

2. 元データの型を確認する

文字列の日付には使えません。日付として認識されているかを先に確認してください。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。

3. 空欄と0の扱いを決める

未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。

4. 条件の数を数える

日数・月数・営業日のどれが必要かで使う関数が決まります。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。

5. 共有先の環境を確認する

新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。

6. 1行だけ書いて確認する

全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。


どの関数でも共通する確認

うまくいかないときに見る場所は、ほぼ決まっています。

参照を固定したか

下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。

範囲の行数が揃っているか

複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。

型が揃っているか

=ISNUMBER(A2)

数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。

前後に空白が入っていないか

=LEN(A2)&" / "&LEN(TRIM(A2))

数が違えば、余分な空白が入っています。見た目では判別できません。

別の方法で検算したか

同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。

最終行まで確認したか

一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。


引き継ぐときに残すこと

数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。

何を出している数式か

一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。

どの表を参照しているか

参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。

該当しないときの扱い

空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。

触ってはいけない場所

列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。

使った関数の対応環境

新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。

確定した期間は値にする

締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。

このサイトの収録状況

収録は201本です。カテゴリごとの内訳を出しておきます。

カテゴリ記事数
目的別51本
集計47本
文字列31本
日付19本 ←この記事
検索・参照15本
条件15本
機能12本
配列・抽出10本
関数一覧1本

探し方の順番

関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。

記事の構成

どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。


よくある質問

Q. 数値が表示されます

セルの表示形式が標準になっています。日付形式に変えてください。

Q. 当月の月末を出したいのですが

月数に零を指定してください。

Q. 月初を出したいのですが

前月末に一を足します。月数に負の一を指定して、結果に一を加える形です。

Q. うるう年は考慮されますか

されます。自動的に正しい日数になります。

Q. 締め日が月末ではないのですが

年月日から日付を作る関数で、締め日を指定してください。締め日はセルに置いて参照する形が保守しやすくなります。

Q. 営業日で調整したいのですが

営業日を扱う関数と組み合わせてください。祝日の一覧を用意すれば除外できます。

Q. 月数に小数を指定できますか

整数として扱われます。小数を指定しても切り捨てられます。

Q. 期間の日数を出したいのですが

終了日から開始日を引いてください。日付は連続した数値なので、差が日数になります。



まとめ

  • 書式は =EOMONTH(基準日, 月数)。0が当月
  • 月初は =EOMONTH(A1, -1) + 1
  • 月次集計は >=月初 と <翌月1日 で書く(時刻対策)
  • 締め日・支払日の計算に強い
  • 年またぎ・うるう年を自動で処理する
  • 結果が数字なら表示形式を「日付」に

関連する関数