• ベストアンサー

スケジュール管理 仕掛中の作業を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

  • エクセルの関数について

    時間の計算する表を作ったのですが、うまくいかない所があります。 現在の表は、B4に開始時間とC4に終了時間を入れ5時から22時までの間の経過時間をD4に、22時から5時までの時間経過をE4に入るようにしています。 「C1に5:00、D1に22:00、 B4に=IF(OR(B4="",C4=""),"",IF(OR(B4>=$D$1,B4<$C$1),"",IF(OR(C4>$D$1,C4<=$C$1),$D$1,C4)-B4))、 E4に=IF(OR(B4="",C4=""),"",IF(AND(C4>$C$1,C4<=$D$1),"",IF(AND(B4>=$C$1,C4<=$C$1),1-IF(B4<$D$1,$D$1,B4)+C4,C4-IF(AND(B4>=$C$1,B4<$D$1),$D$1,B4))))」です。 そこで、5時をまたがった時に、5時までの部分をE4に5時からの部分をD4に分けて表示させたいのですが、うまくいきません。 例えば、開始4:30 終了5:10の場合、D4に0:10 E4に0:30が表示させるようにです。 よろしくお願いします。

  • エクセル 関数 条件で文字を表示させる

    いつも回答して頂きありがとうございます。 開始時間を入力 ・・・ 作業中 中断開始を入力 ・・・ 中断中 中断終了を入力 ・・・ 作業中 終了時間を入力 ・・・ 作業終了 と、F3に表示させたいのですが、IFで長々繋ぐ方法しかないのでしょうか? 他に関数式が短くなる方法があれば教えて頂きたいのですが。よろしくお願いします。 下記が作成中の関数です。 =IF(C3>0,IF(C4>0,"中断中","作業中"),"作業待ち")

  • Excel 関数の引数で時刻を使いたい

    Excel2007です。 時間の計算をしたいのですがIF関数の引数に22:00等を使う方法を教えて下さい 次のようにすると22時までは計算されるのですが22時以降が計算されません。引数の時間の使い方が間違っているような気がするのですが、時刻を引数として使う方法を教えて下さい。 A1に日付  B2に開始時刻 =IF(WEEKDAY(A2)=7,"8:00","17:30") 土曜日は、8:00 月曜から金曜は、17時 日曜日は、入力しない  C2に終了時刻  手入力 例えば23:00 D2に =IF(C2<="22:00",C2-B2,"22:00"-B2)  開始時刻から22:00時までの時間 E2に =IF(C2>"22:00",C2-"22:00",0)  22:00以降終了時刻までの時間 よろしくお願いします。

  • エクセルの関数を教えてください

    下のような表で、E7に =IF(AND(D6>A1,OR(C7:C12<(A7-0.05))),"A",IF(AND(D6<A1,OR(B7:B12>(A7+0.05))),"B","")) と関数を入れましたが求めているものになりません。 文章にすると、D6がA1より大きかった場合かつC7からC12の間でA7から0.05を引いた数値が どれか一つでもあればA、D6がA1より小さかった場合かつB7からB12の間でA7から0.05を足 した数値がどれか一つでもあればBそれ以外は空白というものです。 正しい関数を教えてください。       A    B     C     D      E 1    98.483  98.501  98.446  98.477 2    98.477  98.482  98.442  98.452  3    98.449  98.461  98.365  98.372  4    98.372  98.396  98.350  98.387  5    98.388  98.472  98.379  98.414 6    98.412  98.479  98.389  98.439 7    98.433  98.603  98.430  98.555 8    98.559  98.579  98.465  98.500 9    98.500  98.600  98.467  98.569 10   98.568  98.635  98.530  98.546 11   98.548  98.579  98.486  98.494 12   98.497  98.569  98.460  98.534 13   98.534  98.565  98.527  98.542

  • エクセル関数

    現在エクセルで勤務時間を計算するデータを作成しているのですが、1点わからない点がありまして質問させてください。 平日の残業時間の計算は =IF(OR(+$C6="土",$C6="日"),I6,IF(I6>480,I6-480,0)) のようにして一応17:30以降の働いた場合の表示はできているので、問題ないのですが、 たとえば、休日の場合、平日と同じように働いたとしても、残業扱いにするとき、労働基準法で6時間を超える作業をする場合、45分の休憩をとりなさいというものを考えて計算式を作る場合、単純に作業時間が6時間超える場合、作業開始時間から終了時間の差から1440-45の数値(時間を分に置き換えた数値)をかけてあげれば、計算できるのですが、 ここからが悩んでいます。 6時間に満たない作業時間の場合、45分の休憩時間を引かずに計算式で計算し、表に表したいのですが、どのようにしたらいいのでしょうか? 例) 13:00作業開始 17:30作業終了 4:30作業時間 としたいのですが、現在だと3:45と表示されてしまいます。 おそらくIF関数を使用すればできると思うのですが、思うようにできません。 6時間以上か未満か判断し、45分の休憩を考えた関数をどなたか教えていただけないでしょうか? 宜しくお願い致します。

  • IFの入れ子(EXCEL関数)

    excel:2007 os:vista    A     B       c         D        E   STS   開始日(予定)  終了日(予定)  開始日(実績)  終了日(実績) 1 未着手   2017/1/31    2017/2/1      空白       空白 2 着手    2017/1/31    2017/2/1     2017/1/31     空白 3 完了    2017/1/31    2017/2/1     2017/1/31      2017/2/1 上記のように、STSと開始/終了の予定実績日付と当日日付(2017/2/2)を確認して、 1から2の状態だったら”超過”と表示したいです。 ・開始予定日となっているが、開始実績日が未入力のレコード ・着手しているが、終了予定日を過ぎているレコード ifの入れ子しか方法はないのでしょうか? 1か2の単独ではできるのですか、両方の条件を考慮させた場合、できません。 わかる方、ご教示を。 また、IFの入れ子以外に方法は、あるのでしょうか?

  • エクセル関数で、ご教示下さい

    例として、セルA1~A10に、1.2.3.・・・・10と番号を入れて       セルB1~B10には、商品の在庫数が入力されているとします。 この時、セルC1に集計の開始番号 セルC2に集計の終了番号を入力すれば、      D1に開始番号から終了番号までのB列の合計を表示させたいのですが、      このような集計ができるD1に入れる関数はあるでしょうか。 例えば、B列の3行目から6行目までの合計をD1に表示させたい場合に      C1にA列番号の3を入力、C2には6を入力すれば、D1にB3からB6の合計を      表示してくれる、といった関数です。      開始番号、終了番号は、何番~何番までと、その都度変わります。 どなたか、よろしく、お願いいたします。         

  • エクセル IF関数 初心者です。。

    A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 2  9:30 Cさん 11:00 3  10:00 Dさん 12:00 4  10:30 Eさん 9:00  1  9:00 A列氏名 B列時間 C列 B列IF関数 9:00からは1、10時からは2、 11からは3・・・ D列はC列のVLOOKUP関数 1=9:00、2=9:30、3=10:00・・・ そこでお聞きしたいのですが・・ A    B   C  D Aさん 9:00  1  9:00 Bさん 10:00 3  10:00 Cさん 11:00 4  10:30 Dさん 12:00 5  11:00 Eさん 9:00  2  9:30 IF関数を用いて IF(B1>=0.375),1,if(B1>=0.416666666666667),2,IF(B1>=0.458333333333333),3・・・ Eさんが2になるような数式がわかりません。 よろしくお願いします。。

  • エクセルでの関数の書き方

    セルA1からF1があります。 A1がC1かD1で同じでかつ B1がC1かD1で同じ場合に、 D1の値をF1にセットしたいのですが、 どのように書けばよろしいでしょうか? EX. A1が1でB1が2の場合は C1がD1が1,2または2,1の場合のみ E1の値をF1にセットします。 COBOLで書くとこんな感じになると思います IF (A1=C1 OR A1=D1) AND (B1=C1 OR B1=D1) THEN MOVE D1 TO F1 END-IF. IF関数かAND関数を使用するような気がしますが、 思いつきません。 よろしくお願いいたします。 エクセル2000です。

  • エクセル関数についてです。

    こんにちは。教えてほしいことがあります。 エクセルで作業進捗を作成して終了時間を算出する関数が知りたいです。 12時時点の作業残と3時時点の作業残を集計して終了時間を調整したいです。 (1)12時はE9(作業終了時間で関数入れる場所です) 作業数B9、人数C9、一時間一人当たりの平均値D9です。 ※条件としては昼は12:45から開始します。休憩時間は15:00~15:15の0:15分です。 (2)3時はB14(作業数量時間で関数入れる場所です。 作業数B14、人数C14、一時間一人当たりの平均値D14です。 ※条件としては3時は15:15からラスト(無限)でカウントしたいです。(休憩時間なし) あとエラー値を出したくないです。 何もうちこまなかったらセルを空白にしたいです。 説明下手で申し訳ありませんが本当によろしくお願いします。

専門家に質問してみよう