• ベストアンサー

スケジュール管理 仕掛中の作業をexcel関数で表示する方法について

仕事のスケジュール管理をexcelで行っています。 excel関数について教えてください。  A   B    C     D    E 1               2008/10/1 2008/10/2  2作業1 2008/10/1 2008/10/10 (1)    (2) 3    2008/9/29       (3)    (4) 補足: A2:作業名(作業1) B2:開始予定日(200//10/1) C2:終了予定日(2008/10/10) B3:開始実績日(2008/9/29) C3:終了実績日(未記入) D1、E1:実日(2008/10/1、2008/10/2) (1)(2)実日が開始予定日から終了予定日の範囲にある場合は□を表示。  (1)「=IF(D$1>=$B2,IF(D$1<=$C2,"□",""),"")」  (2)「=IF(E$1>=$B2,IF(E$1<=$C2,"□",""),"")」 (3)(4)実日が開始実績日~終了実績日の範囲にある場合は■を表示。  (3)「=IF(D$1>=$B3,IF(D$1<=$C3,"■",""),"")」  (4)「=IF(E$1>=$B3,IF(E$1<=$C3,"■",""),"")」 上記例の場合、開始予定日より前に作業1を開始しているため、「仕掛中」です。しかし、上記(3)(4)の関数では■が表示されません。 やりたいことは、 仕掛中の場合は■を表示したいのですが、関数の指定方法がわかりません。 是非とも解決策を教えていただきたく、御教授の程宜しくお願い致します。 尚、excel関数で実現したいという制約があります。

質問者が選んだベストアンサー

  • ベストアンサー
noname#204879
noname#204879
回答No.4

[ANo.3この回答へのお礼]に対するコメント、 次式では如何でしょうか? D3: =IF(D$1>=$B3,IF(D$1<=($C3+TODAY()*($C3="")),"■",""),"")

kennybrain
質問者

お礼

素敵です! ばっちりです! ありがとうございました!!

その他の回答 (4)

回答No.5

> 終了実績日を記入したところ、終了実績日の前日までに > ■が表示される状態であることを確認しました。 > 因みに、min関数をmaxにしたところ、終了実績日の翌日 > まで■が表示されてしまいます。 入力ミスがありますね。私は動作確認してから回答しています。E3 の数式は=if(and(E$1>=$B3,E$1<=min($C3,today())),"■","")で間 違いありません。実績日が未入力なら今日まで■を表示、過去の日 付が実績日として入力されていれば、実績日まで■を表示、実績日 が未来でも今日までしか■は表示されないという仕様です。 上記の数式を、別のセルに入力してませんか。自分の列の日付を参 照していないような臭いがしますよ。

参考URL:
http://ponyo.no-ip.org/uploader0/src/01P0281.png.html
kennybrain
質問者

お礼

御返事大変遅くなり申し訳ありませんでした。 完全に私のミスでした。 御迷惑おかけしたことを深くお詫び致します。

noname#204879
noname#204879
回答No.3

D3: =IF(D$1>=$B3,IF(D$1<=($C3+2958465*($C3="")),"■",""),"")

kennybrain
質問者

お礼

非常にわかりやすい端的な御回答ありがとうございます。 御回答の関数でテストした所、 終了実績日を記入した場合は何の問題もなく、想定通りの結果を得ることができました。ありがとうございます。 終了実績日を記入しない場合、関数が定義されているセル全てに■が表示されてしまいました。 ■は作業が仕掛中であることを表している意味も含んでいますので、まだ終わっていない作業の進捗状況が実日を超えて■が表示されてしまうのは少々理想から離れてしまいます。 終了実績日を記入していない場合は、実日まで■が表示される、 終了実績日が記入されている場合は、終了実績日まで■が表示される、というのが理想です。何かアイデアが御座いましたら、追加質問で心苦しいのですが、御教授いただけたらと思います。何卒御回答の程宜しくお願い致します。

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.2

>  (3)「=IF(D$1>=$B3,IF(D$1<=$C3,"■",""),"")」 >  (4)「=IF(E$1>=$B3,IF(E$1<=$C3,"■",""),"")」 > > 上記例の場合、開始予定日より前に作業1を開始しているため、「仕掛中」です。しかし、上記(3)(4)の関数では■が表示されません。 終了実績日が空欄の状態で、IF(D$1<=$C3,"■","")やIF(E$1<=$C3,"■","")がどういう結果になるのか、つまりは、D$1<=$C3やE$1<=$C3がどんな判定値になるのかを理解しましょう。

kennybrain
質問者

お礼

もっと学習し、理解を深めるよう努力します。

回答No.1

ポイントは、終了実績がない場合にいつまで■を書くのかですね。 そこの判断がないから単純に日付の大小を比べて、C3がブランクだ と何も書けない。 たとえば今日は書くけど明日は書かないとしましょうか。妥当です よね。その場合、該当列の日付(E$1など)が終了実績もしくはtoday 関数より前なら■を書けばいいでしょう。ここで、終了実績は絶対 に明日以降の日付にならないこととexcelのmin関数は空白セルを無 視することを考慮すると、上記の条件は E$1<=min($C3,today())と 書けますね。 で、ついでなのでif関数の入れ子を見直して、 =if(and(E$1>=$B3,E$1<=min($C3,today())),"■","") てな感じですかね。

kennybrain
質問者

お礼

御回答ありがとうございます。 早速テストしてみました。 終了実績日を記入しない場合は何の問題もなく理想通りの結果が得られました。 終了実績日を記入したところ、終了実績日の前日までに■が表示される状態であることを確認しました。 因みに、min関数をmaxにしたところ、終了実績日の翌日まで■が表示されてしまいます。 終了実績日当日まで■を表示するのが理想なのですが、何か対策は御座いますでしょうか? 重ねての質問で大変申し訳ありませんが、上記問題を解決する方法について何卒御教授いただければ幸いです。御回答の程宜しくお願い致します。

関連するQ&A