【Excel】○年○月の月初・月末を自動計算!カレンダー管理の関数

【Excel】○年○月の月初・月末を自動計算!カレンダー管理の関数
🛡️ 超解決

Excelで月次の売上表や勤怠管理表を作成する際、毎月手動で日付を打ち直していませんか?「1月は31日まで、2月は28日まで」とカレンダーを確認しながら数値を入力する作業は、非効率であるだけでなく、入力ミスによる計算不整合を招く最大の要因となります。Excelの関数を正しく組み合わせれば、特定のセルに「年」と「月」を入力するだけで、その月の月初(1日)から月末日までの期間をすべて自動で算出・表示させることが可能です。本記事では、カレンダー管理を劇的に効率化し、人為的ミスを物理的に排除するための論理的な数式構築の手順を詳しく解説します。

【要点】カレンダー管理を自動化する3つのコア技術

  • DATE関数で月初を固定: 年・月の指定から、必ず「その月の1日」を導き出す。
  • EOMONTH関数で月末を特定: 2月の閏年判定も含め、不規則な最終日を自動取得する。
  • 連動設定による一括更新: 1箇所のセルを変えるだけで、シート内の全日付を同期させる。

ADVERTISEMENT

1. 基礎:月初日(1日)を自動生成するDATE関数の仕組み

カレンダー作成の第一歩は、基準となる「その月の1日」を正しく表示させることです。これを手入力ではなく数式で行うことで、月が替わっても自動で日付が更新されるようになります。

1-1. DATE関数の基本書式

=DATE(年, 月, 日)

例えば、A1セルに「2026」、B1セルに「2」と入力されている場合、C1セルに以下の式を入力します。
=DATE(A1, B1, 1)
これにより、C1セルには必ず「2026/2/1」が表示されます。ポイントは「日」の引数を「1」に固定することです。これにより、年と月の指定が変わるだけで、常に正しい月初日が算出されます。


お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

2. 応用:月末日を不規則な月でも正確に出す手順

月初が決まったら、次に必要となるのが「その月の最終日がいつか」という情報です。ここでは前項で解説したEOMONTH関数を活用します。

2-1. 月初セルを起点にする計算

C1セルに前述のDATE関数による月初(2026/2/1)が入っている場合、月末を出す式は以下のようになります。
=EOMONTH(C1, 0)
この式のメリットは、月初セル(C1)さえ正しく設定されていれば、2月が28日であっても29日であっても、Excelが内部ロジックで自動的に判断して最終日を返してくれる点にあります。


3. 実践:1ヶ月分のカレンダーを全自動で作成するフロー

「年」と「月」の2つのセルを変更するだけで、1日から末日までがすべて書き換わる表を作成する具体的な手順です。

手順①:入力用セルの用意

A1セルを「年(2026)」、B1セルを「月(2)」の入力欄とします。

手順②:初日(1日)の設定

カレンダーの開始行(例:A4セル)に以下の式を入れます。
=DATE(A1, B1, 1)

手順③:2日目以降の連続データ作成

A5セル(2日目)には、単純に上のセルに1を足す式を入れます。
=A4 + 1
これを31日分(A34セル付近まで)オートフィルでコピーします。

手順④:末日以降を非表示にする(高度な設定)

30日までの月の場合、31日の欄に翌月の1日が表示されてしまいます。これを防ぐには、IF関数を組み合わせて「月末を超えたら空白にする」という条件分岐を行います。
=IF(A33="","",IF(A33+1 > EOMONTH($A$4,0),"",A33+1))
この式を29日目以降のセルに適用することで、月によって表示日数が変わる「可変カレンダー」が完成します。


ADVERTISEMENT

4. 比較:手入力 vs DATE/EOMONTH連動

自動化のメリットを実務上のコスト観点で整理します。

項目 手入力・オートフィル DATE/EOMONTH連動
月替わりの作業 全日付のドラッグが必要 「月」の数字を1回変えるだけ
入力ミスのリスク 高い(末日の間違い等) ほぼゼロ(計算式が担保)
集計の安定性 不安定(行の削除等で崩れる) 極めて高い(VLOOKUP等の引用も容易)

5. 運用のコツ:曜日の自動表示と書式設定

日付を自動化したら、合わせて「曜日」も自動で表示されるように設定しましょう。これにより、視認性がさらに向上します。

5-1. 表示形式による曜日の表示(aaa)

日付が入ったセルの表示形式を、ユーザー定義で「yyyy/m/d(aaa)」と設定してください。「2026/2/1(日)」のように、日付に基づいた正しい曜日が自動的に添えられます。この時、曜日もExcel内部の日付データと連動しているため、月を変えれば曜日も正しく一斉に書き換わります。

5-2. 週末の色分け(条件付き書式)

WEEKDAY関数を「条件付き書式」に設定することで、「土曜日なら青、日曜日なら赤」という色分けも自動化できます。ここまで設定しておけば、毎月の表作成にかかる時間は、もはや数秒に短縮されます。


6. まとめ:日付の「変数化」がシートの寿命を延ばす

カレンダー管理において、日付を「数値」ではなく「関数による算出結果」として扱うことは、Excel作業のステージを一段引き上げることを意味します。DATE関数で月初を固定し、EOMONTH関数で月末を監視する。このシンプルな論理構成を一度シート内に組み込んでしまえば、そのテンプレートは数年、数十年にわたって正確に機能し続けます。

手動での入力は、その場凌ぎの解決にはなりますが、長期的な運用では必ず疲弊とミスを招きます。今回解説した自動計算の仕組みを導入し、あなたのExcelを「ただの表」から「意思を持って動くシステム」へとアップデートしてください。日付管理に奪われていた時間を、より高度なデータ分析や戦略策定へとシフトさせることが、実務効率化の真の目的です。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。