Excelで月間カレンダーと予定表を別シートに分けると、入力場所を整理しながら予定を自動表示できます。
予定の追加や日付の変更を予定表シートで行い、カレンダーシートには該当日の予定だけを連動表示する仕組みです。
毎月の予定表を作り直す手間を減らしたい場合や、会議室予約、担当者の当番表、学校行事、店舗の予約状況などを一覧で確認したい場合にも役立ちます。
別シート連動の基本ポイント
・予定表シートは1行目を見出しにして、日付と予定を入力します。
・カレンダーシートは対象月の日付を数式で自動作成します。
・FILTER関数やTEXTJOIN関数を使うと、同じ日の複数予定もまとめて表示できます。
予定を入力する表と、確認するカレンダーを分けることが、見やすく長く使えるブックを作るコツです。
この記事では、別シートの予定表を参照し、月を切り替えるだけでカレンダーへ予定を自動反映する方法を解説します。
エクセルのカレンダーを別シートの予定表と連動させる基本設定【予定入力表を先に整える】
それではまず、予定を入力する元データとカレンダーを連動させる基本設定について解説していきます。
| 予定表シート | 入力内容 |
|---|---|
| A列 | 日付 |
| B列 | 予定名 |
| C列 | 担当者や開始時刻 |
予定表シートの1行目には、A1セルに日付、B1セルに予定、C1セルに詳細という見出しを入れます。
2行目以降へ実際のデータを追加していく形にすると、数式の参照範囲を考えやすくなります。
予定表シートの列構成
予定表シートには、日付を必ずExcelが認識できる日付形式で入力します。
たとえばA2セルへ2026年9月1日、B2セルへ月次会議、C2セルへ会議室Aと入力する構成です。
見た目が2026年9月1日であっても、文字列として入力されていると日付比較が正しく動きません。
日付は左寄せではなく右寄せで表示されることが多く、数式バーにも日付として認識されているか確認できます。
予定名だけをカレンダーへ表示したい場合でも、開始時刻、終了時刻、担当者、区分などの列を元表に残しておくと後から拡張しやすくなります。
入力するたびに並べ替えなくても動作するように、日付順でなくても参照できる数式を使う設計にしておくと安心です。
カレンダーシートの対象月セル
カレンダーシートでは、B2セルなどに対象月を入力するセルを用意します。
B2セルには2026年9月1日のように、その月の1日を入力してください。
表示形式をyyyy年m月に設定すれば、セルの中身は日付のまま、画面上は2026年9月のように見せられます。
対象月セルの考え方
カレンダーで扱う基準日は、必ず対象月の1日にそろえます。
対象月セルが2026年9月15日でも作成はできますが、月初の日付に固定したほうが数式の意味を追いやすくなります。
月を変える操作をB2セルだけに集約すると、予定表を触らずに翌月や前月の表示へ切り替えられます。
テーブル化による入力範囲の自動拡張
予定表の入力範囲を選択してCtrlキーとTキーを押すと、Excelのテーブルとして登録できます。
テーブル名を予定データのように変更しておくと、数式で予定データ[日付]や予定データ[予定]と指定できるため、列の役割が分かりやすくなります。
通常のセル範囲ではA2からA1000のように余裕を持った参照範囲が必要ですが、テーブルなら予定を追加した時点で対象範囲が広がります。
ただし、テーブル名には空白や分かりにくい記号を多用しないほうが、後から数式を修正する際に迷いません。

【操作のポイント】予定表シートは、日付、予定、詳細のように1項目を1列へ分けます。セル内改行で情報を詰め込みすぎず、検索しやすい元データを作りましょう。
月間カレンダーの日付を自動作成する数式【開始日と連続日付】
続いては、対象月に合わせてカレンダーの日付を自動作成する数式を確認していきます。
| 対象セル | 役割 |
|---|---|
| B2 | 対象月の1日 |
| B5 | カレンダー左上の日付 |
| B5からH10 | 日曜日から土曜日までの6週分 |
カレンダーは一般的に日曜日から土曜日までの7列で作ります。
B5セルを左上、H10セルを右下とした6行7列の範囲を準備すると、月をまたぐ週も含めて表示できます。
カレンダー左上の日付を求める数式
B2セルに対象月の1日が入っている場合、B5セルには対象月を含む週の日曜日を表示します。
B5セルに入力する数式
=B2-WEEKDAY(B2,1)+1
WEEKDAY関数は曜日を数値で返す関数です。
第2引数を1にすると、日曜日が1、月曜日が2、土曜日が7になります。
対象月の1日から曜日番号より1小さい日数を引くことで、その週の日曜日まで戻る仕組みです。
9月1日が火曜日であれば、B5セルには8月30日の日曜日が表示されます。
月初が日曜日なら引く日数は0日となるため、対象月の1日がそのまま左上へ入ります。
横方向と縦方向へ日付を連続させる数式
B5セルの数式を入力したら、C5セルには次の数式を入れます。
C5セルに入力する数式
=B5+1
C5セルを右方向へH5セルまでオートフィルすると、土曜日までの連続した日付が入ります。
次にB6セルには、上の行の最終日であるH5セルの翌日を表示する数式を入力します。
B6セルに入力する数式
=H5+1
B6セルを基準に、C6からH6へも同じように1日ずつ増やしていきます。
6週分まで作成すれば、月初と月末がどの曜日でも収まりやすいカレンダーになります。
日付だけを表示したい場合は、セルの表示形式をdに設定してください。
SEQUENCE関数でまとめて作成する方法
Microsoft 365やExcel 2021以降では、SEQUENCE関数を使って42日分の日付を一度に生成することもできます。
B5セルに入力する数式
=SEQUENCE(6,7,B2-WEEKDAY(B2,1)+1,1)
第1引数の6は行数、第2引数の7は列数、第3引数は開始日、第4引数は1日ずつ増やす設定です。
入力後にEnterキーを押すと、B5セルからH10セルまで数式結果が自動的に広がります。
この動作をスピルと呼びます。
スピル先のセルには値を入力しないことが重要です。
途中に文字や数式があるとスピルエラーになるため、カレンダーの表示範囲を空けておきましょう。
【操作のポイント】日付の連続入力は、最初のセルだけに数式を入れてオートフィルするか、SEQUENCE関数でまとめて展開します。表示形式をdにしても、内部の値は完全な日付のまま保持されます。
別シートの予定をカレンダーへ表示するFILTER関数【同日の複数予定】
続いては、予定表シートに入力した予定を、カレンダーの日付と照合して表示する方法を確認していきます。
| 予定表シートの日付 | カレンダーの日付 | 表示結果 |
|---|---|---|
| 2026年9月3日 | 9月3日 | 来客対応 |
| 2026年9月3日 | 9月3日 | 社内研修 |
同じ日に複数の予定が入るケースでは、該当する予定を抽出して1つのセルへまとめる処理が必要です。
この用途にはFILTER関数とTEXTJOIN関数の組み合わせが便利です。
予定表示用セルの配置
日付をB5からH10に配置した場合、予定を表示する領域は各日付セルの下側へ確保します。
実務では、1日分を縦に2行または3行使うレイアウトが扱いやすいでしょう。
たとえばB5セルに日付、B6セルに予定を表示し、次の日付はC5セルに置く構成です。
曜日ごとに幅を広く取れる場合は、セルを縦方向に結合せず、予定表示セルの折り返し表示を有効にします。
セル結合は並べ替えやコピーで扱いにくくなるため、可能なら列幅と行の高さで見た目を整える方法がおすすめです。
FILTER関数とTEXTJOIN関数の数式
予定表シートのA列に日付、B列に予定名があり、B5セルの日付に対応する予定をB6セルへ表示する例です。
B6セルに入力する数式
=TEXTJOIN(CHAR(10),TRUE,FILTER(予定表!$B$2:$B$1000,予定表!$A$2:$A$1000=B5,””))
FILTER関数は、予定表シートのA2からA1000の中でB5セルの日付と一致する行を探し、その行のB列にある予定名を返します。
TEXTJOIN関数は、抽出された複数の予定を1つのセルへ連結する関数です。
CHAR(10)はセル内改行を表すため、予定が複数ある場合は改行して表示されます。
第2引数のTRUEは空白を無視する設定です。
FILTER関数の最後の空文字は、該当予定がない日にエラーではなく空白を返すために入れます。
数式を入力した後は、予定表示セルで折り返して全体を表示する設定を有効にしてください。
テーブル参照を使った数式
予定表をテーブル化し、テーブル名を予定データにした場合は、セル番地の代わりに列名で参照できます。
テーブル参照の数式例
=TEXTJOIN(CHAR(10),TRUE,FILTER(予定データ[予定],予定データ[日付]=B5,””))
予定データ[予定]は予定列、予定データ[日付]は日付列を意味します。
行を追加しても参照範囲を手作業で伸ばす必要がないため、日々予定が増えるブックでは特に便利です。
担当者も表示したい場合は、予定データ[担当者]を別のFILTER関数で取り出すか、予定名と担当者を連結した補助列を元表に作成します。
予定名の前に時刻を表示したいときは、元表の時刻列をTEXT関数で整形してから結合すると読みやすくなります。
【操作のポイント】同じ日の予定を1セルに表示する場合は、FILTER関数で抽出し、TEXTJOIN関数で改行区切りにします。予定がない日には空白を返す設定を入れて、エラー表示を防ぎましょう。
月の切り替えと条件付き書式の設定【見やすい予定カレンダー】
続いては、対象月の切り替えと、土日や当日を見分けやすくする条件付き書式を確認していきます。
| 表示対象 | 条件式の例 | 表示例 |
|---|---|---|
| 対象月以外 | =MONTH(B5)<>MONTH($B$2) | 薄い文字 |
| 日曜日 | =WEEKDAY(B5,1)=1 | 赤系の背景 |
| 今日 | =B5=TODAY() | 強調枠線 |
月を切り替えても、前月末や翌月初の日付が混ざるのは月間カレンダーとして自然な表示です。
ただし対象月以外の日付を薄く表示すると、当月の予定へ視線を集められます。
前月と翌月を切り替える数式
B2セルに対象月の1日を入力している場合、前月用のボタン代わりとなるセルには次の数式を使えます。
前月を表示するための数式
=EDATE(B2,-1)
翌月を表示するための数式
=EDATE(B2,1)
EDATE関数は、基準日から指定した月数だけ前後した日付を返します。
ただし、数式が入ったセルをクリックするだけではB2セルの値を変更できません。
関数だけで月を切り替える場合は、B2セルへ直接対象月を入力する方法がもっとも簡単です。
月ごとの表示を固定して印刷したい場合は、B2セルの月を変更してからPDF化する運用もできます。
条件付き書式で当月以外を薄く表示する操作
カレンダーの日付範囲であるB5からH10を選択し、ホームタブから条件付き書式、新しいルールを選びます。
数式を使用して、書式設定するセルを決定を選択してください。
数式欄には次の式を入力します。
条件付き書式の数式
=MONTH(B5)<>MONTH($B$2)
書式ではフォントの色を薄いグレーに設定すると、対象月以外の日付を控えめにできます。
年をまたぐカレンダーでも、月番号だけで判定すると1月と前年1月を区別できません。
通常の月間カレンダーでは前後1か月しか表示されないため大きな問題にはなりにくいものの、厳密に判定するならYEAR関数も加えます。
年と月の両方を比較することで、年末年始でも意図どおりの表示になります。
土日と今日を見分ける書式
日曜日を強調したい場合は、条件付き書式の数式に=WEEKDAY(B5,1)=1を使います。
土曜日なら=WEEKDAY(B5,1)=7です。
曜日別の書式を日付セルだけでなく、その下の予定セルまで適用したい場合は、日付行と予定行を含めた範囲を選択してからルールを設定します。
今日を強調する場合は、=B5=TODAY()という条件式が使えます。
TODAY関数はブックを開いた日を自動取得するため、毎日カレンダーを確認する用途に向いています。
印刷用のカレンダーでは、色だけに頼らず罫線や太字も組み合わせると、白黒印刷でも判別しやすくなります。
【操作のポイント】条件付き書式は、数式の先頭セルを選択範囲の左上に合わせます。B5から始める範囲なら数式内の基準セルもB5にして、必要な箇所だけ絶対参照へ変更します。
予定データの入力ルールとエラー対策【連動しない原因】
続いては、予定がカレンダーに表示されないときに確認したい入力ルールとエラー対策を解説していきます。
| 症状 | 主な原因 |
|---|---|
| 予定が表示されない | 日付が文字列、参照先の違い |
| 予定がずれて表示される | 時刻付き日付の比較 |
| スピルエラーになる | 展開先のセルに値がある |
数式に誤りがないように見えても、元データの形式がそろっていないと予定は連動しません。
問題が起きたときは、まず予定表シートの日付セルを確認するのが近道です。
文字列の日付を日付値へ直す方法
予定表シートの日付が文字列の場合、表示は同じでも=B5との比較結果がFALSEになることがあります。
該当セルを選択して数式バーを確認し、先頭にアポストロフィがある場合や左寄せ表示の場合は注意が必要です。
データタブの区切り位置を使い、そのまま完了を選ぶと文字列の日付が日付値へ変換される場合があります。
別の列で変換するなら、DATEVALUE関数を使う方法もあります。
文字列日付を変換する数式例
=DATEVALUE(A2)
変換結果を確認したら、必要に応じて値貼り付けで元の列へ戻します。
日付の見た目ではなく、Excel内部で連続番号として扱われているかが連動の判断基準です。
時刻を含む日付の比較
予定表のA列へ2026年9月3日 10時00分のように時刻まで入力していると、日付だけのB5セルとは完全一致しません。
この場合は、INT関数で小数部分の時刻を除いて比較します。
時刻付き日付に対応する数式例
=TEXTJOIN(CHAR(10),TRUE,FILTER(予定表!$B$2:$B$1000,INT(予定表!$A$2:$A$1000)=B5,””))
Excelの日付時刻は、整数部分が日付、小数部分が時刻として保存されています。
INT関数で整数部分だけを取り出せば、同じ日の予定として照合できます。
開始時刻も表示したい場合は、予定表シートに表示用の補助列を作ると数式を読みやすく保てます。
関数の利用可否と代替方法
FILTER関数は、古いExcelでは利用できないことがあります。
Microsoft 365またはExcel 2021以降であれば、通常は使用できます。
利用できない環境では、INDEX関数、SMALL関数、IF関数を組み合わせる方法がありますが、数式が複雑になりやすい点に注意が必要です。
共同編集者のExcelバージョンが異なる場合は、利用する関数を事前に確認しましょう。
共有用の予定表では、最新関数を使うか、互換性を優先するかを最初に決めることが大切です。
【操作のポイント】予定が表示されない場合は、日付が文字列になっていないか、時刻を含んでいないか、数式の参照範囲が正しいかを順番に確認します。
まとめ 別シートの予定表を連動させるエクセルのカレンダー
Excelのカレンダーへ別シートの予定表を自動反映するには、予定入力用の元データと表示用のカレンダーを役割ごとに分けることが基本です。
予定表シートは1行目を見出しとし、2行目以降に日付、予定、詳細を入力する構成にします。
日付を文字列ではなく正しい日付値として入力することが、連動を安定させる重要な条件です。
カレンダーシートでは、対象月の1日を入力するセルを用意し、WEEKDAY関数やSEQUENCE関数で月間の日付を自動作成できます。
予定の表示にはFILTER関数を使い、TEXTJOIN関数とCHAR(10)を組み合わせると、同じ日に複数ある予定もセル内で改行表示できます。
対象月のセルを変更するだけで表示を切り替えられる仕組みにすれば、毎月のカレンダー作成作業を大幅に減らせます。
さらに条件付き書式で土日、当日、対象月以外の日付を見分けやすくすると、実用性の高い予定カレンダーになります。
まずは少ない予定データで数式が動くことを確認し、その後に担当者、時刻、分類など必要な項目を増やしていきましょう。