Excel 関数と条件付き書式でガントチャート

【概要】
エクセルを使用してガントチャートを作成します。
関数と、条件付き書式で作成します。
セルの数値や日付を変更すると、自動でチャート部分が更新されます。
マクロや追加モジュール等の設定は不要です。
エクセルの設定はデフォルトでもOKです。たぶん。

なお、作成ではExcel2013を使用していますが、
Excel2007以降であれば同様のことが可能と思われます。

【手順】
1.エクセルの表部分を作成します。
2.必要に応じて関数を使用します。
3.条件付き書式を設定します。

【1.表部分】
サンプルでは以下の内容でセルを指定しています。

(1)【本日】
   対象:D5セル
   書式:ユーザ定義(yyyy/m/d)
(2)【項番1】
   対象:A9セル~A30セル
   書式:数値
(3)【項番2】
   対象:B9セル~B30セル
   書式:数値
(3)【項目名】
   対象:C9セル~C30セル
   書式:標準
(4)【予定開始日】
   対象:D9セル~D30セル
   書式:ユーザ定義(yyyy/m/d)
(5)【予定終了日】
   対象:E9セル~E30セル
   書式:ユーザ定義(yyyy/m/d)
(6)【実績開始日】
   対象:F9セル~F30セル
   書式:ユーザ定義(yyyy/m/d)
(7)【実績終了日】
   対象:G9セル~G30セル
   書式:ユーザ定義(yyyy/m/d)
(8)【進捗率】
   対象:H9セル~H30セル
   書式:パーセンテージ
(9)【チャート日】
   対象:I7セル~AD7セル
   書式:ユーザ定義(d)※1
(10)【チャート曜日】
   対象:I8セル~AD8セル
   書式:ユーザ定義(aaa)※2

※1「セルの書式設定」を選択→「ユーザ定義」を選択→「種類:」に「d」を入力して「OK」ボタン押下
※2「セルの書式設定」を選択→「ユーザ定義」を選択→「種類:」に「aaa」を入力して「OK」ボタン押下

【2.関数部分】
設定しなくてもよいです。
使用するのであれば、下記の設定が便利です。

(1)【本日】
   対象:D5
   数式:=TODAY()

【3-1.条件付き書式(チャート部分)】
条件付き書式は、
「条件付き書式ルールの管理」画面に表示される
リストの上部から順に適用されます。
そのため、書式設定は項番順に並べる必要があります。

また、条件付き書式の範囲にセルを自動で対応させるため、
行または列を固定して表記します。
例:「D5」セルの列と行を固定して参照→「$D$5」
  「D5」セルの列のみを固定(行は動的に変更)→「$D5」
  「D5」セルの行のみを固定(列は動的に変更)→「D$5」

なお、セルの値はサンプルのものを基に指定しています。
任意に変更してご利用ください。

★「数式」設定後に「適用先」を変更した場合、数式が自動で変更されますので、再度「数式」を設定しなおしてください。
★(1)から昇順に作成すると、本来の順番とは逆に作成されますので、ご注意ください。降順に作成するほうが並べ直しの手間が無く楽です。

(1)【本日日付】
   ルール:数式
   数式 :=$D$5=I$7
   書式 :罫線(セル左側 点線)
   適用先:=$I$9:$AD$30
   備考 :本日の日付とチャートの日付が等しいか判定
(2)【進捗線】
   ルール:数式
   数式 :=MIN($D9+ROUNDDOWN(($E9+1-$D9)*$H9,0),J$7)-MAX($D9,I$7)>0
   書式 :塗りつぶし(灰色)
   適用先:=$I$9:$AD$30
   備考 :予定線を元に作成。
       予定終了日の代わりに、予定開始日に (予定終了日-予定開始日)*進捗率 を小数点切り捨てで加算したものを適用する
(3)【予定線】
   ルール:数式
   数式 :=MIN($E9+1,J$7)-MAX($D9,I$7)>0
   書式 :塗りつぶし(山吹色)
   適用先:=$I$9:$AD$30
   備考 :二つの期間の重複を判定。
       (2つの期間の終了値の小さいほうから、2つの期間の開始値の大きいほうを減算)
       重複を判定する期間は、「予定開始日~予定終了日」と「チャート対象日~対象日の翌日」
(4)【稲妻線1】(単体の数式ではわかりづらくなるので2つ書式を使用)
   ルール:数式
   数式 :=AND($H9=1,MIN($D$5,J$7)-MAX($E9,I$7)>0)
   書式 :塗りつぶし(薄い灰色)
   適用先:=$I$9:$AD$30
   備考 :進捗が100%の場合のみ対象。
       重複を判定する期間は、「予定終了日~本日」と「チャートの対象日~対象日の翌日」
(5)【稲妻線2】
   ルール:数式
   数式 :=MIN($D9,$D$5)-I$7>0
   書式 :塗りつぶし(薄い灰色)
   適用先:=$I$9:$AD$30
   備考 :チャートの対象日と、予定開始日と本日の小さいほうまでの期間を判定
(6)【実績線】
   ルール:数式
   数式 :=MIN(IF($G9=0,$D$5,$G9+1),J$7)-MAX(IF($F9=0,$D$5,$F9),I$7)>0
   書式 :塗りつぶし(パターンの色:薄い青、パターンの種類:12.5%灰色)
   適用先:=$I$9:$AD$30
   備考 :二つの期間の重複を判定。
       二つの期間は「実績開始日~実績終了日」と「チャートの対象日~対象日の翌日」
       実績終了日と実績開始日については、空白(0)の場合は本日日付を使用する

【3-2.条件付き書式(表部分)】
設定しなくてもよいです。
設定すると便利です。

(7)【実績開始日の遅れの判定】
   ルール:数式
   数式 :=AND($H9<1,$F9=0,$D9<$D$5)
   書式 :塗りつぶし(赤色)
   適用先:=$F$9:$F$30
   備考 :進捗が100%未満、かつ、
       対象の実績開始日の記入なし、かつ、
       予定開始日が本日より小さい場合
(8)【実績終了日の遅れの判定】
   ルール:数式
   数式 :=AND($H9<1,$G9=0,$E9<$D$5)
   書式 :塗りつぶし(赤色)
   適用先:=$G$9:$G$30
   備考 :進捗が100%未満、かつ、
       対象の実績終了日の記入なし、かつ、
       予定終了日が本日より小さい場合
(9)【進捗率100%の判定】
   ルール:セルの値
   値  :次の値に等しい =1
   書式 :塗りつぶし(青色)
   適用先:=$H$9:$H$30
   備考 :進捗率100%の場合