エクセルで「年」と「月」を入力したら自動で「日付」と「曜日」を出力する方法を紹介します。
以下のような自動カレンダーの作成が可能です。
.
動画で見たい方はこちら!
準備
「年」と「月」の入力欄と「日付」、「曜日」という見出しを作成しておきます。
「年」と「月」の入力に応じて自動で「日付」を出す
まずは「年」と「月」の入力値に応じた「日付」を出力します。
A5のセルを選択した状態で、
=DATE(A1,A2,1)
と入力します。
これでエンターを押すと日付が出力されます
このDATE関数は引数に「年」と「月」と「日」の3つを取り、その値をもとに日付を出力してくれる関数です。
このように関数を使用することで、例えば「月」の入力欄を変更した時に、変更に応じて日付を変えることができるようになります。
「日付」に応じて「曜日」を自動で出力する
「日付」に応じて「曜日」を自動で出力してみましょう。
「曜日」を自動で出力するためにはTEXT関数を使用します。
B5のセルに、
=TEXT(A5,"aaa")
と入力します。
エンターを押すと「日付」に応じた「曜日」が出力されます。
もし「火」ではなく、「火曜日」と出力したい場合には、
=TEXT(A5,"aaaa")
と入力することで表示方法の変更が可能です。
これで一日の表示ができました。
一ヶ月分の日付を表示
二日目以降の値も自動で出せるようにして一ヶ月分の日付を表示させます。
手順は以下のとおりです。
A6のセルに「=A5+1」と入力
A6セルの右端の下を下側に引っ張り、オートフィルでコピー
この時に31日分まで出力するようにします。
2月は28日までなので3月まで出力されてしまいますが、のちほどこれは修正します。
続けて「曜日」もコピーしていきます。
A5セルを下にドラッグしてオートフィルでコピー
土日に色を塗る
続いて曜日が土日の場合に色を塗っていきましょう。
手順は以下のとおりです。
B5セルを選択
「ホーム」タブ→「条件付き書式」→「新しいルール」を選択
「数式を使用して、書式設定するセルを決定」を選択
「次の数式を満たす場合に値を書式設定」の下のボックスに、
=TEXT(A5,"aaa")="土"
と入力します。
このように書くことで、「曜日が土曜日だったら」という条件式になります。
続いて土曜日だったらセルの背景色を変更するように「書式」を選択し、塗りつぶしから「青」を選びます。
これでOKを押します。
これで曜日が「土」ならセルの背景色が青になる指定をしましたが、B5セルの曜日は「火」のため何も変化がありません。
現時点では上記で作成した条件式がB5セルにしか適用されていないため、他の日付にも適用させていきます。
B5のセルを選択した状態で、左上のバケツマークを押します。
B5セルが点滅するようになったら下にドラッグしていきます。
すると条件式がコピーされ、曜日が土曜日のセルの背景色が青になるようになります。
では同じ要領で日曜日にも色がつくようにします。
「条件付き書式」から「数式を使用して、書式設定するセルを決定」を選択し、
=TEXT(B5,"aaa")="日"
と入力します。
これで「曜日が日曜日だったら」という条件式ができました。
続けて「書式」から「塗りつぶし」を赤に設定します。
これでOKを押します。
続いて先ほど同様にペンキマークから下にドラッグしていくと日曜日のセルの背景色が赤に変わります。
これで曜日の色の変更もできました。
最後に当月の日付からはみでてしまっている2月29日から2月31日までを非表示にするようにしていきます。
やり方としてはA33のセルを選択した状態で、
=IF(MONTH(A32)=MONTH(A32+1),A32+1,"")
と入力します。
条件式の内容は28日の月と28日に1日を足した月が一致しているかをチェックしています。
例えば2月であれば2月28日に1日を足すと3月1日になるので、2月と3月で条件式が一致しなくなります。
そして一致しない場合にはその日付はないということで空白にすれば、当該月に29日の日付がなければ非表示にすることが可能です。
30日と31日にはそれぞれ、
=IF(MONTH(A32)=MONTH(A32+2),A32+2,"")
=IF(MONTH(A32)=MONTH(A32+3),A32+3,"")
と入力します。
これで当該月にない日付を非表示にすることができるようになりました。