エクセルで月間カレンダーを作ると、前月末や翌月初の日付まで表示され、予定表として見づらくなることがあります。
当月の日付だけを表示できれば、勤務表、行事予定、予約管理表などの視認性が上がります。
当月以外の日付を非表示にする基本は、日付の月と表示したい基準月を比較することです。
日付そのものを消す方法、表示形式で隠す方法、条件付き書式で目立たなくする方法を使い分けましょう。
この記事では、数式を使ってエクセルのカレンダーから当月以外の日付を非表示にする方法を解説します。
サンプルデータは1行目にヘッダーがあるものとして進めます。
エクセルのカレンダーで当月以外の日付を非表示にする数式
それではまず、当月以外の日付を空白にして非表示にする数式について解説していきます。
| 基準月 | 日 | 月 | 火 | 水 |
|---|---|---|---|---|
| 2026年9月 | 30 | 31 | 1 | 2 |
カレンダーの日付セルに実際の日付が入っている場合は、表示用のセルで月を判定すると管理しやすくなります。
基準月をB1セルに入力し、日付がB3セルにある場合の表示用数式です。
=IF(AND(YEAR(B3)=YEAR($B$1),MONTH(B3)=MONTH($B$1)),DAY(B3),””)
この式では、B3の日付がB1の基準月と同じ年かつ同じ月なら日だけを表示し、それ以外なら空白を返します。
年月を両方比較するため、年をまたぐカレンダーでも誤判定しにくい設計です。
基準月と日付セルの準備
最初に、カレンダーの対象月を決める基準月を用意します。
B1セルには2026年9月1日のような日付を入力し、表示形式をyyyy年m月に変更すると月見出しとして使えます。
日付のセルには、8月30日、8月31日、9月1日というように、連続した正しい日付を入力します。
見た目が30、31、1だけであっても、セル内部には年を含む日付データを持たせることが重要です。
文字列の30や31ではMONTH関数とYEAR関数が正しく働きません。
カレンダー作成では、日付を文字として入力せず、日付シリアル値として保持することが基本です。
基準月を変更するだけで表示内容を切り替えたい場合にも、この構造が役立ちます。
【操作のポイント】B1には月の途中の日付ではなく、その月の1日を入れると数式や月移動の管理が分かりやすくなります。
IF関数とAND関数による月判定
IF関数は、指定した条件が正しいときと正しくないときで表示を分ける関数です。
AND関数は複数の条件がすべて満たされた場合にTRUEを返します。
YEAR(B3)=YEAR($B$1)は年が同じかを確認し、MONTH(B3)=MONTH($B$1)は月が同じかを確認する部分です。
両方が一致したときだけDAY(B3)が実行され、日付から日だけを取り出します。
一致しない場合の””は空文字列であり、セルを空白のように見せる指定です。
空文字列を返す方式なら、当月以外の日付データを残しながら画面上だけ非表示にできます。
予定や祝日の判定で元の日付を参照したい場合にも便利でしょう。
【操作のポイント】数式を横方向や下方向へコピーするときは、基準月のB1だけを$B$1として絶対参照にします。
数式をカレンダー全体へコピーする手順
表示用の最初のセルに数式を入力したら、セル右下のフィルハンドルをドラッグしてカレンダー全体にコピーします。
日付の元データが別の範囲にある場合は、参照先が1セルずつずれているか確認しましょう。
コピー後に前月や翌月の日付が空白になり、当月だけが表示されれば設定は完了です。
曜日見出しと日付セルの位置が対応していれば、空白セルがあってもカレンダーの枠組みは崩れません。
数式をコピーする前に、最初の1セルで期待どおりの結果になることを確認するとミスを防げます。
予定を入力する欄がある場合は、日付表示セルと予定入力セルを分けておくと後の編集も容易です。
【操作のポイント】当月以外を完全な空白にしたいときは、日付セルではなく表示専用セルに数式を置く方法が安全です。

表示形式による当月以外の日付の見え方
続いては、数式を使わずに日付の見え方を調整する表示形式について確認していきます。
| 日付データ | 通常表示 | 非表示候補 |
|---|---|---|
| 2026/08/31 | 31 | 淡色または空白 |
| 2026/09/01 | 1 | 表示 |
表示形式だけでは、セルごとに月を自動比較して完全に消すことはできません。
ただし、数式や条件付き書式と組み合わせると、実データを保ったまま整ったカレンダーを作れます。
日付データを保持したい場合は、表示形式をdにして日だけを表示し、月の違いは条件付き書式で処理する方法が実用的です。
日付を日だけに表示する設定
日付セルを選択し、セルの書式設定から表示形式をユーザー定義に変更します。
種類へdと入力すると1から31までの日だけを表示できます。
ddなら01、02のように2桁で表示され、表のデザインをそろえたい場面に向いています。
セル内部の日付は2026年9月1日のままなので、曜日関数や予定一覧との連携も可能です。
見た目を日だけにしても、日付の計算機能が失われるわけではありません。
日付データを維持することは、翌月のカレンダーへ展開するときにも大きな利点になります。
【操作のポイント】日付を日だけに表示する書式はdであり、数値の入力規則とは別の設定です。
ユーザー定義書式と空白表示の注意点
ユーザー定義書式の;;;を設定すると、セルに入力されている値を画面上で非表示にできます。
しかし、この方法は月を判定しないため、当月の日付まで見えなくなる点に注意が必要です。
特定のセルだけを手作業で隠す小規模なカレンダーには使えますが、毎月更新する表には不向きです。
また、非表示でも数式バーには値が表示されるため、データそのものを削除したわけではありません。
自動更新するカレンダーでは、書式単独よりもIF関数または条件付き書式を選ぶほうが安定します。
目的が印刷だけなのか、編集画面でも空白にしたいのかで手法を選びましょう。
【操作のポイント】;;;はすべての値を隠す書式なので、対象範囲を誤って選択しないように注意します。
日付データを残すメリット
当月以外の日付を見せない場合でも、元の日付データを残しておくとカレンダーの再利用性が高まります。
たとえばWEEKDAY関数で土日を判定したり、COUNTIF関数で予定件数を集計したりできます。
祝日一覧と照合して背景色を変える処理も、正しい日付があれば実現できます。
予定の入力欄で日付を参照する数式を作る場合も、空白だけを並べるより扱いやすい構成です。
表示とデータを分離する考え方は、実務で使うエクセル表の保守性を高めます。
見た目だけを優先して日付を削除すると、後で集計や検索が必要になった際に困るかもしれません。
【操作のポイント】カレンダーの内部データは日付のまま残し、表示用セルだけを空白にする構成を検討しましょう。

条件付き書式による前月翌月の日付の非表示
続いては、条件付き書式を使って前月と翌月の日付を背景色になじませる方法を確認していきます。
| 判定対象 | 基準月 | 結果 |
|---|---|---|
| 2026/08/31 | 2026/09/01 | 文字色を背景色と同じにする |
条件付き書式なら、日付セルの値を変えずに当月以外を見えにくくできます。
=EOMONTH(B3,0)<>EOMONTH($B$1,0)
この条件式は、B3の日付がB1の基準月と同じ月に属していないときにTRUEとなります。
条件付き書式の数式ルール
日付の範囲を選択してから、ホームタブの条件付き書式を開き、新しいルールを選びます。
数式を使用して、書式設定するセルを決定を選択し、上記の式を入力します。
EOMONTH関数は指定した日付の月末日を返すため、同じ月の日付はすべて同じ値になります。
年と月をまとめて比較できるため、YEAR関数とMONTH関数を別々に書くより短い式です。
EOMONTHによる比較は、2026年9月と2027年9月を別の月として正しく判定します。
書式の設定では文字色を白、またはセル背景と同じ色にします。
【操作のポイント】条件付き書式の数式では、先頭セルだけを相対参照にし、基準月セルは$B$1に固定します。
文字色と罫線を整える設定
文字色だけを背景色と同じにすると、日付は実質的に非表示になります。
ただし、セルをクリックすると数式バーに日付が表示されるため、完全に値を消す処理ではありません。
前月と翌月の枠線も目立たなくしたい場合は、条件付き書式の書式設定で罫線の色も背景色に合わせます。
カレンダー全体の罫線を残したいときは、文字色だけを変える設定が見やすいでしょう。
印刷時の見え方も確認し、白い背景では白文字、色付き背景では背景色と同色にします。
背景色を後から変更する予定があるなら、薄いグレーで表示する運用も選択肢です。
【操作のポイント】完全な空白に見せるなら文字色と背景色を同色にし、枠線の扱いはカレンダー全体のデザインに合わせます。
条件付き書式が効かない場合の確認
条件付き書式が反映されないときは、適用先の範囲と数式の先頭セルが一致しているか確認します。
たとえばB3からH8を選択したなら、数式内の判定対象はB3から始める必要があります。
基準月セルが文字列になっている場合も、EOMONTH関数が正しく動作しません。
日付として認識されているかは、セルの表示形式を標準に変更して数値が表示されるかで確認できます。
条件付き書式は優先順位の影響を受けるため、ほかのルールがある場合はルールの管理も確認しましょう。
複数のルールが重なるカレンダーでは、祝日用の色設定との順序も重要です。
【操作のポイント】ルールの管理では、当月以外を隠すルールと祝日表示のルールが競合していないか確認します。

月移動に対応した自動更新カレンダー
続いては、基準月を変更すると当月以外の日付の表示も自動で切り替わるカレンダーを確認していきます。
| B1の基準月 | B3の日付 | 表示結果 |
|---|---|---|
| 2026/09/01 | 2026/08/30 | 空白 |
| 2026/09/01 | 2026/09/01 | 1 |
月を移動する数式は、翌月なら=EDATE(B1,1)、前月なら=EDATE(B1,-1)です。
基準月を差し替えるだけで日付、曜日、当月以外の非表示処理まで更新される構成にできます。
基準月から月初日を作る数式
基準月セルへ年月だけを入力する場合でも、日付として扱える状態にしておくことが大切です。
月初日を明示したいときは、=DATE(YEAR(B1),MONTH(B1),1)という数式を使えます。
DATE関数は年、月、日を指定して日付を作成するため、月初日の基準値として安定しています。
日付が月途中でも、その月の1日へそろえられる点がメリットです。
基準日を月初日に統一すると、月間カレンダーの開始日を計算しやすくなります。
月見出しの表示は、別セルで=TEXT(B1,”yyyy年m月”)として作成してもよいでしょう。
【操作のポイント】基準月を入力するセルと、表示用の月見出しセルを分けると、レイアウト変更に強くなります。
カレンダー開始日を求める数式
日曜始まりのカレンダーでは、月初日より前の日曜日を先頭セルの日付にします。
=DATE(YEAR($B$1),MONTH($B$1),1)-WEEKDAY(DATE(YEAR($B$1),MONTH($B$1),1),1)+1
この数式は、基準月の1日から曜日番号に応じた日数を引き、最初の日曜日を求めます。
先頭セルの日付が決まれば、右隣のセルには=先頭セル+1を入力して連続日付を作れます。
次の週の先頭セルも、直前の土曜日セル+1としてつなげることができます。
カレンダーの全セルに連続日付を入れてから、当月判定で表示だけを絞る流れが分かりやすい方法です。
月曜始まりにしたい場合はWEEKDAY関数の種類を2に変更し、開始位置を調整します。
【操作のポイント】日曜始まりか月曜始まりかを最初に決め、WEEKDAY関数の戻り値の種類を統一します。
翌月と前月へ切り替える方法
前月の基準月は=EDATE(B1,-1)、翌月の基準月は=EDATE(B1,1)で求められます。
EDATE関数は月単位で日付を移動するため、月末日や年末年始でも扱いやすい関数です。
たとえば2026年12月1日に1を加えると、2027年1月1日が返されます。
月移動用のセルを用意しておけば、12か月分のカレンダーをコピーして作る作業も減らせます。
月の加減算に単純な30日や31日を足す方法は月ごとの日数が異なるため避けましょう。
前月、当月、翌月のカレンダーを並べる場合にもEDATE関数は有効です。
【操作のポイント】月移動は日数計算ではなくEDATE関数で行うと、うるう年を含む日付処理にも対応できます。
予定表と連動させる日付表示の設定
続いては、予定表と連動させながら当月以外を非表示にする設定を確認していきます。
| 日付 | 予定 | カレンダー表示 |
|---|---|---|
| 2026/09/10 | 会議 | 10 会議 |
予定表のA列に日付、B列に予定名がある場合、カレンダーで予定を取得するにはCOUNTIF関数やXLOOKUP関数を利用できます。
予定の有無を判定する関数
カレンダーの日付がB3にあり、予定表の日付がSheet2のA2からA100にある場合を考えます。
=COUNTIF(Sheet2!$A$2:$A$100,B3)
結果が1以上なら、B3の日付に予定が登録されていると判断できます。
この判定を条件付き書式に使えば、予定がある日だけ背景色を変えることも可能です。
当月以外の日付を隠す条件と予定表示の条件は、優先順位を確認して設定しましょう。
予定の判定には、カレンダー表示の数字ではなく、内部の日付セルを参照します。
日だけを表示しているセルを参照すると、別の月の同じ日を区別できないため注意が必要です。
【操作のポイント】予定表の日付列は空白や文字列の混在を避け、日付の表示形式を統一します。
当月の日付だけに予定を表示する数式
予定を表示するセルでも、基準月との比較を入れると前月と翌月の予定を隠せます。
=IF(EOMONTH(B3,0)=EOMONTH($B$1,0),IFERROR(XLOOKUP(B3,Sheet2!$A$2:$A$100,Sheet2!$B$2:$B$100,””),””),””)
最初のIF関数が当月かどうかを確認し、当月の場合だけXLOOKUP関数で予定名を取得します。
予定がないときはXLOOKUP関数の指定により空白を返します。
XLOOKUP関数を使えないバージョンでは、VLOOKUP関数やINDEX関数とMATCH関数の組み合わせでも対応できます。
予定表示にも当月判定を加えると、空白にした日付欄へ予定だけが残る現象を防げます。
予定が複数ある場合は、別途TEXTJOIN関数や一覧形式の設計を検討しましょう。
【操作のポイント】予定表示用の数式は日付表示セルではなく、元の日付を格納したセルを基準に作成します。
印刷時のレイアウト調整
カレンダーを印刷する場合は、ページレイアウトタブから印刷範囲を設定します。
当月以外の日付を白文字で隠していると、印刷プレビューでも空白に見えるか確認しましょう。
予定欄の文字が長い場合は、セルの書式設定で折り返して全体を表示する設定を使います。
行の高さを固定しすぎると予定が切れるため、必要に応じて少し余裕を持たせると読みやすくなります。
画面で整っていても、印刷時に改ページで崩れることがあるためプレビュー確認は欠かせません。
横向き印刷や余白の調整も、月間予定表では有効な設定です。
【操作のポイント】印刷するカレンダーは、不要な行列を印刷範囲から外し、1ページに収まるか確認しましょう。
当月以外の日付が消えない場合の確認項目
続いては、設定したのに前月や翌月の日付が残る場合の確認項目を解説していきます。
| 症状 | 主な原因 | 確認箇所 |
|---|---|---|
| 日付が残る | 参照先のずれ | 数式バー |
日付が文字列になっているケース
セルに2026/9/1と見えていても、左寄せで表示される場合は文字列として入力されている可能性があります。
文字列の日付ではMONTH関数、YEAR関数、EOMONTH関数が期待どおりに計算できません。
DATEVALUE関数で日付へ変換するか、データタブの区切り位置を使って形式を変換します。
入力規則や外部データからの貼り付けによって文字列化する場合もあります。
数式のエラーではなく、日付のデータ型が原因になっているケースは少なくありません。
標準形式へ変更してシリアル値が表示されるかを確認すると判断しやすいでしょう。
【操作のポイント】見た目ではなく数式バーとセルの配置を確認し、日付として認識されているかを確認します。
絶対参照が不足しているケース
基準月セルを固定しないまま数式をコピーすると、参照先がC1、D1のようにずれてしまいます。
その結果、一部だけ当月以外の日付が表示されたり、すべて空白になったりします。
基準月の参照は$B$1とし、列と行の両方を固定します。
一方で日付セルの参照はB3のままにして、コピー先に応じて変わるようにします。
固定するセルと移動させるセルを分けることが、カレンダー数式を正しくコピーするコツです。
数式バーを見ながら隣のセルとの参照差を比べると、原因を見つけやすくなります。
【操作のポイント】F4キーを押すと参照形式を切り替えられるため、$B$1の入力時に活用できます。
条件付き書式の適用先が違うケース
条件付き書式は数式が正しくても、適用先の範囲が異なると期待した表示になりません。
ホームタブから条件付き書式、ルールの管理を開き、適用先を確認します。
日付セルだけに設定したいのに予定欄まで含めると、予定文字まで消えることがあります。
逆に日付の一部が範囲外なら、その部分だけ前月や翌月の日付が残ります。
カレンダーをコピーして拡張した後は、条件付き書式の適用範囲も広げる必要があります。
ルールを作り直す前に、適用先と優先順位を確認するのがおすすめです。
【操作のポイント】条件付き書式の適用先は、日付の先頭セルから最終セルまで漏れなく指定します。
まとめ エクセルのカレンダーで当月以外の日付を非表示にする方法
エクセルのカレンダーで当月以外の日付を非表示にするには、基準月と各日付の年月を比較する方法が基本です。
表示用セルにIF関数を使えば、当月だけ日を表示し、前月と翌月は空白にできます。
日付データを残したい場合は、条件付き書式で文字色を背景色と同じにする方法も便利です。
月を切り替えるカレンダーでは、基準月にEDATE関数を使い、日付の開始位置をWEEKDAY関数で計算すると自動化できます。
予定表と連動させる際は、表示用の数字ではなく元の日付データを参照しましょう。
日付データを正しく保持し、表示だけを制御することが、使いやすい月間カレンダー作成のポイントです。
数式、表示形式、条件付き書式を目的に合わせて選び、見やすいエクセルのカレンダーへ整えていきましょう。