エクセルで毎月の予定表やシフト表を作っていると、月が変わるたびに日付や曜日を手入力で修正するのが手間に感じることってありますよね。私も以前は毎月カレンダーとにらめっこしながらポチポチ打ち直していましたが、実は関数や表示形式のコツをつかむだけで、エクセルの月を自動で翌月に切り替える仕組みは簡単に作れるんです。年またぎの処理や1ヶ月後の日付計算なども、一度設定してしまえばずっと使い回せるので、日々のルーティンワークが劇的に楽になりますよ。この記事では、カレンダー作成から曜日連動、少し複雑な締め日計算まで、明日からすぐに使える実践的なテクニックを順番に解説していきますね。

- エクセルが日付を認識する仕組みであるシリアル値の基本
- EDATEやEOMONTHなど日付を操作する関数の使い方
- 月を変更するだけで日付や曜日が変わるカレンダーの作り方
- 月末の非表示や別シートからの予定自動取得といった応用技術
エクセルで月を自動で翌月に更新する基本
まずは、エクセルに日付を正しく計算させるための基本的な仕組みと、月をまたぐ計算に欠かせない必須の関数について確認していきましょう。ここを理解しておくと、後からどんな形にでも応用が効くようになりますよ。
シリアル値と表示形式の基礎
エクセルで日付を扱う上で、絶対に知っておきたいのがシリアル値という概念です。画面上では「2024/10/1」のように見えていても、エクセルの内部では「1900年1月1日」を「1」として、そこから何日経過したかを表すただの連番(数値)として記憶されています。これを知らないと、関数を入れたのに「45200」のような謎の数字が出てきてパニックになってしまうかもしれません。
謎の数字が出たら慌てずに「表示形式」をチェック!
もし計算結果がおかしな数字になってしまったら、セルを選択して「Ctrl + 1」キーでセルの書式設定を開いてみてください。表示形式を「標準」から「日付」に変更するだけで、あっという間に見慣れた年月日スタイルに戻ります。エクセルにとっては日付も単なる数字の足し算や引き算なので、このルールさえ覚えておけば日付の自動化はグッと身近になりますね。
EDATE関数で翌月を出す
「今日からちょうど1ヶ月後の日付」を出したいときに大活躍するのが、EDATE(イーデイト)関数です。契約の更新日や定期的なタスクの期限を管理するのにすごく便利かなと思います。
使い方はとてもシンプルで、=EDATE(開始日, 月数)と入力します。例えば、A1セルに「2024/5/10」と入っているとき、1ヶ月後の「2024/6/10」を出したければ、=EDATE(A1, 1)とするだけです。もし1ヶ月前を出したければ、月数を「-1」にすればOKです。
丸1ヶ月間の「最終日(前日)」を出したい場合は、=EDATE(A1, 1) - 1のように、関数の結果から1を引くだけで計算できちゃいます。
EOMONTH関数で月末日を計算
経理処理などで「月末」の日付が必要になることって多いですよね。2月は28日だったり閏年で29日だったり、月によってバラバラな月末を自動でピタッと当ててくれるのがEOMONTH(エンド・オブ・マンス)関数です。
構文はEDATE関数と似ていて、=EOMONTH(開始日, 月数)となります。例えばA1セルの日付と同じ月の月末を出したいなら、月数に「0」を指定して=EOMONTH(A1, 0)とします。翌月の月末なら月数を「1」にするだけですね。
| やりたいこと | 数式の例 |
|---|---|
| 当月の月末を出したい | =EOMONTH(基準日, 0) |
| 翌月の月末を出したい | =EOMONTH(基準日, 1) |
| 当月の「1日(月初)」を出したい | =EOMONTH(基準日, -1) + 1 |
表の一番下にあるように、先月末を出してからプラス1日するというテクニックを使えば、どんな日付からでも必ず「当月の1日」を導き出せるのでおすすめです。
DATE関数でカレンダー作成
年と月の数字を入力するだけで、万年カレンダーの起点を作れるのがDATE関数です。=DATE(年, 月, 日)という構成で、別々のセルに入っている数値を合体させて一つの日付データ(シリアル値)を作り出します。
例えば、B1セルに「2024」、C1セルに「10」と入力しておくとして、カレンダーの1日目のセルに=DATE(B1, C1, 1)と入れます。こうしておけば、B1やC1の数字を打ち替えるだけで、カレンダーのベースとなる日付が一瞬で切り替わるようになります。さらに、エクセルのDATE関数にはちょっとした裏ワザがあって、日の部分に「0」を入れると「前月の最終日」を返してくれるんです。月末計算が少しややこしい時に知っておくと便利かもですね。
TEXT関数で曜日を自動更新
日付が翌月に切り替わっても、横にある「月」「火」といった曜日が手動のままでは意味がないですよね。日付と完全に連動して曜日を自動更新させるには、TEXT関数を使います。
A1セルに日付が入っているとしたら、曜日を表示させたいセルに=TEXT(A1, "aaa")と入力してみてください。この「aaa」というのは「月」「火」のような1文字の曜日を表す表示形式コードです。「aaaa」にすれば「月曜日」と表示されます。対象の月を変更して日付が変われば、TEXT関数が即座に読み取って曜日も一瞬で更新してくれます。これでカレンダーとにらめっこする作業とはおさらばですね。
エクセルの月を自動で翌月にする応用テク

ここからは、実務で直面しやすいちょっと複雑なケースを見ていきましょう。特定の日で締める計算や、見栄えを整えるテクニックを組み合わせることで、誰もが使いやすい全自動のテンプレートが完成しますよ。
20日締め等の支払日計算
月末締めなら単純ですが、「20日締め翌月末払い」のような指定日締めの場合、計算のハードルがグッと上がりますよね。こういう時は、日付を一旦過去にずらして考えるのがコツです。
例えば、20日締めの締め日を計算したい場合、=EOMONTH(基準日 - 20, 0) + 20という式を使います。基準日から一旦20日引くことで、エクセルの中で仮想的に前月末の状態を作り出し、EOMONTH関数でその月末を確定させてから、再び20日を足して元に戻すというロジックです。
支払日などの複雑な条件分岐について
20日締め・翌月15日払いのような場合は、=EOMONTH(基準日 - 20, 1) + 15とすることで、20日までの分と21日以降の分を自動的に振り分けて正しい支払月を算出できます。少し頭の体操が必要ですが、汎用性の高いテクニックです。
※各企業様の商習慣によって細かい日付の扱いは異なる場合がありますので、実際の業務に適用される際は、正しい日付が算出されているか十分にご確認くださいね。
年越しカレンダーの表示切替
月をまたぐ処理でよくつまづくのが「12月から翌年1月へ」の年越し処理です。でも安心してください。先ほど紹介したDATE関数などを正しく使っていれば、月の入力欄に「12」の次に「13」と入力しても、エクセル側で勝手に「翌年の1月」として計算してくれる機能が備わっています。
カレンダーの日付を連続させる場合は、最初の1日のセルから下(または右)に向かって=A1+1のように1日ずつ足していく数式をコピーしておけば、月をまたいでも年をまたいでも、カレンダーは途切れることなく自動で正確な日付を刻み続けてくれます。
条件付き書式で翌月を非表示
月によって日数が28〜31日と変動するため、固定枠のカレンダーを作ると月末に「翌月の1日」などがはみ出して表示されてしまうことがあります。これを消して見た目をスッキリさせるには、条件付き書式とMONTH関数を組み合わせます。
カレンダーの日付範囲を選択し、条件付き書式の新しいルールで数式を設定します。例えばカレンダーの対象月がC1セルにある場合、=MONTH(A5)<>$C$1(A5はカレンダーの一番左上の日付セル)のように入力します。これは「表示されている日付の月が、基準の月と違ったら」という条件です。この条件を満たした時の書式として、フォントの色を背景色と同じ(通常は白)に設定します。これで、データは存在しているのに見た目上は翌月の日付が消え、きれいなカレンダーになりますよ。
予定表をVLOOKUPで連携
カレンダーの枠組みができたら、別シートに入力した予定データを自動でカレンダー上に引っ張ってくる仕組みを作りましょう。ここで活躍するのがVLOOKUP関数です。
まず、予定を入れる表を「テーブル化(Ctrl+T)」しておくのがポイントです。こうすることで、後から予定を追加しても自動で範囲が広がります。カレンダー側には、=IFERROR(VLOOKUP(検索値となる日付, テーブルの範囲, 列番号, 0), "")という式を入れます。IFERROR関数で囲むことで、予定が入っていない日でも「#N/A」エラーが出ず、空白できれいに表示されます。これで、月を変えるだけで予定までパッと切り替わる本格的なシステムになりますね。
エクセルで月を自動で翌月にするまとめ
いかがでしたでしょうか。今回は、シリアル値という根っこの部分から、関数を使った日付や曜日の連動、さらには条件付き書式やVLOOKUPを使った見栄えとデータ連携まで、エクセルで月を自動で翌月に更新するための実務的なアイデアを詰め込んでみました。
最初は少しややこしく感じるかもしれませんが、一度仕組みを作ってしまえば、毎月の面倒な手作業から解放されます。業務のミスも減らせますし、空いた時間を他の作業に回せるようになりますよ。ぜひ、お手元のファイルで一つずつ試しながら、自分なりの使いやすい自動化カレンダーや管理表を作ってみてくださいね。
