Excelでカレンダーを作るとき、日付や曜日を手入力すると、月が変わるたびに修正が必要になります。
しかし、DATE関数、WEEKDAY関数、TEXT関数、EOMONTH関数などを組み合わせれば、基準となる年と月を入力するだけで、日付・曜日・月末日を自動表示できます。
数式で作ったカレンダーは、翌月以降も入力値を変更するだけで使い回せる点が大きなメリットです。
この記事で使う主な関数は、DATE関数、WEEKDAY関数、TEXT関数、EOMONTH関数です。
サンプルデータは1行目をヘッダーとして作成し、A列に日付、B列に曜日を表示する形式で解説します。
月間予定表、勤務表、営業日カレンダー、イベント管理表などにも応用できるため、基本の数式から順番に確認していきましょう。
エクセルのカレンダーで日付を自動表示する数式
| 年 | 月 | 日付 | 曜日 |
|---|---|---|---|
| 2026 | 9 | 2026/9/1 | 火 |
| 2026/9/2 | 水 |
それではまず、指定した年月の初日から連続する日付を表示する方法について解説していきます。
最初に月初日を正しく作成し、そのセルを基準に翌日以降を計算する構成にすると、数式が分かりやすくなります。
DATE関数で月初日を作成する方法
年をD2セル、月をE2セルに入力し、A2セルから日付を表示する例で考えます。
DATE関数は、年・月・日を指定してExcelの日付データを作る関数です。
=DATE($D$2,$E$2,1)
この数式をA2セルに入力すると、D2が2026、E2が9の場合は2026年9月1日が表示されます。
DATE関数の3番目の引数を1に固定すると、入力した月の1日を常に取得できます。
D2とE2には絶対参照を付けているため、下方向や横方向へ数式をコピーしても、参照する年と月がずれません。
日付が数字のように見える場合は、セルの表示形式を日付へ変更しましょう。
ホームタブの表示形式から短い日付を選ぶか、ユーザー定義でyyyy/m/dを指定すると見やすくなります。
翌日を連続表示する加算式
A3セルには、A2セルの日付に1を足す数式を入力します。
=A2+1
Excelでは日付が連番として管理されているため、日付に1を加えると翌日になります。
A3セルの右下にあるフィルハンドルを下へドラッグすれば、9月2日、9月3日というように連続した日付が表示されます。
日付を文字列として入力するのではなく、日付データとして計算させることが重要です。
日付データであれば、曜日の取得、月末判定、土日判定、祝日との照合など、後から必要になる計算にも利用できます。
月の途中で開始する予定表でも、開始日にDATE関数を指定しておけば同じ考え方で連続表示が可能です。

月末以降を空欄にする判定式
31行分の数式をあらかじめ用意すると、30日までの月や2月では翌月の日付まで表示されることがあります。
不要な日付を見せないためには、IF関数とEOMONTH関数を組み合わせます。
=IF(A2+1>EOMONTH(A2,0),””,A2+1)
EOMONTH関数は、指定した日付を含む月の最終日を返します。
A2の日付に1を加えた結果が月末日より後なら空欄を返し、それ以外なら翌日を返す仕組みです。
月末日を手入力せず、EOMONTH関数で自動判定すると、うるう年の2月にも対応できます。
【操作のポイント】月初日を作るセルと連続日付のセルを分けると、数式の確認や修正がしやすくなります。
エクセルのカレンダーで曜日を自動表示する数式
| 日付 | TEXT関数の結果 | WEEKDAY関数の結果 |
|---|---|---|
| 2026/9/1 | 火 | 3 |
| 2026/9/5 | 土 | 7 |
続いては、日付に対応した曜日を自動表示する方法について確認していきます。
曜日を文字で見せたい場合と、土日判定用の数値として使いたい場合では、使う関数と表示形式が少し異なります。
TEXT関数で月曜日から日曜日までを表示する方法
A2セルに日付が入力されている場合、B2セルにはTEXT関数を入力します。
=TEXT(A2,”aaa”)
aaaを指定すると、月・火・水のように日本語の短い曜日が表示されます。
曜日を月曜日、火曜日のように表示したいときは、表示形式の指定をaaaaに変更します。
=TEXT(A2,”aaaa”)
TEXT関数は、日付データを見やすい文字列へ変換するため、日報や予定表の曜日欄に向いています。
ただし、TEXT関数の結果は文字列です。
曜日を条件付き書式や集計の条件に使う場合は、次に紹介するWEEKDAY関数も知っておくと便利です。
WEEKDAY関数で曜日を数値判定する方法
WEEKDAY関数は、日付から曜日に応じた数値を返す関数です。
=WEEKDAY(A2,2)
第2引数に2を指定すると、月曜日が1、火曜日が2、水曜日が3、土曜日が6、日曜日が7になります。
週の始まりを月曜日として扱えるため、平日と土日を判定する勤務表や営業日管理に便利です。
WEEKDAY関数の第2引数を2にすると、月曜始まりの並びになり、日本の業務用カレンダーでも使いやすくなります。
第2引数を省略した場合は日曜日が1となるため、数式を作る際は意図した曜日番号か確認しましょう。
たとえば土日を判定するなら、WEEKDAYの結果が6以上かどうかを条件にできます。

土曜日と日曜日の文字色を変える設定
曜日欄に色を付けると、予定表の視認性が上がります。
曜日がB列にある場合は、条件付き書式で数式を使って土日を判定できます。
=WEEKDAY($A2,2)=6
この数式を土曜日用の条件付き書式に設定し、文字色を青にします。
=WEEKDAY($A2,2)=7
日曜日用には上記の数式を設定し、文字色を赤にすると一般的なカレンダーらしい見た目になります。
条件付き書式は曜日の文字ではなく、元になる日付セルを参照して判定すると安定します。
【操作のポイント】曜日を表示するだけならTEXT関数、曜日による計算や色分けならWEEKDAY関数を選びましょう。
月間カレンダーの配置と日付の連動
| 日 | 月 | 火 | 水 | 木 | 金 | 土 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 |
続いては、日曜から土曜までを横に並べる月間カレンダーの配置について確認していきます。
縦型の日付一覧とは異なり、月初日の曜日に応じて開始位置をずらす数式が必要です。
月初日の曜日を求める方法
月間カレンダーでは、最初の週の日曜日のセルに表示する日付を先に決めます。
D2セルに年、E2セルに月が入っている場合、月初日はDATE関数で作成できます。
=DATE($D$2,$E$2,1)
日曜始まりのカレンダーにするなら、月初日の曜日番号はWEEKDAY関数の標準設定で取得できます。
=WEEKDAY(DATE($D$2,$E$2,1),1)
結果が1なら日曜日、2なら月曜日です。
月初日の曜日番号を使うことで、1日を表示すべき列を自動で判断できます。
最初の日曜日を表示する数式
カレンダーの先頭セルをA5とし、日曜日の列から始める場合の数式を入力します。
=DATE($D$2,$E$2,1)-WEEKDAY(DATE($D$2,$E$2,1),1)+1
この式は、対象月の1日から曜日番号に応じた日数を戻し、その週の日曜日を求めます。
9月1日が火曜日なら、A5セルには8月30日が表示されます。
前月の日付も含める一般的な月間カレンダーでは、この表示方法が便利です。
前月の日付を空欄にしたい場合は、MONTH関数を使って対象月かどうかを判定します。
横方向と縦方向へ連続させる数式
A5セルに先頭の日付が表示できたら、B5セル以降には左隣のセルに1を加える式を入力します。
=A5+1
土曜日まで右へコピーした後、次の週のA6セルには前週の土曜日に1を加える式を入れます。
=G5+1
この数式を6週分の表へコピーすると、月をまたぐ日付も自動で並びます。
月間カレンダーでは、日付の表示形式をdにすると、年や月を省略して日だけをすっきり表示できます。

【操作のポイント】日曜始まりか月曜始まりかを最初に決め、WEEKDAY関数の戻り値の種類をカレンダーの列順に合わせましょう。
年月変更に対応する自動カレンダーの作成
| 入力項目 | 入力値 | 表示結果 |
|---|---|---|
| 年 | 2026 | 2026年9月 |
| 月 | 9 | 日付と曜日を更新 |
続いては、年と月の入力値を変更するだけで表示を切り替えられる自動カレンダーについて確認していきます。
入力セルを決めて絶対参照を使えば、毎月の数式入力や表の作り直しは不要になります。
年と月の入力セルを固定する設定
シート上部のD2セルを年、E2セルを月の入力欄にします。
D2には2026のように西暦を入力し、E2には1から12までの月を入力します。
月の入力ミスを減らすには、データの入力規則で1から12の整数だけを許可する方法も有効です。
年と月を入力するセルを分けると、DATE関数を使った日付計算が単純になり、保守しやすくなります。
カレンダー内の数式では、$D$2と$E$2のように絶対参照にすることが基本です。
これにより、オートフィルでコピーしても年と月の基準が変わりません。
タイトルに年月を自動表示する数式
カレンダーの表題には、入力した年と月を反映させると分かりやすくなります。
たとえばA1セルに次の数式を入力します。
=TEXT(DATE($D$2,$E$2,1),”yyyy年m月”)
結果は2026年9月のように表示されます。
TEXT関数で年月の書式を指定すれば、表題も日付一覧と連動して自動更新されます。
セルの結合は印刷用の見た目には便利ですが、並べ替えやコピーを行う予定があるなら結合しないレイアウトも検討しましょう。
オートフィルで日付を展開する操作
上の画面のように、最初の数式を入力したセルの右下にある小さな四角へマウスポインターを合わせます。
ポインターが黒い十字に変わったら、必要な行まで下へドラッグしましょう。
数式が相対参照で連続し、A3以降には前日のセルを参照した日付が入ります。
数式をコピーした後は、月末より後の日付が表示されていないかを必ず確認します。
【操作のポイント】年と月を変更した直後は、月初日、曜日、月末の3点が正しく更新されたかを確認しましょう。
カレンダー数式のエラー対策と応用
| 状況 | 確認する項目 | 対処 |
|---|---|---|
| 曜日が数字になる | WEEKDAY関数 | TEXT関数または表示形式を使用 |
| 翌月の日付が出る | 月末判定 | EOMONTH関数を組み合わせる |
続いては、カレンダー作成中によく起こる表示の問題と、実務で役立つ応用方法について確認していきます。
数式そのものが正しくても、セルの書式や参照形式によって意図しない表示になる場合があります。
日付がシリアル値で表示される場合
Excelの日付は内部的には連続した数値で管理されています。
そのため、DATE関数の結果が46000台の数字のように見える場合でも、数式が壊れているとは限りません。
対象セルを選択し、ホームタブの数値グループから日付形式を指定しましょう。
日付の見た目だけを変えたいときは、数式を変更する前にセルの表示形式を確認することが基本です。
日付だけならyyyy/m/d、月間カレンダーの各マスならd、曜日ならaaaが使いやすい表示形式です。
空欄セルで曜日を表示しない方法
月末以降の日付を空欄にした場合、曜日欄に不要な表示が残ることがあります。
A列の日付が空欄ならB列も空欄にするよう、IF関数で囲みます。
=IF(A2=””,””,TEXT(A2,”aaa”))
この数式なら、A2に日付があるときだけ曜日を表示できます。
空欄判定を先に入れると、月末以降の曜日表示や計算エラーを防げます。
同じ考え方は、土日色分けの条件付き書式や予定件数の集計にも応用できます。
祝日一覧と連動させる方法
土日だけでなく祝日も色分けしたい場合は、別シートに祝日の日付一覧を作成します。
たとえば祝日シートのA2からA30に日付を入力しておき、COUNTIF関数で一致を調べます。
=COUNTIF(祝日!$A$2:$A$30,A2)>0
この式を条件付き書式の数式として設定すれば、祝日一覧に含まれる日付だけを赤文字や薄い赤の背景色にできます。
祝日データを別シートにまとめておけば、翌年分へ更新するときも管理しやすくなります。
【操作のポイント】日付は文字列ではなくExcelの日付データとして祝日一覧へ入力し、カレンダー側と同じ形式で照合します。
まとめ エクセルのカレンダー関数で日付・曜日を自動表示する方法(数式)
| 目的 | 主な関数 | 役割 |
|---|---|---|
| 月初日を作る | DATE | 年・月・日から日付を作成 |
| 曜日を表示する | TEXT・WEEKDAY | 曜日の表示・判定 |
| 月末を判定する | EOMONTH | 対象月の最終日を取得 |
エクセルのカレンダーで日付を自動表示するには、まずDATE関数で対象月の1日を作成し、加算式またはオートフィルで日付を連続させます。
曜日を表示するだけならTEXT関数が分かりやすく、土日判定や条件付き書式に使うならWEEKDAY関数が適しています。
月末処理にはEOMONTH関数を使うと、月ごとの日数やうるう年を意識せずにカレンダーを更新できます。
年と月の入力セルを固定し、数式内で絶対参照を使えば、毎月の更新作業は入力値の変更だけで完了します。
最初は縦型の日付一覧から作り、慣れてきたら月間カレンダー、土日色分け、祝日連動へと広げていきましょう。
数式で作成したカレンダーは、予定表や勤務表、営業日一覧など多くのExcelファイルの土台になります。