エクセルDATE関数とDAY関数で、日付と曜日を自動で表示させる方法を紹介しています。その年、その月だけに対応できる、カレンダーなどを作成することは簡単ですが、年と月が替わると、日付と曜日を修正しなくてはいけません。これは、面倒です。ここで作成しているスケジュール表は、指定した年と月に対応して、日付と曜日が自動で替わります。難しいテクニックは必要ありません。図を使って分かりやすく説明しているので、手順通りに進めていくと、簡単に、自動で日付と曜日が表示される表が完成できます。
目次
DATE、DAY関数で日付を自動で表示させる方法
エクセルDATE関数とDAY関数を使って、年と月に対応する日付を、自動で表示させるスケジュール表を作成しましょう。
ここでは、1月のスケジュール表を作成してみましょう。
スケジュール表を作成する手順
① 「C2」には「年」、「E2」には「月」を入力します。入力した、年と月に対応する、日付と曜日が自動で表示されます。
② 1月~12月までは、どの月も「28日」まではあります。最初、「28日」までの日付を、DATE関数を使って自動で表示させる式を作成します。
③ 29日~31日までは「月」によって日数が違います。DATE関数とDAY関数を組み合わせて、無い日付は表示させない式を作成します。
④ 最後に、日付からユーザー定義で、曜日を自動で表示させましょう。
28日までの日付を自動で表示させる方法
1.A列の「日」には、1~28までの日付を入力します。1~28までの日付を入力するには、エクセル「オートフィル」を使いましょう。フィル ハンドルを、下方向にドラッグ→「連続データ(S)」を選択すると、連続した日付が作成できます。
2.「B5」に、日付を自動で表示させる式を入力します。
B5 =DATE($C$2,$E$2,A5)
「2018/1/1」が表示されます。
「B5」の式をドラッグして、「B6:B32」にコピーしましょう。
「28日」までの日付が、自動で表示されました!
29日~31日までの日付を自動で表示させる方法
29日~31日までは、「月」によって日数が違います。無い日付は表示させないようにしましょう。
1.A33、A34、A35に式を入力しましょう。
A33 =IF(DAY(DATE($C$2,$E$2,29))=29,29,””)
A34 =IF(DAY(DATE($C$2,$E$2,30))=30,30,””)
A35 =IF(DAY(DATE($C$2,$E$2,31))=31,31,””)
「A33」の式は、DATE関数で返される日が「29」でなかったら、「空白」を返します。
「29」と同じだったら「29」を返します。
「A34」「A35」も、考え方は同じです。
「1月」の最終日は「31日」なので、「31」まで表示されます。
2.「B33」に、自動で日付を表示させる式を入力しましょう。
B33 =IF(A33=””,””,DATE($C$2,$E$2,A33))
B33の式は、A33が「空白」の場合は、「空白」が返されます。
「空白」でない場合は、日付が返されます。
B33の式をドラッグして、「B34:B35」にコピーしましょう。
日付が自動で表示されました!
3.試しに、スケジュール表を2月にしてみましょう。E2に「2」と入力します。
「A33:A35」が非表示になりました!
同時に「B33:B35」も、非表示になりました!
「2月」の最終日は「28日」までなので、「A33:A35」は表示されません!
最後に、B列の日付を、自動で曜日にさせてみましょう。
ユーザー定義で日付から自動で曜日を表示させる
スケジュール表に、日付から曜日を自動で表示させましょう。
セル範囲「B5:B35」には、日付が自動で表示されています。
ユーザー定義で、日付から曜日を表示させましょう。
1.セル範囲「B5:B35」を選択します。
2.右クリックして、「セルの書式設定」を選択しましょう。
3.「表示形式」→「ユーザー定義」→「種類(T)」に「aaa」と入力します。
4.曜日が表示されました!
これで、スケジュール表が完成しました!
お疲れ様でした。
エクセルの表示形式には次のようなものがあります。数式に使えますので覚えておくと便利です。
表示形式 | 表示例 |
aaa | 月、火、水、木、金、土、日 |
aaaa | 月曜日、火曜日、水曜日、木曜日、金曜日、土曜日、日曜日 |
(aaa) | (月)、(火)、(水)、(木)、(金)、(土)、(日) |
ddd | Mon、Tue、Wed、Thu、Fri、Sat、Sun |
dddd | Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday |
DAY関数
シリアル値で表される日を返す関数です。日付を表す 整数、1 ~ 31の数値で返します。
DAY関数の書式と引数
DAY(シリアル値)
シリアル値 | 必ず指定します。日付は、DATE関数を使って入力するか、他の数式または他の関数の結果を指定します。 |
DAY関数の使い方
数式 | 結果 |
=DAY(A1) | 「A1」には「2018/2/12」が入力されています。日を返すので、結果は「12」です。 |
DATE関数
DATE関数は、指定された日付に対応するシリアル値を返す関数です。
DATE関数の書式と引数
DATE(年,月,日)
年 | 1 〜 4桁で年を指定します。 |
月 | 月を表す数値を、1 〜 12の範囲で指定します。月に12より大きい月を指定すると、月の値を年に加算して日付が計算されます。負の整数を入力すると、年減算して日付が計算されます。 |
日 | 日を表す数値を、1 〜 月の最終日の範囲で指定します。指定した月の最終日よりも大きい整数を指定すると、日の値を月に加算して日付が計算されます。負の整数を指定した場合は、日の値を月から減算して日付が計算されます。日が1未満の場合は、日の日数に1を加えた数が、指定された月の最初の日から減算されます。 |
DATE関数の使い方
数式 | 結果 |
=DATE(2018,2,31) | 2018年2月の最終日は28日です。28日よりも3日多いので2月の月に1月が加算されます。「2018/3/3」が返されます。 |
IF関数
エクセルIF関数は、真の場合は真の場合の値を返し、偽の場合は偽の場合の値を返す関数です。
IF関数は、エクセル関数の中で使用頻度が高い関数です。他の関数と組み合わせて使用されることも多いです。
IF関数の書式と引数
IF(論理式,真の場合,偽の場合)
論理式 | 条件式を指定します。 |
真の場合 | 論理式がTRUEの場合に返す値を指定します。 |
偽の場合 | 論理式がFALSEの場合に返す値を指定します。省略するとFALSEを返します。 |
IF関数の使い方
数式 | 結果 |
B2=IF(A2=”参加”,”○”,”×”) | A列には、「参加」と「不参加」が入力されています。A2には「参加」と入力されています。B2には「○」が返されます。 |
特定の曜日だけ表示させる
エクセルの日付の関数を使うと、特定の曜日だけを自動表示させることができます。
ここでは、全ての曜日を表示させましたが、カレンダーを作成する時、WEEKDAY関数を使うと「休日」や「祝日」だけを表示させたり、色付けすることもできます。
単純に曜日を自動で表示させたい場合は、TEXT関数を使います。覚えておくと色々な場面で活用できるので便利です。
こちらの記事もご覧ください。⇒エクセル関数を使って日付の曜日を表示させる方法(特定の曜日だけ表示させることもできます)