エクセルで31日がない月を自動で非表示にする方法|IF関数でカレンダーを見やすく!

エクセルで31日がない月を自動で非表示にする方法|IF関数でカレンダーを見やすく!

本記事には広告(PR)が含まれます。
くわしくは プライバシーポリシー をご確認ください。


エクセルでカレンダーやガントチャートを作成する際、**「31日がない月なのにセルに表示されてしまう」**といったお悩みはありませんか?

たとえば2月や4月など、31日が存在しない月でも自動生成した日付が表示されてしまうと、表の見た目が乱れたり、誤解を招いてしまったりすることがあります。

毎回手動で31日を削除するのは面倒ですが、IF関数を使えば「その月に31日があるかどうか」を自動判定して、不要な日付を非表示にすることができます。

この記事では、初心者の方にもわかりやすく、**IF関数を使って「31日が存在しない月だけ自動で非表示にする方法」**を解説していきます。



31日がない月はどう扱う?|エクセルでのカレンダー作成の悩み

2月や4月に「31日」が表示されてしまう問題

エクセルで1日〜31日までの日付を自動的に表示するカレンダーを作ると、すべての月に31日がある前提で作られてしまうことがあります。
しかし、実際には31日が存在しない月もありますよね?

  • 2月 → 28日または29日まで

  • 4月、6月、9月、11月 → 30日まで

このような月でも、31日という「存在しない日付」が表に表示されてしまうと、利用者が混乱したり、入力ミスにつながったりする恐れがあります。


非表示にしないと見栄えや誤解を招くことも

たとえば予定表やガントチャートで31日に予定が入っていないように見えても、そもそもその日は存在しない可能性があります。
それなのに空欄のセルが残っていると、**「予定が未入力なのか?」「何か忘れているのか?」**と誤解されることも。

また、見た目上も月ごとの列の幅がバラバラになるなど、レイアウトの統一感が崩れてしまう原因にもなります。


毎回手作業で削除するのは非効率

「じゃあ、31日がない月だけ手動で削除すればいいのでは?」と思われるかもしれません。
確かにそれも一つの方法ですが、毎月手作業で修正するのは手間がかかりますし、ミスの原因にもなりかねません。

こういった繰り返しの作業は、エクセルの関数で自動化するのがベストです。

次章では、IF関数を使って**「31日が存在しない月だけ自動で非表示にする方法」**を具体的にご紹介していきます。


IF関数で「31日がない月」を自動で非表示にする方法

基本のIF関数で「日付が存在しないか」を判定する

エクセルでは、「ある月に31日があるかどうか」をIF関数で判定することができます。
ポイントは、その月の最終日が何日かを計算すること。
これには DATE 関数を使って簡単に判別できます。

たとえば、次のような数式です:

=IF(DAY(DATE(年セル,月セル+1,0))<31,"",31)

↓実際のカレンダーでの使用例を以下に示します。
 5月(31日あり)では末尾に「31」が表示されますが、6月(30日まで)では自動で非表示になっています。

関数利用例:

以下の例では、A5セルに年、C5セルに月を入力しています。

=IF(DAY(DATE(A5,C5+1,0))<31,"",31)

31日非表示用の関数例

この数式の意味:

  • DATE(年セル,月セル+1,0):指定した月の最終日を取得する

  • DAY(...)<31:最終日が31日未満かを判定する

  • "":31日がなければ空文字を返し、見た目を空白にする

  • 31:31日があれば「31」を表示する

つまり、31日が存在しない月ではセルに何も表示されないようになります。


実際にカレンダーに組み込む方法(日付リストや曜日との連携)

このIF関数を、カレンダー表の「31日」列にだけ適用します。
年や月のセル(例:B1セル=年、B2セル=月)を参照する形にすれば、月を変えるだけで自動的に31日セルの表示が切り替わるようになります。

例:

=IF(DAY(DATE($B$1,$B$2+1,0))<31,"",DATE($B$1, $B$2, 31))

IF関数で実際に「31日を非表示にする」方法を試してみた結果です。
月を5月にすると 2025/5/31 が表示されますが、6月にすると自動で空欄になり、日付が存在しないことが反映されます。
※関数を設定した黄色のセルは、表示形式を「日付」に設定しています。

31日非表示の例2yyyy/m/d形式で表示する場合
黄色のセルは、セルの表示形式を「日付」に設定しているため、「2025/5/31」と表示されています。

曜日と連携する場合は、TEXT 関数と組み合わせることで次のような表示も可能です:

=IF(DAY(DATE($B$1,$B$2+1,0))<31,"",TEXT(DATE($B$1,$B$2,31),"d(aaa)"))

↓関数の実行例です。
31日非表示例3TEXT関数を利用して曜日も表示

TEXT関数について

TEXT関数は、日付や数値を指定した見た目の文字列に変換する関数です。
今回は表示形式に "d(aaa)" を指定しています。

TEXT(DATE(年, 月, 日), "d(aaa)")
  • d:日を表示する(たとえば「31」)

  • "aaa":曜日を短く表示する(例:土)

  • ( ):曜日をカッコで囲む

そのため、日付が「31日・土曜日」の場合は、31(土)と表示されます。

ポイント:

通常の DATE関数だけでは「2025/5/31」のような形式になりますが、
TEXT関数を使えば、「31(土)」のように、用途に合った見やすい表記へ変更できます。


IF関数で空白(””)を表示する仕組み

IF関数で**””(空文字)を返すことで、見た目上は空白になります。**
この空白にする工夫により、表全体のレイアウトを崩さずに、**「存在しない日だけ非表示」**という自然な表示が実現できます。

注意点としては、“” は「空白」とは異なり、数式としては“空文字”が入っている状態なので、数式の有無を判定する場合には考慮が必要です。


他の日付(30日や29日)への応用も可能?

同じ考え方で、**「2月に30日や29日があるかどうか」**を判定することも可能です。

たとえば:

=IF(DAY(DATE(年セル, 月セル+1, 0))<30, "", 30)

↓29日や30日も同じ仕組みで非表示にできます。
 特に2月のようにうるう年・平年によって29日の有無が変わる月では、
 IF(DAY(DATE(年, 月+1, 0))<29, "", 29) のように設定すれば、柔軟に対応できます。

30日を非表示にする例

29日・30日・31日の各セルに同じ考え方を使えば、月の日数に合わせて表示が切り替わるカレンダーを作れます。


●ガントチャートや勤怠管理表での活用例

この方法はカレンダー以外にも、日付ごとに色を塗ったり、作業スケジュールを管理するガントチャートや勤怠表でも便利です。

  • 31日がない月では、日付欄を空白にしたままレイアウトを維持できる

  • 月を変更すると、月末の日付表示も自動で切り替わる

  • 存在しない日付への誤入力や見落としを減らせる

このように、IF関数を使うだけで、実務に役立つ「柔軟で見やすい表」を作ることが可能になります。

存在しない日付の列であることが分かりやすくなり、誤入力の防止にもつながります。

ガントチャート作成例シフト表


よくある質問(FAQ)

30日や29日も同じ方法で非表示にできますか?

はい。

31日と同じように、条件の数字を30や29へ変更することで対応できます。


うるう年にも対応できますか?

対応できます。

DATE関数はうるう年を自動判定するため、29日の表示・非表示も自動で切り替わります。


“”(空文字)と空白セルは違いますか?

はい、異なります。

""は見た目上は空白ですが、セルには数式が入っており、その結果として空文字が返されています。

そのため、COUNTA関数では値が入っているセルとして数えられます。集計に使用するときは注意しましょう。


カレンダー以外でも使えますか?

もちろんです。

勤務表やガントチャート、工程表など、日付を横並びで表示する表で活用できます。


条件付き書式だけで31日を非表示にできますか?

条件付き書式を使って文字色を背景色と同じにすれば、見た目上は隠せます。

ただし、セルには31という値が残ります。日付自体を空白にしたい場合は、この記事で紹介したIF関数を使う方法が分かりやすいでしょう。


日付関数をもっと使いこなしたい方へ

今回紹介したIF関数以外にも、Excelには日付や曜日、時間を効率よく扱う便利な関数が数多くあります。

「カレンダーをもっと便利にしたい」
「勤務表や予定表を自動化したい」
という方は、体系的に学ぶことで作業効率がさらにアップします。

日付・時刻の関数をまとめて学べるUdemy講座はこちら(PR) 


まとめ|IF関数で31日を自動で非表示にすれば、カレンダー作成がもっとラクに!

エクセルでカレンダーやガントチャートを作成する際、**「31日が存在しない月でも表示されてしまう」**という問題は意外とよくあります。

そんなときは、IF関数とDATE関数を組み合わせて、31日がない月だけ空白にする方法を使えば、
毎回手作業で修正する必要がなくなり、作業の効率化にもつながります。

今回ご紹介した方法を活用すれば、月の変化に自動で対応する見やすい表を作ることができ、
予定表や勤怠表など、さまざまなシーンで応用が可能です。

ぜひ、ご自身の業務や日々の管理に取り入れてみてくださいね。

【関連記事】

※外部リンク※


※参考書籍※

※本ボックスにはアフィリエイトリンク(PR)が含まれます。
くわしくは プライバシーポリシー へ。

エクセルで31日がない月を自動で非表示にする方法|IF関数でカレンダーを見やすく!
最新情報をチェックしよう!