エクセルで日付と曜日を自動で表示させる方法!年と月を入力するだけ

エクセルで、カレンダーやスケジュール表を作成したい、という事はないでしょうか。ここでは、エクセル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関数を使用