- ベストアンサー
追加ですみません。
先ほど以下の質問をさせていただいきました。 http://oshiete1.goo.ne.jp/qa4271829.html 休憩時間はどのように処理すればいいでしょうか? IFを使ってやろうとしたのですが、イマイチわかりません。 よろしくお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 了解しました。表さえ出来れば、それは必ず何とかなります。 私としては、補助列を設けることにしました。 F G H 10時 昼 3時 0:15 0:00 0:00 0:00 1:00 0:00 0:00 0:00 0:00 F2 の数式 =IF(AND(B2+(D2*"0:01")>"10:00"*1,B2<"10:15"*1),"0:15"*1,0) G2 の数式 =IF(AND(B2+(D2*"0:01")+F2>"12:00"*1,B2<"13:00"*1),"1:00"*1,0) H2 の数式 =IF(AND(B2+(D2*"0:01")+F2+G2>"15:00"*1,B2<"15:15"*1),"0:15"*1,0) 以上の3列は、数式をオートフィルでコピーして、表示を隠してもよいと思います。 そして、 予想終了時間 C列の数式 =B2+D2*"0:01"*1+F2+G2+H2 としてみました。これで出来るのではないでしょうか。 ただ、この後、深夜作業などがあると、かなり複雑になると思います。 シートの状況(ずれて見えると思いますが、メモ帳などに貼り付けて、メモ帳の右下端を横に広げれば、レイアウトが見えます) A列 作業名 予想開始時間 予想終了時間 予想作業時間 実際の作業時間 10時 昼 3時 作業A 9:00 11:07 112 0:15 0:00 0:00 作業B 11:07 14:07 120 0:00 1:00 0:00 作業C 14:07 16:22 120 0:00 0:00 0:15
その他の回答 (7)
- tossy005
- ベストアンサー率38% (7/18)
やるとしたらWendy02さんのやり方がスマートなやり方だと思います。 以下のものはWendy02さんのやり方を無理やり1セルに収まるようにしたものです。 どうしても項目の追加ができない場合はご使用下さい。 作業開始時間をB列、作業予想終了時間をC列、予想作業時間をD列とし、3行目から開始するとした場合、 C3に以下のものをコピー&ペーストすれば時間は出ますが、上記の通りお勧めはしません。 一目で分かって頂けると思いますが、とても分かりづらくメンテナンスのしにくいものになっていますので・・・。 =B3+D3*TIME(0,1,0)+IF(AND((B3+D3*TIME(0,1,0))>=TIME(10,0,0),B3<TIME(10,0,0)),TIME(0,15,0),0) + IF(AND(B3+D3*TIME(0,1,0)+IF(AND((B3+D3*TIME(0,1,0))>=TIME(10,0,0),B3<TIME(10,0,0)),TIME(0,15,0),0) >= TIME(12,0,0),B3 < TIME(12,0,0)),TIME(1,0,0),0) + IF(AND(B3+D3*TIME(0,1,0)+IF(AND((B3+D3*TIME(0,1,0))>=TIME(10,0,0),B3<TIME(10,0,0)),TIME(0,15,0),0) + IF(AND(B3+D3*TIME(0,1,0)+IF(AND((B3+D3*TIME(0,1,0))>=TIME(10,0,0),B3<TIME(10,0,0)),TIME(0,15,0),0) >= TIME(12,0,0),B3 < TIME(12,0,0)),TIME(1,0,0),0) >= TIME(15,0,0),B3 < TIME(15,0,0)),TIME(0,15,0),0)
お礼
ありがとうございます。 こんなに長くなるんですねぇ。驚きです。 本当にありがとうございます。
- Wendy02
- ベストアンサー率57% (3570/6232)
#4です。 >エクセル初心者でして申し訳ございません・・・。 別にクレームを付けているわけではなく、マクロの話を言っているわけでもありません。質問の要点が良く分からないのです。Wordを使っているわけではないでしょうから、文章として表すということは、また別問題だと思います。 まず、表の中に、変動する数値を入れる、ということが必要だと思います。 開始時間 作業時間 休憩開始 休憩終了 作業終了 というような表形式で、セルの位置情報などを一覧にして、そこで計算させるわけではないでしょうか。それを何度も使うということになれば、当然、固定している部分と変動する部分とが出てきます。 それらで、表になるわけです。 >休憩 10:00~10:15 >昼休みが12:00~13:00 >休憩 15:00~15:15 こういうものを、表で、どのように表現するのでしょうか。 そういうことが出来上がっていないままに、質問されているように思うのです。 他の回答された方には、失礼かもしれませんが、リテラル値(直接、数値を数式の中に入れること、例:112*"0:01" ,112 がリテラル値 )を埋め込むなんていうのは、その場限りです。横でも縦でもよいので、それを表にするのが、表計算の基本的な使い方だと思います。 Wordというなら、また、話は変わってきますが、表で使おうとしたら、同じことです。
補足
たびたびありがとうございます。 説明不足で申し訳ありませんでした。 こういう表現で合っているかどうかわかりませんが。 予想開始時間 | 予想終了時間 | 予想作業時間 | 実際の作業時間 作業A 9:00 | | 112分 | 作業B | | | 作業C | | | (ずれていてすみません) このような並びで予想作業時間を入力した場合、予想終了時間を表示させようとしました。しかし実際には休憩、昼休みがあり予想終了時間がずれてしまうのです。 それに作業A B Cの予想作業時間の長さは大きく変動するのでそれぞれの予想作業時間に対して1回の休憩時間だけでなく2回の休憩時間と昼休みを省けるように予想終了時間で表示させようとしたんですが、うまくいきませんでした。ですので休憩時間と昼休みという項目は表にはありません。 また、作業Bの開始時間は作業Aの終了時間、作業Cの開始時間は作業Bの終了時間となります。 実際の作業時間はただ数値を入力するだけで、予想作業時間は作業Aに対してVLOOKUPで呼び出しています。 どうでしょうか?
- imogasi
- ベストアンサー率27% (4737/17069)
休息時間をとるルールは。 作業1時間ごと15分か。 1作業ごといつでもよくて15分か。 一斉に全員10時から10時15分までか。 休息は日に1回ですか。 昼食時間は先ほどの質問に含まれていたのか。 それも1斉に12-1時ですか。 1日1回いつでも良く、昼食60分引くのか。 最初の休息時間後(や昼食時間後)に出勤(初めて作業開始)する人はいるのか。
お礼
ありがとうございます。 そうですねー、 仕事の開始が9:00で終了が18:00 変動するのは 作業A 112分 作業B 91分 作業C 69分 不動なのは 休憩 10:00~10:15 昼休みが12:00~13:00 休憩 15:00~15:15 という感じですね。 なので1作業ごとの休憩はありません。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 前の質問も今回の質問も、肝心なことが書かれていないようですが、 >エクセルで作業時間の集計をしています。 集計で >作業A 9時から○時○分 というので、時間帯を表示するというのは、マクロか何かでないと出来ないのに、なぜ、数式でOKだったのか、つじつまが合わないです。 >作業A 9時から○時○分 これは、作業の終了時間を表したいのではないのでしょうか。 それも、センテンスにしてあるのだから、センテンスなら、Text 関数などが必要になります。 それは別として、その間に、休憩時間を入れたら、その終了時間が延びるという意味なのではありませんか。もし、そういう質問なら、以下のようになります。 (プロポーショナルフォントでは以下はずれて見えます) A B C D E F 作業名 開始時間 継続時間 休憩開始 休憩終了 終了時間 作業A 9:00 112 10:00 10:15 11:07 終了時間の表示 F2: =IF((B2+C2*"0:01")>D2,B2+C2*"0:01"+E2-D2,B2+C2*"0:01")
お礼
ありがとうございます。 エクセル初心者でして申し訳ございません・・・。 マクロの使い方を理解しておりません。
- hallo-2007
- ベストアンサー率41% (888/2115)
9時から開始して60分以内(10時まで) と60分以上かかった場合ですよね A1に112分とか作業時間があった場合 =IF(A1<=60,A1*TIME(0,1,0)+"9:00",A1*TIME(0,1,0)+"9:15") の事でしょうか?
お礼
ありがとうございます。 後ほど実行してみたいと思います。
- tossy005
- ベストアンサー率38% (7/18)
>休憩時間の15分をとばして表示するようにできないかと 作業が10時を跨いだ場合、休憩時間の15分を加算して表示したいということでしょうか? もしそうなら、以下のテンプレートをご使用下さい。 ■テンプレート説明 Time関数の引数には、それぞれ時間、分、秒が入ります (Time(時間,分,秒)というこです)。 A:作業開始時間(単位は時分秒) B:作業時間(単位は分) C:休憩開始時間(単位は時分秒) D:休憩時間(単位は分) をそれぞれ下記テンプレートに入れてご使用下さい。 ■テンプレート =IF(B*TIME(0,1,0)+A>=C,B*TIME(0,1,0)+A+D*TIME(0,1,0),B*TIME(0,1,0)+A) ■補足説明 作業開始時間が9時0分0秒の場合AにはTime(9,0,0)を、 作業時間が112分の場合Bには112を 休憩時間の開始時間が10時0分0秒の場合CにはTime(10,0,0)を、 休憩時間の長さが0時間15分0秒の場合Dには15を入れてください。 そうすると、下記のようになります。 =IF(112*TIME(0,1,0)+TIME(9,0,0)>=TIME(10,0,0),112*TIME(0,1,0)+TIME(9,0,0)+15*TIME(0,1,0),112*TIME(0,1,0)+TIME(10,0,0))
お礼
ありがとうございます。 テンプレート、あとで試してみます。
- tossy005
- ベストアンサー率38% (7/18)
先ほどの回答者の方とは違う者ですが 休憩時間が分単位ならば 休憩時間を15分とすると =112*TIME(0,1,0)-15*TIME(0,1,0)+"9:00" または =(112-15)*TIME(0,1,0)+"9:00" でいかがでしょうか
補足
ありがとうございます。 えーとですね。 112分という時間 が10時00から15分間の休憩にまたがる場合(必ずしも9:00スタートとは限らないんです・・・)休憩時間の15分をとばして表示するようにできないかと思います。
お礼
ありがとうございます。 涙が出るほど嬉しいです。 のちほどトライしてみます。
補足
補足欄ですみません。 望みのとおりのものができました。 本当に感謝いたします。