月替りの初日だけ月日を表示するカレンダー
2013Excel関数技BEST 66回 DAY関数、MONTH関数、IF関数
DAY関数とMONTH関数をIF関数で場合分け
今回は、最初のセルにだけ月日を入力すると、以降自動的に同じ月なら日付だけ、月替りの初日だけ月日を表示するカレンダーを作ります。
(サンプルファイルは、こちらから 2013関数技60回サンプルデータ)
Excelで最初の日付を入れると、次の日付を自動で表示するには
Excelは西暦を省略すると、今年と判断します。
2014年に、下図のA3セルに、
単に11/1と入力すれば、自動的に2014/11/1と判断します。
年度を指定したいときは、2015/1/1のように入力します。
A3セルの表示形式をユーザー定義で”m/d”にしておきます。
2014年に、下図のA3セルに、
単に11/1と入力すれば、自動的に2014/11/1と判断します。
年度を指定したいときは、2015/1/1のように入力します。
A3セルの表示形式をユーザー定義で”m/d”にしておきます。

Excelで曜日を表示する
B3セルには、WEEKDAY関数を使い、A3セルの曜日を取得しユーザー設定で曜日に変換します。
=WEEKDAY(A3)
=WEEKDAY(A3)

Excelの日付の本体はシリアル値
サンプルの表で、11/1の次の日付2を表示するには、
=A3+1で表示できます。
A3セルには ”11/30" と入力されていても、Excelは2014年11月30日と解釈しているので本体はシリアル値なのです。

=A3+1で表示できます。
A3セルには ”11/30" と入力されていても、Excelは2014年11月30日と解釈しているので本体はシリアル値なのです。

わざと、最初の日付を11/30と入力しましたが、
=A3+1できちんと12/1と表示されました。
さて、当初の目的のように2からは日付だけを表示するようにしましょう。
そこで、IF関数で場合分けして、取得したシリアル値の日付が1なら月を表示し、それ以外は日付だけ表示するという式を考えます。
=A3+1できちんと12/1と表示されました。
さて、当初の目的のように2からは日付だけを表示するようにしましょう。
そこで、IF関数で場合分けして、取得したシリアル値の日付が1なら月を表示し、それ以外は日付だけ表示するという式を考えます。
日付だけを取得するには、DAY関数を使います。
DAY 関数は、シリアル値を日付に変換します。
DAY 関数書式 =DAY(シリアル値)
もし、日付が1ならの論理式部分までは、IF(DAY(A3+1)=1,です。
月を取得するには、MONTH関数を使います。
MONTH関数は、シリアル値を月に変換します。
そこで、TRUEなら、月は、MONTH(A3)+1、日付は、DAY(A3+1)となります。
FALSEなら、月は表示せず日付のみで、DAY(A3+1) 合わせて、
DAY 関数は、シリアル値を日付に変換します。
DAY 関数書式 =DAY(シリアル値)
もし、日付が1ならの論理式部分までは、IF(DAY(A3+1)=1,です。
月を取得するには、MONTH関数を使います。
MONTH関数は、シリアル値を月に変換します。
そこで、TRUEなら、月は、MONTH(A3)+1、日付は、DAY(A3+1)となります。
FALSEなら、月は表示せず日付のみで、DAY(A3+1) 合わせて、
=IF(DAY(A3+1)=1,MONTH(A3)+1&"/"&DAY(A3+1),A3+1)

あとは、セルの書式設定で、A4セル以降のセルの表示を”d”にして、必要なら右づめにします。


こちらが完成した年間カレンダーです。月替りの初日だけその月が表示され以降は日にだけの表示になります。


今日の講義は以上です。お疲れ様でした。