前回の記事では、IF関数やIFS関数を使って、状況に応じて表示内容を変える方法を解説しました。
前回に続いて、IF関数を使っていきます。今回は、ガントチャートに実績を表示する仕組みを作ります。
*完成品のExcelスケジュールテンプレートはこちらからダウンロードできます。
前回の記事の内容を理解していれば、多分さらっといけるはずだよ~
STEP1 まずは条件を整理しよう
今回は、結構条件が複雑になるので、まずは表を作って整理してみました。
条件1 | 条件2 | 条件3 | 表示記号 |
---|---|---|---|
期日のセルである | - | - | ◆ |
期日以外のセルである | 仕事を実施した日である | 期日以内のセルである | > |
〃 | 〃 | 期日より後のセルである | ≫ |
〃 | 仕事を実施してない日である | - | (表示なし) |
上表のとおり、3段階で条件分岐を行います。つまり、IF関数の中に更にIF関数があり、その中にも更にIF関数がある・・・という構造になります。
STEP2 数式を入力する
このように、数式が複雑になりそうな場合は、一気に数式を作り上げようとすると混乱するので、段階ごとに数式を完成させていくのがおすすめです。
・・・というわけで、まずは、期日のセルには ◆ を表示し、期日でない場合は 期日以外 と表示する数式を作成します。
=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関数をつかって、複雑な条件分岐に対応しました。
次回からは、条件付き書式等を解説する予定です。お楽しみに!
コメント