[[20190722144809]] 『製作終了時間の計算(休憩時間あり)』(あ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『製作終了時間の計算(休憩時間あり)』(あ)

製作の終了時間の計算をしたいのですが、やり方がわかりません。

就業時間   9:00〜17:45
休憩時間1 12:30〜13:30
休憩時間2 15:30〜15:45

商品名 製作時間 開始日 開始時間 終了日 終了時間

  1       8時間  7/1   9:00

 2   10時間  7/2   17:00

 3   25時間  7/3   14:20

製作時間、開始日、開始時間を入れると終了日、終了時間を数式で出したいのですが、日付が変わったり、休憩時間を計算するような形にするのがどうやっていいかわかりません。
よろしくお願いします。

< 使用 Excel:Office365、使用 OS:unknown >


例を出すなら、答えも書いてくださいな。 それと、どれも最終日は午前中に終わってしまう時間数のようで、休み時間を挟んだ例が無いように見えます。

考え方を書きますと、1日の勤務時間数を求め(7:30ですね?)、必要な時間数をこれで割った商と余りに分けます。 余りが少しでもあるなら1日追加になるよう、切り上げましょう。 余りの方は、休憩時間それぞれより大きいようなら、休み時間分加算すれば良いでしょう。

数式にしてみたのが以下ですが、合っているかは確認していないです。 もっと単純化できそうに思いますが、考えるのが面倒なので、手なりで書いたままです。

 E2: =C2-1+ROUNDUP((B2/24/TIMEVALUE("7:30")),0)
 F2: =MOD(B2/24,TIMEVALUE("7:30"))+TIMEVALUE("9:00")+LOOKUP(MOD(B2/24,TIMEVALUE("7:30"))+TIMEVALUE("9:00"),{0,0.520833333,0.645833333},{0,0.041666667,0.052083333})
(???) 2019/07/22(月) 16:22

いや、全部午前というのは、私の勘違いですね。 全て9:00開始な数式を書いてしまいました。
このままでは使えませんが、まぁ考え方は判ると思いますので、応用してみてください。
(あと、2つの式にせず、1つの式にして、セルの書式で月日時分表記すれば簡単になりそう)
(???) 2019/07/22(月) 16:31

考えやすくするために、作業列を結構使いました
全部書くのは大変なので 説明だけ

順序だてて考えてみてください
・当日作業できる時間の算出
・翌日以降通日作業する日数の算出
・最終日に終了する時間の算出
の順で考えます

まず開始日は無視します。

1.開始時間から当日の終了時間(17:45)までの「当日の残り時間」を算出します・・・A
2.休憩時間を挟むので開始時間によって変化する調整時間を算出します・・・B
3.A-Bで当日の作業可能時間を算出します。・・・C
4.Cが制作時間より少なければ、当日で終了しますので終了日は同じで、終了時間も算出できます
5.Cが制作時間より多いときは翌日以降に終了しますので、翌日以降の作業時間を算出します。制作時間-C・・D
6.Dを7.5時間で割って、翌日以降で通日かかる日数を算出します・・・E
7.最終日の残り作業時間を算出します。D-E×7.5・・・F
8.最終日に9:00から始まって単純に終了する時間を算出します。9:00+F
9.休憩分、終了時間が伸びるので、調整時間をFに加算します。・・・G
10.終了日は、開始日+E+1 になります。(当日終了は除きます)
11.終了時間はGです。

面倒なのは2と9ですが、テーブルを作ってLOOKUP関数で参照するとよいでしょう

(渡辺ひかる) 2019/07/22(月) 16:59


 ちょっとお聞きしますが、土日祝日って終了日算出に関係するのでしょうか?

(半平太) 2019/07/22(月) 18:46


(半平太)さん>
できれば、土日祝日も考慮したいです。
(あ) 2019/07/22(月) 18:53

 >できれば、土日祝日も考慮したいです。

 どう「考慮」するんですか?

 「できれば」なので、「出来なければ考慮不要」と解釈していいんですね?

(半平太) 2019/07/22(月) 19:01


はい。
「出来なければ考慮不要」でいいです。
(あ) 2019/07/22(月) 19:09

 > どう「考慮」するんですか?
   ↑
 こっちは、どうなんですか?

 単純飛ばしですか、土曜は半日換算とかだったりしませんか?

 どこの会社も独自ルールがあるので、チャンと説明して頂きたい。

(半平太) 2019/07/22(月) 19:17


土日祝日は休みなので、すべて飛ばしでいいです。

(あ) 2019/07/22(月) 19:24


???さん、半平太さん、もうやめましょう。
質問者さんの最初の書き込みでは、難しい料理の作り方が分からないので、作り方を教えて欲しい。という依頼だと思って、私も時間を割いて、検討、実証した上で、手順をレスしたつもりです。しかし、それを試行して見るでもなく、完成した料理が出てくるのを待っているような状況ですから、これ以上のレスは無意味でしょう。
祝祭日の件については、当然考慮すべきだとは、認識していましたが、まずは、平日での構築が優先だと考えて、あえて提言しませんでした。
質問者さんの態度に進展が無ければ、これ以上の回答は、無意味と考えてますがいかがでしょう?

(渡辺ひかる) 2019/07/22(月) 20:32


 1.前提条件
 (1)開始日  は、 土日祝  ではないものとします。
 (2)開始時刻は、休憩時間帯ではないものとします。
 (3)製作時間は、時間シリアル値で入力するものとします。 (例:8時間は 8:00 と入力する)

 2.休憩補正表を下図の通り、H1:K5に作成してください。

 3.数式
 (1) E2セル =WORKDAY(C2,ROUNDDOWN((TEXT(B2+D2-"9:00"-LOOKUP(D2,$H$2:$I$4),"[h]:mm")-"0:00:01")/"7:30",0),祝日)
 (2) F2セル =MOD(TEXT(B2+D2-"9:00"-LOOKUP(D2,$H$2:$I$4),"[h]:mm"),"7:30")+"9:00"+LOOKUP(MOD(TEXT(B2+D2-"9:00"-LOOKUP(D2,$H$2:$I$4),"[h]:mm"),"7:30")-"0:00:01",$J$2:$K$5)

 <結果図>
  行 ___A___ ____B____ ______C______ ____D____ _____ E _____ ___ F____ _G_ __H__ ______I______ ____J____ _______K_______
   1 商品名  製作時間  開始日        開始時間  終了日        終了時間      開始  製作時間下駄  製作時間  休憩時間水増し 
   2      1   8:00     2019/7/1(月)   9:00     2019/7/2(火)   9:30          9:00  0:00               -1         8:30    
   3      2  10:00     2019/7/2(火)  17:00     2019/7/4(木)  10:45         12:30  1:00          0:00:02         0:00    
   4      3  25:00     2019/7/3(水)  14:20     2019/7/8(月)  17:05         15:30  1:15          3:30:02         1:00    
   5      4   8:15     2019/7/2(火)  17:00     2019/7/3(水)  17:30                              5:30:02         1:15    

 ※J1セルは、単なるマイナス1です。

 渡辺ひかるさんへ

 >質問者さんの態度に進展が無ければ、これ以上の回答は、無意味と考えてますがいかがでしょう? 

 態度は良くないでしょうね。でも無理はないとも思っています。

 この種の質問はかなり難問で、私でも100%は自信ないです。

 (自信がある回答者がいたら、お目にかかりたいものです。
  多分、タダの過信でしょうから、私が突っ込みを入れることになるかも知れない。
 すでに別案が提示されていますが、まともなものじゃないと思っているので
 ロクに読んでもいません。時間の無駄なので)

 ましてや、質問者のレベルでは永遠に到達できることはないでしょう。

 回答側で作る以外、解決しないと思っています。

(半平太) 2019/07/22(月) 23:05


半平太さん

レスありがとうございます
了解しました

今後ともよろしくお願いします
(渡辺ひかる) 2019/07/23(火) 09:27


指定した条件での答えを聞いても無視されたし、私も考える気無しと判断して、ここまでですね。 とりあえず半平太さんの例と同じ結果になるようなので、合っていると判断し、休日を考慮しない、作業列を使わない数式例を書いておきます。
 E2: =C2+ROUNDUP(((B2/24-(TIMEVALUE("16:30")+LOOKUP(D2,{0,0.520833333,0.645833333},{0,0.041666667,0.052083333})-D2))/TIMEVALUE("7:30")),0)
 F2: =TIMEVALUE("9:00")+MOD(B2/24-(TIMEVALUE("16:30")+LOOKUP(D2,{0,0.520833333,0.645833333},{0,0.041666667,0.052083333})-D2),TIMEVALUE("7:30"))+LOOKUP(TIMEVALUE("9:00")+MOD(B2/24-(TIMEVALUE("16:30")+LOOKUP(D2,{0,0.520833333,0.645833333},{0,0.041666667,0.052083333})-D2),TIMEVALUE("7:30")),{0,0.520833333,0.645833333},{0,0.041666667,0.052083333})

なお、1日で終わってしまう条件だと誤動作する問題を抱えています。 最初に1日で収まるかで分岐すれば簡単に解決しますが、この数式が更に長くなってしまう…。
(???) 2019/07/23(火) 10:10


 >半平太さんの例と同じ結果になるようなので

 商品名が「4」も同じになりましたか?

 気が進まなかったですが、試しに製作時間を10進数で「8.25」を
 入れてみましたが、同じにならなかったです。

 ※どっちが正しいかは、質問者の判断ですけど。

(半平太) 2019/07/23(火) 10:42


なるほど、なんで2秒追加しているのだろう?、とは思いましたが、4番のケースでも対応するためだったのですね。(私の数式だと、当日の終業時間ぴったりではなく、翌日の始業時間になってしまう)
(???) 2019/07/23(火) 11:46

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.