エクセルで、カレンダーやスケジュール表を作成したい、という事はないでしょうか。ここでは、エクセルDATE関数、EOMONTH関数、TEXT関数を使って、月と年を入力するだけで、自動で日付と曜日が表示できる方法を紹介しています。年と月を入力します。すると、その年と月の、日付と曜日が、自動で表示される、といった素晴らしい方法です。年度や月が替わっても、修正する必要はありません。1つ作成するだけで、どんな年、月でも、日付や曜日が自動で表示できます。作成方法は簡単なので、ぜひお試しください。
目次
DATE、EOMONTHで自動で日付を表示
エクセルで自動で日付と曜日を表示させる、出欠管理表を作成してみましょう。
A列の日付の欄にDATE関数を使って日付を自動入力させます。
出欠管理表を作成する手順
セル「C2」に年、「E2」に月を入力すると、入力した年度の月の、出欠管理表が作成できるようにします。
ここでは、2018年3月の出欠管理表を作成しましょう。
月によって「日数」は変わります。この点がポイントになります。
① DATE関数を使って、28日までの日付を、自動入力させる式を作成します。
② 次に、EOMONTH関数を使って、29日~31日の日付を、自動で表示させる式を作成します。
③ 最後に、エクセルTEXT関数で、曜日を自動で表示させる式を作成しましょう。
28日までの日付を表示
1.A5に式を入力しましょう。A列に、DATE関数を使って日付を自動で表示させます。
A5 =DATE($C$2,$E$2,1)
A5の式は、月の最初の日付です。引数「日」に「1」を指定します。
「2018/3/1」が返されます。
2.次に、A6に式を入力しましょう。
A6 =A5+1
A6の式は、「A5」の式に「1」を足して、次の日の日付を表示させます。
A6の式をドラッグして、「A7:A32」にコピーしましょう。
28日までの日付が表示されます。見栄えを良くするために「セルの書式設定」で日付の表示を変えてみましょう。
3.セル範囲「A5:A32」を選択します。
4.右クリックして「セルの書式設定」→「表示形式」→「ユーザー定義」→「種類(T)」に「d」と入力しましょう。
5.日付が表示されました!
29日~31日の日付を表示
「月」によって「日数」は変わってきます。
どの月も28日まではありますが、29日~31日は「月」によって違うので、29日~31日は別に式を作成する必要があります。
エクセル関数EOMONTHを使って、29日~31日を自動で表示させてみましょう。EOMONTH関数は、月の最終日をシリアル値で返します。
1.A33に式を入力しましょう。
A33 =IF(A32=EOMONTH(A5,0),””,A32+1)
A33の式は、EOMONTHの「開始日」に「A5」を指定しました。
「月」は「3月」の最終日なので、「0」を指定します。
「=EOMONTH(A5,0)」で「3月」の最終日のシリアル値が返されます。
この最終日がA32と同じだったら、「空白」を返します。
同じでなかったら、「A32+1」を返します。
「3月」は最終日が、「31日」なので「A32」と違います。
「3月29日」を返します。
2.次に、A34とA35に式を入力しましょう。
A34 =IF(OR(A33=””,A33=EOMONTH($A$5,0)),””,A33+1)
A35 =IF(OR(A34=””,A34=EOMONTH($A$5,0)),””,A34+1)
A34の式は、A33が「空白」の場合もあるので、「A33=””」で、A33が「空白」だったら「空白」を返します。
OR関数で、もう1つ条件式を入れています。
「A33=EOMONTH($A$5,0)」は、「3月」の最終日のシリアル値を返します。
この最終日が、A33と同じだったら「空白」を返します。
A33が「空白」でない、または最終日がA33と同じでなかったら「A33+1」を返します。
A34は、「3月30日」です。
A35の式も同様です。「3月31日」を返します。
これで、A列が完成しました!
自動で日付が表示されます。
最後に、エクセルTEXT関数を使って、曜日を自動で表示させましょう。
TEXT関数で日付から曜日を自動で表示させる
最後に、B列の「曜日」の欄に、エクセルTEXT関数で、曜日を自動で表示させる式を作成しましょう。
B5に、式を入力しましょう。
B5 =TEXT(A5,”aaa”)
「aaa」は、曜日を表示させる表示形式です。
B5には、「2018年3月1日」の曜日、「木」が表示されます。
B5の式を、「B6:B35」にコピーしましょう。
曜日が表示されました!
これで、自動で日付と曜日を表示させる出欠管理表が作成できました!
お疲れ様でした。
セル「C2」の年と、「E2」の月を変更すると、入力した年度の月の、出欠管理表が作成できます。
こちらの記事もご覧ください。⇒エクセル関数を使って日付の曜日に自動的に色を付ける方法
DATE関数
DATE関数は、指定された日付に対応するシリアル値を返す関数です。
DATE関数の書式と引数
DATE(年,月,日)
年 | 1 〜 4桁で年を指定します。 |
月 | 月を表す数値を、1 〜 12の範囲で指定します。月に12より大きい月を指定すると、月の値を年に加算して日付が計算されます。負の整数を入力すると、年減算して日付が計算されます。 |
日 | 日を表す数値を、1 〜 月の最終日の範囲で指定します。指定した月の最終日よりも大きい整数を指定すると、日の値を月に加算して日付が計算されます。負の整数を指定した場合は、日の値を月から減算して日付が計算されます。日が1未満の場合は、日の日数に1を加えた数が、指定された月の最初の日から減算されます。 |
DATE関数の使い方
数式 | 結果 |
=DATE(2018,3,-1) | 日に「-1」を指定しているので、2月の最終日から1を引きます。2018年2月の最終日は28日です。「2018/2/27」が返されます。 |
EOMONTH関数
2007エクセル以降の関数です。開始日から起算して、指定された月数だけ、前または後の月の最終日に対応するシリアル値を返します。
EOMONTH関数の書式と引数
EOMONTH(開始日, 月)
開始日 | 起算日を指定します。日付は、DATE関数を使って入力するか、他の数式または他の関数の結果を指定します。 |
月 | 開始日から起算した月数を指定します。正の数を指定すると、開始日の月にその数だけ足した月の最終日が返されます。負の数を指定すると、開始日の月からその数だけ引いた月の最終日が返されます。 |
EOMONTH関数の使い方
数式 | 結果 |
=EOMONTH(A1,1) | 「A1」には、日付「2018/2/27」が入力されています。「月」に「1」を指定します。シリアル値「43190」が返されますが、この表示形式を変更すると「2018/3/31」です。「月」に「1」を指定したことで「3月」の最終日が返されます。 |
=EOMONTH(A2,-1) | 「A2」には、日付「2018/2/27」が入力されています。「月」に「-1」を指定します。シリアル値「43131」が返されますが、この表示形式を変更すると「2018/1/31」です。「月」に「-1」を指定したことで「1月」の最終日が返されます。 |
TEXT関数
TEXT関数は、表示形式コードを使用して数値の表示方法を変更することができます。数値を読み取りやすい表示に変更できる便利な関数です。TEXT関数を使用して、日付からその年だけ、月だけ、日だけ表示させることができます。
TEXT関数の書式と引数
TEXT(数値, 表示形式)
数値 | 数値、数式、または数値を含むセルの参照を指定します。 |
表示形式 | 数値書式を、”yyyy/mm/dd” など、引用符で囲んだテキスト文字列として指定します。 |
TEXT関数の使い方
数式 | 結果 |
=TEXT(A2,”yyyy/mm/dd”) | A2には「2018年5月21日」と入力されています。「2018/05/21」が返されます。 |
エクセルの表示形式には次のようなものがあります。数式に使えますので覚えておくと便利です。
表示形式 | 表示例 |
aaa | 月、火、水、木、金、土、日 |
aaaa | 月曜日、火曜日、水曜日、木曜日、金曜日、土曜日、日曜日 |
(aaa) | (月)、(火)、(水)、(木)、(金)、(土)、(日) |
ddd | Mon、Tue、Wed、Thu、Fri、Sat、Sun |
dddd | Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday |
エクセルEOMONTH関数の他にも、便利な日付の関数があります
エクセルの日付関数には、日付からその年だけ、月だけ、日だけ取り出せる関数があります。YEAR、MONTH、DAY関数を使うと、年だけ、月だけ、日だけ抽出ができます。
日付の関数は、使う用途が色々あります。使い方をマスターすると、仕事アップできます。
こちらの記事もご覧ください。⇒エクセル関数で日付を年だけ、月だけ、日だけ変換して抽出YEAR・MONTH・DAY関数を使用