ブログ練習帳ブログ練習帳かけだしWebデザイナー見習のボロボロブログホームブログ練習帳についてわたしのサイト見習い奮闘記くつろぐ、たびログ新しい記事お問い合わせExcelで予定表を作るご無沙汰してます。相変わらず、「明日できること、今日すな」の見習いです。なんだか、やることいっぱいだから、とりあえず予定表を作ってみよう!とトライしました。こんなんできました(Excel2016使用)。毎月、きちっと予定表を作って管理すれば、できる見習い?てな感じです。仕事ができるように、カレンダーを毎月作り直す必要がないように、ですです。ことで、2017年9月の予定表を作るときには、G1セルに「2017」、I1セルに「9」と入力するだけで、B3:C33まで、自動で日付と曜日が入ります。土曜日の行は青っぽく、日曜日の行は赤っぽく塗りつぶされることで、カレンダー感が出ます。本日については、真っ赤に塗りつぶされることで、緊迫感が出てます。これは、おもに「関数」と「条件付き書式」でできてます。次にささっと作れるように、ビボー録です。月を入れるだけで、自動で表示される入っている関数は、これだけ。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列をそのまま返しています。こんなことしないで「表示形式」でひとつのセルでやればいいじゃん!っていう突っ込みがあるかもですが、まあ、そこはご愛嬌ということで・・・・・・。