Excelを勉強しましょう EnjoyExcel

アイコンの機能や関数の説明、VBA初心者向けの勉強方法について情報掲載しています。関数、VBAともに理解が進むように出来るだけ事例を交えて説明しています。

Excelで簡単な日程表をつくってみる その2 

f:id:EnjoyExcel:20210626122303p:plain

 

前回は曜日を表示させるための関数について紹介しました。

enjoyexcel.hatenablog.com

 

前回の記事で課題として残っていた以下の3つを検討しましょう。

  • 日付は俗に言う「西向く士(さむらい)」以外は31日終わり。
  • 4年に1回のうるう年を忘れてはいけない。
  • 1~28日まではどの年月でも絶対に発生する

 

クリアするためにこんなことを考えました。

  • IF文で28日以降の表示を準備出来るかも
  • うるう年は年について計算をする事で乗り切れるかも
  • 1~28日はデフォルトで良いのでは?

 

これをもとに考えていきましょう。

 

今回は日付を表示させます。日付と曜日の関係をおさらいしておきます。

 

前回も提示しました曜日を表示させるためにセルB8に書かれている関数です。

DATE関数の中にいる「$A8」が日付です。

f:id:EnjoyExcel:20210423151323p:plain

これで日付がないと曜日が表示されないので関連付けがある事が分かりますね。

 

改めて書きますが日付はセルA8から始まります。セルA9方向に日付が続きます。

 

1日~28日はどの月でも必ずあるのでセルに直書きしています。

 

セルの書式設定で「ユーザー定義」を選択し 「#”日”」を選択するとセルには数値だけ入力しても「○○日」と表示されるようになります。

 

デフォルトは 「##”日"」かも?どちらでも結果は一緒です。

f:id:EnjoyExcel:20210425131510p:plain

 

では29日以降のことを考えましょう。

まず動画をみてください。うるう年の件についても解決させています。

youtu.be

f:id:EnjoyExcel:20210425134346p:plain

 

動画で説明に使った日程表の欄外に書いたネタの画像もつけておきます。

 

29日が表示されることになるセルA36は以下のような式が入力されています。

f:id:EnjoyExcel:20210425134328p:plain

=IF(AND(B5=G8,H5=""),"",29)

言葉で説明するとセルB5の手入力する月と欄外の2という数字がイコールかつセルH5に「うるう年」が表示されてないときは空欄。それ以外は「29」を表示させるようにしています。

 

「うるう年じゃない2月」以外は29日は必ず発生しますよね。

 

次に30日が表示されることになるセルA37は以下のような式が入力されています。

f:id:EnjoyExcel:20210425134332p:plain

これはシンプルです。2月以外は30日は必ず発生するのでそれを書いたまでです。

 

最後に31日が表示されることになるセルA38は以下のような式が入力されています。

f:id:EnjoyExcel:20210425134340p:plain

セルB5の手入力する月が1、3、5、7、8、10、12月の時は31日を表示させてそれ以外は空欄を表示させるようにしています。

 

西向く士(さむらい)以外は31日を表示させているという事です。

 

これでセルB4、B5に年月を入力すると適切な日付が表示されて日付に対して曜日が表示されるようになりました。

 

これで課題もクリアできたと思います。

 

最後は条件付き書式で土日にあたるセルに色を付けるだけです。

これは当初の構想段階では検討していませんでしたがあった方が良いなと思い最後に追加した仕様です。

 

最初に思いつかなくてもやってくうえで仕様を柔軟に変えていく、変えていけるようにガチガチに作りこまない方が後々良いこともあります。参考にしてください。

 

条件付き書式については次回説明します。