エクセルで毎月の予定表やカレンダーを作成する際、いまだに「先月のシートをコピーして、日付を1つずつ打ち直す」という作業をしていませんか?
最新のエクセル関数を活用すれば、年と月を書き換えるだけで、日付・曜日・祝日、さらには前後の月のグレーアウトまで、すべてが瞬時に切り替わる「シート」を作ることができます。
自動カレンダー作成に必要な「4つの関数」
まずは、今回使用する関数を紹介します。これらを組み合わせることで、複雑な計算をエクセルに丸投げできます。
① DATE関数
年、月、日の3つの数字を組み合わせて「日付データ」に変換する関数です。
例:DATE(2026, 1, 1) と入力すれば、エクセルはそれを「2026年1月1日」という日付として認識します。
② WEEKDAY(ウィークデイ)関数
その日が「何曜日か」を判定し、1(日曜日)から7(土曜日)までの数字で返してくれる関数です。カレンダーの開始位置を決めるために必須となります。
③ SEQUENCE(シーケンス)関数
指定した行数と列数の中に、連続した数字を一気に流し込む関数です。
「1つのセルに数式を入れるだけで、隣のセルまで数字が溢れ出す」というスピル機能を利用します。
④ MONTH(マンス)関数
日付データから「月」だけを取り出す関数です。
今月のカレンダーの中に、紛れ込んでしまった「先月の日付」や「来月の日付」を特定するために使います。
実践:5分で作る自動カレンダーの全手順
それでは、実際に手を動かしていきましょう。
ステップ1:設定用の入力欄を作る
まず、シートの左上に以下の入力をしてください。
- B1セル:年(例:2026)
- D1セル:月(例:1) これで、B1とD1を書き換えるだけでカレンダーが連動する準備が整いました。

ステップ2:曜日ラベルの作成
3行目(A3からG3)に、左から「日・月・火・水・木・金・土」と入力します。

ステップ3:数式を入力する
カレンダーの左上、A4セルに以下の数式を1つだけ入力してください。
=SEQUENCE(6, 7, DATE(B1, D1, 1) – WEEKDAY(DATE(B1, D1, 1)) + 1)
この数式を入力してエンターキーを押すと、A4からG9までの範囲に一瞬で日付(あるいは5桁の数字)が表示されます。


上記のようにシリアル値が出た場合は「ホーム」タブ→「数値」→ユーザー設定で設定を好きなものに変えてください。

なぜこの数式でカレンダーができるのか?(深掘り解説)
なぜ「- WEEKDAY + 1」をするのか?
カレンダーは必ずしも「1日が日曜日」から始まるとは限りません。
例えば、1月1日が「木曜日」だった場合、カレンダーの1行目の日曜日には「12月28日」を表示させる必要があります。
- DATE(B1, D1, 1) で、まず「1月1日」を特定します。
- WEEKDAY関数で、1月1日が「木曜日(数値は5)」であることを突き止めます。
- 1月1日から5を引くと、前週の土曜日になります。そこに1を足すことで、正確に「その週の日曜日」へと着地できるのです。
このロジックを理解すると、月曜始まりのカレンダーへのカスタマイズも容易になります。
デザインを極める「条件付き書式」の魔術
今のままでは、日付が「2026/1/1」と表示されていたり、前後の月が混ざって見づらかったりします。
表示形式を「日」だけにする
- 日付範囲(A4:G9)を選択。
- 右クリックで「セルの書式設定」を開く。
- 「ユーザー定義」を選択し、種類に d とだけ入力します。 これで、「1月1日」が「1」というシンプルな表示に変わります。
今月以外をグレーアウトする
「1月のカレンダーなのに、12月や2月の日付が見えているのは紛らわしい」という問題を解決します。
- 日付範囲を選択した状態で「条件付き書式」をクリック。
- 「新しいルール」から「数式を使用して、書式設定するセルを決定」を選択。
- 次の数式を入力: =MONTH(A4)<>D1
- 書式で文字色を「薄いグレー」に設定。

この「<>」という記号は、エクセルで「〜ではない(等しくない)」を意味します。「そのセルの月が、D1セルに入力した月と一致しない場合、色を薄くせよ」という命令を出しているわけです。
応用編:祝日リストとの連携(COUNTIF関数の活用)
さらに実用性を高めるために、祝日を自動で赤くする方法も解説します。
- 新しいシート「祝日設定」を作成。
- A列に祝日の日付、B列に祝日名をリスト化します。
- カレンダーシートに戻り、条件付き書式を追加します。
- 数式: =COUNTIF(祝日設定!$A:$A, A4)>0
- 書式で背景を「薄いピンク」に、文字を「赤」にします。

これにより、エクセルが「カレンダーの日付が祝日リストの中に1つでも存在するか?」を毎瞬チェックしてくれるようになります。
まとめと設定一覧
| 設定対象 | 使うべき数式・設定値 | 期待される効果 |
|---|---|---|
| 日付の自動生成 | SEQUENCE関数 | 数式1つで42日分を自動入力 |
| 開始日の特定 | DATE関数とWEEKDAY関数 | どんな月でも日曜から正しく開始 |
| 今月以外の非表示 | MONTH(A4)<>D1 | 余計な日付をグレーアウト |
| 祝日の自動判定 | COUNTIF(祝日リスト, A4)>0 | 休日設定を自動化 |
おわりに
いかがでしたでしょうか?「関数だけで作る自動カレンダー」は、一度作ってしまえばずっと使える便利なツールになります。
手入力という「時間泥棒」から卒業し、エクセル本来のパワーを引き出すことで、よりクリエイティブな仕事に時間を割けるようになります。ぜひ試してみてください。
コメント