前回の記事では、IF関数、AND関数、OR関数などを応用して、ガントチャートに仕事の実績を描画しました。
今回は、条件付き書式を利用して、ガントチャート部分に色付けをしていきます。
*完成品のExcelスケジュールテンプレートはこちらからダウンロードできます。
条件付き書式で、期日を超過した実績部分を赤色にする
前回の記事で、ガントチャート部分に記号(◆、>、≫)が表示されるようにしました。その中の「≫」は、期日を超過している状態を表しているので、少し強調したいです。
Excelの条件付き書式を使えば、セルの入力内容等に応じて、フォントやセルの背景色などの書式が変わるようにできますので、それを活用します。
上図のように設定すれば、「≫」の場合のみ文字色が赤色になります。
条件付き書式で、仕事の予定日に色をつける
実績と期日については、ここまでの作業で>、≫、◆で表示されるようになりました。
次に、予定もガントチャート上に表示したいと思います。
予定は、記号ではなく、セルの色(ピンク)で表現することにします。
予定開始日・終了日の入力値によってセルの色を変えるので、ここでも条件付き書式を使用します。
入力した数式は下記のとおりです。
=AND($F7<>"",$G7<>"",$F7<=L$5,L$5<=$G7)
今回は、4つの条件をすべて満たしたセルがピンク色になるよう設定しました。その条件は下記のとおりです。
- F列(予定開始日)が入力されている
- G列(予定終了日)が入力されている
- 5行目(ガントチャートの日付)がF列(予定開始日)以降の日付である
- 5行目(ガントチャートの日付)がG列(予定終了日)以前の日付である
ちなみに、今回のように、対象の範囲(L7~AP46)を選択した状態で、条件付き書式の数式を設定する場合、選択した範囲の一番左上(L7セル)に適した数式を入力します。
そうすれば、L7(左上)のセル以外のセルでも、Excelが自動で数式を解釈してくれます。
例えば、M8セルにおいては、予定開始・終了日はちゃんと8行目を参照してくれますし、ガントチャートの日付は、M列を参照してくれます。
この説明のイメージがつかない人や、数式内の$記号の意味がわからない人は、「全体参照 相対参照 Excel」などのキーワードで調べてみてね。
条件付き書式で、休日の色を青にする
続いて、休日(土日に加えて、休日シートに設定した日)は、セルの色が青になるよう設定します。
これも、同じく条件付き書式で設定していきます。
入力した数式は下記のとおりです。
=OR(WEEKDAY(L$5)=7,WEEKDAY(L$5)=1,COUNTIF(休日!$A:$A,L$5)>0)
今回は、3つの条件のうち、いずれか1つでも満たしたら水色になるよう設定しました。その条件は下記のとおりです。
- 5行目(日付)の曜日が土曜日である
- 5行目(日付)の曜日が日曜日である
- 5行目(日付)と同じ日付が、休日シートのA列に存在する
曜日の確認には、WEEKDAY関数を使用します。
WEEKDAY(日付が入っているセル)とすると、曜日が1~7の数字で取得できます。
*1:日曜日、2:月曜日 ・・・ 7:土曜日
L$6=”土” という式ではだめなの?と思うかもしれないけど、セルの書式設定を aaa にしたから “土” と見えているだけで、実際のデータの中身が “土” なわけではないんです。
土日以外の休日についてはCOUNTIF関数で確認します。
5行目の日付が、休日シートのA列に何個存在するかを数えて、その個数が0個より多かった場合は書式設定の対象になるようにしました。
COUNTIF関数は、条件に合致するデータの個数を数える関数だけど、今回みたいに、データが有るか無いかを確認する時にもよく使うよ。
条件付き書式で、本日を赤色にする
次に、ガントチャートの日付部分が「本日」と同日の場合は、セル色が赤になるよう設定します。こちらも条件付き書式を使っていきます。
条件付き書式で、月の境目に罫線(実線)を引く
このガントチャートは、縦の罫線は両端以外は点線になっています。
月の境目だけは、線を目立たせたいので、条件付き書式で設定していきます。
次回予告
今回は条件付き書式を使って、自動でガントチャートに色がつくようにしました。
次回も条件付き書式を使います。進捗率を簡易的な棒グラフで表示できるようにしたいと思います。お楽しみに!
コメント
はじめまして。こちらのテンプレートが気に入ったので、利用させていただいてます。勉強の為自分でも作って見たのですが、休日に色を塗りたいので、条件付き書式にCOUNTIF〜の所を入力したところ、「条件付き書式に他のワークシートまたはブックの参照は出来ません。」とエラーが出てしまいます。何か変わりの入力方法はないでしょうか?エクセルは2007年のものです。
コメントありがとうございます。
調べてみたところ、Excel2007ですと、条件付き書式で他のシートを参照できないようですね。
回避策として、indirect関数を使う方法があります。
条件付き書式の数式の・・・
となっている部分を
に変えると、Excel2007でも動くようです。
(私が2007を持っていないので試してはいません。できなかったらすみません)