メディア掲載: レバテックフリーランス様のサイトで当ブログが紹介されました

【Excel】ガントチャート付きスケジュール表を作る(第3回:IF関数で仕事の実績を描画)

前回の記事では、IF関数やIFS関数を使って、状況に応じて表示内容を変える方法を解説しました。

前回に続いて、IF関数を使っていきます。今回は、ガントチャートに実績を表示する仕組みを作ります。

*完成品のExcelスケジュールテンプレートはこちらからダウンロードできます。

前回の記事の内容を理解していれば、多分さらっといけるはずだよ~

STEP1 まずは条件を整理しよう

今回は、結構条件が複雑になるので、まずは表を作って整理してみました。

条件1条件2条件3表示記号
期日のセルである
期日以外のセルである仕事を実施した日である期日以内のセルである
期日より後のセルである
仕事を実施してない日である(表示なし)
すこし複雑な条件分岐になる

上表のとおり、3段階で条件分岐を行います。つまり、IF関数の中に更にIF関数があり、その中にも更にIF関数がある・・・という構造になります。

STEP2 数式を入力する

このように、数式が複雑になりそうな場合は、一気に数式を作り上げようとすると混乱するので、段階ごとに数式を完成させていくのがおすすめです。

・・・というわけで、まずは、期日のセルには ◆ を表示し、期日でない場合は 期日以外 と表示する数式を作成します。

まずは簡単なIF関数
=IF(L$5=$E7,
     "◆",
     "期日以外"
)

L5(ガントチャートの日付部分)がE7(期日)と一致した場合、◆を表示、それ以外の場合は 期日以外 という文言を表示する数式になります。

次に “期日以外” の場合に、その日が仕事を実施した日かどうかを判定します。

青い部分は先ほど入力したまま。赤い部分が今回修正した部分
=IF(L$5=$E7,
     "◆",
     IF(AND($H7<>"",$H7<=L$5,OR($I7="",L$5<=$I7),L$5<=$G$2),
          "仕事を実施した日",
          ""
     )
)

仕事を実施した日かどうかの判定は結構難しかったですが、私は下記の4条件をすべて満たした場合に仕事を実施した日とみなしました。

  • H7(開始日) が未入力でないこと
  • H7(開始日) が L5(ガントチャートの日付) 以前であること
  • I7(終了日) が未入力、もしくは、L5(ガントチャートの日付) が I7(終了日) 以前であること
  • L5(ガントチャートの日付) が G2(本日) 以前であること

これら条件を満たせば、仕事を実施した日 と表示し、そうでない場合は空白となります。

最後に、仕事を実施した日が期日より前なのか、期日より後なのかを判定します。

青い部分は先ほど入力したまま。赤い部分が今回修正した部分
=IF(L$5=$E7,
     "◆",
     IF(AND($H7<>"",$H7<=L$5,OR($I7="",L$5<=$I7),L$5<=$G$2),
          IF(L$5<$E7,
               ">",
               "≫"
          ),
          ""
     )
)

L5(ガントチャートの日付)がE7(期日)より前であれば > を。そうでなければ ≫ を表示する式になります。

最後に、この式をガントチャートの一番右下のセルまでペーストしてください。

これで、ガントチャートに実績と期日を表示することができました。
下図のようになっていればОKです。

開始日前は表示なし、開始~期日までは>、期日以降は≫というように、意図通り表示されている

次回予告

今回はIF関数をつかって、複雑な条件分岐に対応しました。

次回からは、条件付き書式等を解説する予定です。お楽しみに!

コメント

タイトルとURLをコピーしました