Excelで予定表を作る

ご無沙汰してます。相変わらず、「明日できること、今日すな」の見習いです。

なんだか、やることいっぱいだから、とりあえず予定表を作ってみよう!とトライしました。

こんなんできました(Excel2016使用)。

excel0909-1

毎月、きちっと予定表を作って管理すれば、できる見習い?てな感じです。
ささっと仕事ができるように、カレンダーを毎月作り直す必要がないように、ですです。時短です。
てなことで、2017年9月の予定表を作るときには、G1セルに「2017」、I1セルに「9」と入力するだけで、B3:C33まで、自動で日付と曜日が入ります。
そして、土曜日の行は青っぽく、日曜日の行は赤っぽく塗りつぶされることで、カレンダー感が出ます。そして、本日については、真っ赤に塗りつぶされることで、緊迫感が出てます。

これは、おもに「関数」と「条件付き書式」でできてます。
次にささっと作れるように、ビボー録です。

 

まずは、関数・・・・・・

★年と月を入れるだけで、自動で表示される

excel0909-2

入っている関数は、これだけ。まず、B3に「=DATE(G1,I1,1)」と入力。
これは、G1やI1を参照して、月初の1日目を取得します。
そして、B4に「=B3+1」が入ります。これは、B3の次の日ということ。Excelでは、1が1日となるので、これでOK。
あとは、オートフィルで式を下へコピーすれば大丈夫!

 

★一応、月末処理も・・・

でもでも、30日とか31日とか、月によって違うし、2月に至っては、どうなるのよ!って問題があります。

で、思いついたのが、B31からB33の式です。
B31には「=IF(B30=””,””,IF(MONTH(B30+1)=$I$1,B30+1,””))」としました。
これは、
「まず、直前の日のセルが空白だったらこのセルも空白よ!」ということからスタート。これは、本当はこのセルには入力する必要がないのだけど、その下2つのセルと同じにしておいたほうが管理上楽かなということと、オートフィルを使いたかったから。本来は、B32以降のセルに入れておけばよいものです。

で、上のセルが空白ではなかったら、次は「上のセルの日の次の日の月がI1で入力した月と同じであれば、上のセルの日に一日足した日を返しなさい。そうでなければ、空白よ!」という意味です。つまり、9月の予定表を作っているとき、単純に前の日を1日足していくと、10月1日の予定表が出てきてしまうことがあります。それを防ぐために、「もし、そのセルに表示される日が、次月ならば、空白にしておいてね♪」ということをしてます。

この3つのセルだけに、この式を入れたのは、31日分作った表の中で、一番短くなる可能性のある2月28日の次の日以降を処理するため。29日以降のセルで処理すればよいからです。

なお、C列については、B列をそのまま返しています。こんなことしないで「表示形式」でひとつのセルでやればいいじゃん!っていう突っ込みがあるかもですが、まあ、そこはご愛嬌ということで・・・・・・。許してください。なんとなくです。なんとなく。

 

あとは、「条件付き書式」で曜日と本日

条件付き書式で一気にいけます。

前にも、条件付き書式で、悩んだことがあるので、そのリンクはこちら。

まず、条件付書式を設定したいセル「B3:E33」を選択します。

excel0909-2-2

その状態で、「ホーム」→「条件付き書式」→「新しいルール」と進んで、「数式を使用して、書式設定するセルを決定」をクリックし、「次の数式を満たす場合に値を書式設定」に式を入れ、「書式」から「セルの書式設定」→「塗りつぶし」で塗りつぶしの色を設定していく流れです。

excel0909-2-3excel0909-2-4

「B3:E33」に設定している書式はこんな風です。

excel0909-3
上から、「本日なら、赤く塗りつぶしてね」です。なお、本日の塗りつぶしが行われた場合、曜日での色分けは無効にしたいので、「条件を満たす場合は停止」にチェックが入っています

次が、土曜日の場合に青っぽく塗りつぶす条件付き書式

その次が、日曜日の場合に赤っぽく塗りつぶす条件付き書式です。

 

★「本日なら、赤く塗りつぶしてね」

の式は、「=$B3=TODAY()」です。「$B3」と複合参照になっているのは、この条件に当てはまる場合には、その行のC、D、E列にも書式を適用してほしいから。Bの前に$マークをつけて、B列を固定させるけど、条件付き書式を下にコピーしたときには、4行目5行目と条件を移動させたいので、3の前には$をつけていません。

excel0909-4

★土曜日なら青っぽく塗りつぶす

の式は、「=WEEKDAY($B3)=7」です。B3をWeekday関数を使って、曜日を取得します。Weekday関数は、このように書くと、その曜日を日曜日を1として月曜日は2、火曜日は3というように、数字で返してくるので、土曜日の場合は、7と返します。だから「、7という数字が返ってきたときには、青っぽくしてね」となります。ここでも、「$B3」と複合参照で書いておきます。理由は、「本日なら、赤く塗りつぶしてね」と同じ。

excel0909-5

★日曜日なら赤っぽく塗りつぶす

の式は、「=WEEKDAY($B3)=1」です。これは、「土曜日なら青っぽく塗りつぶす」を日曜日に変えただけなので、理由もまったく同じ。おほほほほ。

excel0909-6

と、こんな感じで、予定表を作ってみました。どうでしょ。
おおお、気づいたら、もう、こんな遅い時間ではありませんか。予定表を作ったところで、本日も終了! あれ??????

 

前途多難な見習いです。皆様、ごきげんよう・・・・・・。(きゃー、どうしよう)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

コメントフィード

トラックバックURL: http://pc.beginners-luck.net/pcwp/2017/09/09/excel-sch.html/trackback