[[20080516135913]] 『残業時間』(もも) >>BOT

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

 

『残業時間』(もも)
 何度も質問させていただいております。
 今回もお願いします。
 <例>
 C5 出勤 8:00
 D6 退勤 17:00
 E7 昼   1:00 (昼休みをとらず1時間労働)
 F8 残業  1:00 
 F8  計算式=MAX(0,D6-C5+E7"8:")をいれましたが、 
 F8の残業時間が 1時間とはなりません。

 <例>
 C5 出勤 8:00
 D6 退勤 17:30
 E7 昼   0:30 (昼休みを30分労働)
 F8 残業 1:00
 となる、計算式を教えていただけませんか?
 8:00〜17:00までの9時間拘束の8時間労働で、超えた時間・昼休み時間の労働は、
 残業扱いになります。

 =IF((D6-C5+E7-"1:00")-"8:00">0,(D6-C5+E7-"1:00")-"8:00","")
 もしも勤務時間が0より大きければ勤務時間を、
 勤務時間がマイナスなら""を入れる。

 F8=MAX(0,D6-C5-"1:00"+E7-"8:00")


 セル位置が少々変では? 以下、レイアウトについては独断で、、

 昼休みの扱いが特殊なようなので。

 F5セル =IF(COUNT(C5:D5)>1,MAX(0,(D5-C5-"9:00"))+E5,"")

 <結果図>
 行   _C__  __D__   E _   F _  
  4   出勤  退勤   昼    残業  
  5   8:00  17:00  1:00  1:00  
  6   8:00  17:30  0:30  1:00  
  7   8:00  17:30  0:45  1:15  
  8   8:00  13:00  0:30  0:30  

 (半平太)

 半平太さま 
 ありがとうございます。すばらしいです。
 出勤簿管理完成です!!!
 日本語がうまく伝わらないとよく言われます。
 セルがずれてましたね。(恥ずかしい)(><)
 今までの質問が、解決しそうです。
  なのですが IF((D6-C5+E7-"1:00")-"8:00">0,(D6-C5+E7-"1:00")-"8:00","")は、
  どう意味でしょうか? 頭悪くてすみません。


 >なのですが IF((D6-C5+E7-"1:00")-"8:00">0,(D6-C5+E7-"1:00")-"8:00","")は、
 >どう意味でしょうか?

 それは私の回答ではありませんので、その方に解説をお願いします。

 HNなしが多くて、困ったものです。 (半平太)

 もうひとつ 教えていただけますか?
一月の出勤日数を計算するときは
計算式は どのようにいれたらいいのでしょうか?
残業集計は出来ました。
   17日 ・・・・・・・・・・・合計
出 8:00        日   ここがわかりません。
退 17:00
残 0:00        15:00 ←はできました。

    A    B      C      D    ・・・ AG
1       1日    2日    3日	 ・・・ 合計
2  出   8:00	   8:00	 ・・・
3  退  17:00	  17:00	 ・・・
4  残   0:00	   0:00	 ・・・

 レイアウトが上記のようでしたら 
 AG2=COUNT(B2:AF2)			
 あるいは
 AG=COUNTIF(B2:AF2,">0")			

 ※前回投稿→F8=MAX(0,D6-C5-"1:00"+E7-"8:00") HN記入忘れてました(-_-;)
  ももさんも投稿の都度お名前をご記入ください。。。(gon-2)

gon-2さま
早速の回答をありがとうございました。
出来ました。   (もも)


 以前の半平太さんの回答を使わせていただいてますが、
 これができたら完璧でうれしいのですが、

   C  D   E   F  G  H  I  J    K   L
   出  退   昼 深夜休  早出 普通 残業 深夜  普通  残業
                 6:00 8:00  17:00 22:00      
                 8:00 17:00  22:00 6:00
  8:00  17:00  1:00        540         8:00
  8:00  17:00                       8:00  1:00 (昼労働した1時間)
  8:00  15:00  1:00                    6:00
  8:00  15:00                       7:00→普通6時間 
 残業1時間になるといいいのですが・・・
 むりでしょうか?

 >以前の半平太さんの回答を使わせていただいてますが、
 私の式は採用されていないと思っているのですが、どのセルにどんな数式が入っているのですか?

 >むりでしょうか?
 無理ではないのでしょうが、なにせご質問がよく分からないンです。(^^ゞ

 以下の通り出ればいいのですか?

 行   _C__  __D__   E _  _ F __  _G__  __H__  __I__  __J__  _K__  _L__  
  1   出    退     昼    深夜休  早出  普通   残業   深夜   普通  残業  
  2                              6:00  8:00   17:00  22:00              
  3                              8:00  17:00  22:00  6:00               
  4   8:00  17:00  1:00                                     8:00  0:00  
  5   8:00  17:00                                           8:00  1:00  昼働の1時間を計上
  6   8:00  15:00  1:00                                     6:00  0:00  
  7   8:00  15:00                                           6:00  1:00  昼働の1時間を計上
  8   8:00  15:00  0:15                                     6:00  0:45  昼働の45分を計上
  9   8:00  18:00  0:15                                     8:00  1:45  昼働の45分を正規残業に加算

 ならば
 (1) K4セル =IF(COUNT(C4:D4)>1,MAX(0,MIN("8:00",D4-C4-"1:00")),"")
 (2) L4セル =IF(K4="","",MAX(0,D4-C4-"9:00")+"1:00"-E4)

 (半平太)

 半平太さま すみません。 
[[20050309110820]]を見ました。
 回答が Hsachさんになっていました。
 すみません。

 で、半平太さんの計算式を使わせていただきましたが、
 8:00〜12:00勤務だと 普通 3:00と自動計算され、
 15:00〜18:30だと  普通 2:30 残業が1:00
 となりました。

 正しくは、
 8:00〜12:00→普通 4:00
 15:00〜18:30→普通 2:00 残業 1:30
 となってほしいのですが・・・
 よろしくお願いします    (もも)

 > 半平太さま すみません。 
[[20050309110820]]を見ました。
 > 回答が Hatchさんになっていました。
 私はそのトピック、よく読んでおりません。
 訳が分からなかったので敬遠していました。

 ・・と云う訳で、以下の回答は、チャンと理解した上で作ったものではありません。
 (深夜休がどう云う風に関係してくるのかも分かっていないので、考慮もしておりません。)

 こうなればいいのであれば

 行   __C__  __D__   E _  _ F __  _G__  __H__  __I__  __J__  _K__  _L__  
  1   出     退     昼    深夜休  早出  普通   残業   深夜   普通  残業  
  2                               6:00  8:00   17:00  22:00              
  3                               8:00  17:00  22:00  6:00               
  4   8:00   17:00  1:00                                     8:00  0:00  
  5   8:00   17:00                                           8:00  1:00  
  6   8:00   15:00  1:00                                     6:00  0:00  
  7   8:00   15:00                                           6:00  1:00  
  8   8:00   15:00  0:15                                     6:00  0:45  
  9   8:00   18:00  0:15                                     8:00  1:45  
 10   8:00   12:00                                           4:00  0:00  
 11   15:00  18:30                                           2:00  1:30  

 (1) K4セル =IF(L4="","",MAX(0,D4-C4-E4-L4))
 (2) L4セル =IF(COUNT(C4:D4)<2,"",MAX(0,MAX(0,D4-"17:00")+MAX(0,MIN("13:00",D4) - MAX("12:00",C4))-E4))

 (半平太)

半平太さま 
すみません。普通H4に このような計算式が入っております。

IF(OR(COUNT($C$4:$D$4)<2,$C4-H$3>=0,$D4-H$2<=0),0,MIN(ROUND($D4*1440,0),ROUND(H$3*1440,0))-MAX(ROUND(H$2*1440,0)))
なので、どうかわかりませんが、(1) K4セル =IF(L4="","",MAX(0,D4-C4-E4-L4))をいれましたが 0:00にしかなりません。
難問ですか?もう少し教えていただきたいのですが・・・お願いします。(もも)


 >普通H4に このような計算式が入っております。 
 >IF(OR(COUNT($C$4:$D$4)<2,$C4-H$3>=0,$D4-H$2<=0),0,MIN(ROUND($D4*1440,0),ROUND(H$3*1440,0))-MAX(ROUND(H$2*1440,0)))
 1.この式を入れると「540」と出ますが、H4には何が算出されるのですか?

 > なので、どうかわかりませんが、(1) K4セル =IF(L4="","",MAX(0,D4-C4-E4-L4))をいれましたが 0:00にしかなりません。
 2.K4の式はH4とは無関係なので、8:00と出てくるハズです。私の環境ではそう出ていますが、、、(私が図示した通りです)

 あのー、L4セルにも式を入れないと、チャントと出ませんよ。

 (半平太)

半平太さま 申し訳ありません。m( )m
私の入力ミスでした。ごめんなさい。LをKで入力してました。
ごめんなさい。
完璧です!!!
Hには分数がでます。540分です。
ありがとうございました。   (もも)

半平太さま つかの間の喜びでした。
もう少し ご指導ください。

行 __C__ __D__ E _ _ F __ _G__ __H__ __I__ __J__ _K__ _L__

  1   出     退     昼    深夜休  早出  普通   残業   深夜   普通  残業  
  2                               6:00  8:00   17:00  22:00              
  3                               8:00  17:00  22:00  6:00               
  4   8:00   17:00  1:00                                     8:00  0:00  
  5   8:00   17:00                                           8:00  1:00  
  6   8:00   15:00  1:00                                     6:00  0:00  
  7   8:00   15:00                                           6:00  1:00  
  8   8:00   15:00  0:15                                     6:00  0:45  
  9   8:00   18:00  0:15                                     8:00  1:45  
 10   8:00   12:00                                           4:00  0:00  
 11   15:00  18:30                                           2:00  1:30  
11列が 正確にでません。
15:00〜17:00はOKですが
15:00〜18:00だと 普通欄に3:00
14:00〜18:00だと     4:00
となります。
17:00をすぎたら 残業になるのでそのようにできないのでしょうか?
17:00〜も作業することがあるので、残業としてでたらいいのですが。
ややこしくてすみません。
お願いいたします。
             (もも)

 >17:00をすぎたら 残業になるのでそのようにできないのでしょうか?
 そうなっているとおもうのですが、、、

 私の式だと、こう出るハズですが、それが間違いなのですか? それともそう出てこないと云うことですか? (半平太)
        ↓
 行   __C__  __D__   E    F   _G_  _H_  _I_  _J_  _K__  _L__  
 10   15:00  17:00                                2:00  0:00  
 11   15:00  18:30                                2:00  1:30  
 12   14:00  18:00                                3:00  1:00  

 半平太さま おはようございます。
すみません。やはり 下記のようにでます・・・・
__C__  __D__   E    F   _G_  _H_  _I_  _J_  _K__  _L__  
 10   15:00  17:00                                2:00  0:00 (OK) 
 11   15:00  18:30                                3:00  
 12   15:00 18:30                3:30
 13  14:00 17:00                3:00    (OK)
14    14:00  18:00                                4:00
15    14:00  18:30                                4:30
 
もう一度 よろしくお願いします。     (もも)

 L列全てに数式を入れてください。 (半平太)

半平太さま 
またもや 私の計算式入力ミスでした。
本当にもうしわけありません。
なんと言っていいやら・・・・・
これで、完璧に仕上がりました。
ながながお付き合い 本当にありがとうございました。(もも)
                            

半平太さま
お礼を申し上げて、なんですが、教えていただいた関数の意味を解説していただけたら?と思いました。
自分でも、理解できたらとおもいまして・・(もも)

 まず、L4からです。(残業時間を先に出しておけば、K4は全時間からそれを引けばいいので楽です)

 L4セル =IF(COUNT(C4:D4)<2,"",MAX(0,MAX(0,D4-"17:00")+MAX(0,MIN("13:00",D4) - MAX("12:00",C4))-E4))

 (1)残業の式の骨格は→ 退勤時 - "17:00"  です。
    でも早帰りされたら、マイナスになっちゃいます。
    そこで、0より小さくならないように → MAX(0,D4-"17:00") とします。

 (2)昼労働も残業なので、それも別に計算する必要があります。
   昼労働時間の算出式の骨格は、1時間 - 昼休時間 つまり "1:00"-E4 です。

    でも、12:00から13:00に在席していなければ、「1:00」はあり得ないですし、E4の入力もないハズです。
   そこで、昼に在席した時間を調べ、その時間からE4を差し引く方針とします。

    昼に在席した時間は、
          (退勤時刻と13:00のどちらか早い時刻) - (出勤時刻と12:00のどちらか遅い時刻)
      で算出できます。ただ、これも午後出勤だとマイナスになるので、
    0より小さくならないようにします → MAX(0,MIN("13:00",D4) - MAX("12:00",C4))

       以上で求めた在席昼時間から昼休(E4)を引けば、昼残業が出ます。
         MAX(0,MIN("13:00",D4) - MAX("12:00",C4))-E4  
    
 (3) 総残業時間は、上述 (1)+(2) なので、
     MAX(0,MAX(0,D4-"17:00")+MAX(0,MIN("13:00",D4) - MAX("12:00",C4))-E4)

   ※ ここでまた、Max(0,・・・ としているのは、
       計算誤差で微妙にマイナスになった時に対応するためです(=小数誤差対応と云ってます)

 (4) COUNT(C4:D4)<2,"",・・・ ←この部分は、出退勤時刻が2つとも入力されない間は空白を表示する為のものです。

 (5)普通時間は、[全拘束時間(退-出)]-[昼休み]-[残業時間]になりますので、→ MAX(0,D4-C4-E4-L4))

  (半平太)

ありがとうございました。
すばやい回答で、恐縮します。
とても、わかりやすい説明でたすかりました。(もも)

 半平太さん
 この前は ありがとうございました。
 もう一度 教えていただけないでしょうか?
 昨日の現場で
 7:00〜19:00までの勤務がありました。
 計算式では 普通勤務に8:30 残業に2:30となりました。
 6:00から8:00までは 残業時間とみなします。
 この間の時間出勤が残業時間に入力されることは、可能でしょうか?   (もも)

 この上だけ整形済み
 [テキスト整形のルール]に、
 行頭を半角スペースで始めると書き込みの改行位置が反映されます。
           と書かれています。
 (上だけ整形済み)


 ようやく、「早出」に関係する話が出てきましたね^^

 1.そうなると、「深夜」の話もこの後に出てくるのでしょうか?
   また、「夜から出社」の人の話は、その次ですか?
   そろそろ、複雑な例を「漏れなく」挙げて頂けませんか?

   ※ いままでのやり方の延長線で出来れば、あまり問題はないのでしょうが、
      根本的にやり方を変えた方が良いと云うことになると、
     それまでやったことが全く無駄になりますので、
     ここら辺で、最終解決の見通しを立てたい気がします。

   それとも今回の「早出」さえ分かれば、最終解決ですか?

 2.
 >7:00〜19:00までの勤務がありました。
 > 計算式では 普通勤務に8:30 残業に2:30となりました。
 昼休憩を1:00とすると、私の計算では「普通9:00、残業2:00」と出るハズなのですが、
 何か情報が不足していませんか?
 また、この人の勤務時間の「正解」はなんでしょうか?

 >6:00から8:00までは 残業時間とみなします。
 >この間の時間出勤が残業時間に入力されることは、可能でしょうか?
  以前に、昼の残業を計算しましたが、その在席昼時間の計算とやり方は同じです。
  異なる点は、基準となる時間が「12:00,13:00」から「6:00,8:00」に変更されることです。

  (半平太)

すみません。
以前 深夜の件も含めて質問したのですが、
私の説明不足で理解できません。と、コメントが多数の方からありました。ですので
あきらめていましたら、<らすかる>なんて方の作業時間の質問と似ていましたので
それで、なんとか使わせていただいてましたが、電卓片手に入力していたものですから、
これでは意味ないと思い再度質問させていただきました。
  1 出     退     昼    深夜休  早出  普通   残業   深夜   普通  残業  
  2                             6:00  8:00   17:00  22:00              
  3                               8:00  17:00  22:00  6:00               
 4 7:30  19:00 1:00    30   540  120    8:00  2:30 こうなってほしいす
                     (もも)


 GHIJ列は作業列なのですか? だったら楽勝 ^^

 (1) G4セル =IF(COUNT($C4:$D4)<2,"",ROUND(MAX(0,MIN(G$3,$D4)-MAX(G$2,$C4))*1440,0))
   G4セルの数式をJ4までコピー

 (2) K4セル =IF(L4="","",MAX(0,D4-C4-E4-F4-L4))

 (3) L4セル =IF(COUNT(C4:D4)<2,"",MAX(0,(G4+I4+J4)/1440+MAX(0,MIN("13:00",D4) - MAX("12:00",C4))-E4-F4))

 <結果図>
 行  __C__ __D__  E _ _ F __ _G__ __H__ __I__ __J__ _K__ _L__ 
  1  出    退    昼   深夜休 早出 普通  残業  深夜  普通 残業 
  2                          6:00 8:00  17:00 22:00           
  3                          8:00 17:00 22:00 30:00          
  4  8:00  17:00 1:00           0   540     0     0 8:00 0:00 
  5  8:00  15:00 0:15           0   420     0     0 6:00 0:45 
  6  8:00  18:00 0:15           0   540    60     0 8:00 1:45 
  7  8:00  12:00                0   240     0     0 4:00 0:00 
  8  15:00 18:30                0   120    90     0 2:00 1:30 
  9  7:30  19:00 1:00          30   540   120     0 8:00 2:30 
 10  6:30  25:00 0:15 0:45     90   540   300   180 8:00 9:30 

 (半平太)

半平太様
だんだんに、出し惜しみしているようですみません。
  __C__ __D__  E _ _ F __ _G__ __H__ __I__ __J__ _K__ _L__   M
  1  出    退    昼   深夜休 早出 普通  残業  深夜  普通 残業  深夜勤務
  2                          6:00 8:00  17:00 22:00           
  3                          8:00 17:00 22:00 30:00          
  4  8:00  17:00 1:00           0   540     0     0 8:00 0:00  ここに深夜労働時間が入力したいです
  5  8:00  15:00 0:15           0   420     0     0 6:00 0:45  ↓
  6  8:00  18:00 0:15           0   540    60     0 8:00 1:45  ↓
  7  8:00  12:00                0   240     0     0 4:00 0:00  ↓
  8  15:00 18:30                0   120    90     0 2:00 1:30  ↓
  9  7:30  19:00 1:00          30   540   120     0 8:00 2:30 
 10  6:30  25:00 0:15 0:45     90   540   300   180 8:00 6:30  3:00 このようにしたいのです。細かくて」すみません。
                          (もも)

 >出し惜しみしているようですみません。 
 1. 前レスでも書きましたが、もう一度書きます。
    「そろそろ、複雑な例を「漏れなく」挙げて頂けませんか?」

 2.深夜勤務が「3:00」とすると、「深夜休」を引かないで出すと云うことになりますが、それでいいですか?
   それでよければ
  (1) L4セル =IF(COUNT(C4:D4)<2,"",MAX(0,(G4+I4)/1440+MAX(0,MIN("13:00",D4) - MAX("12:00",C4))-E4-F4))
  (2) M4セル =J4/1440

 ※ もし「深夜休」を引くのであれば
  (1) L4セル =IF(COUNT(C4:D4)<2,"",MAX(0,(G4+I4)/1440+MAX(0,MIN("13:00",D4) - MAX("12:00",C4))-E4))
  (2) M4セル =MAX(0,J4/1440-F4)

 行  _C__ __D__  E _ _ F __ _G__ __H__ __I__ __J__ __K__ _L__ ___M____ 
  1  出   退    昼   深夜休 早出 普通  残業  深夜  普通  残業 深夜勤務 
  2                         6:00 8:00  17:00 22:00                     
  3                         8:00 17:00 22:00 30:00                     
  4  6:30 25:00 0:15 0:45     90   540   300   180 10:15 7:15 2:15     

 (半平太)

(半平太)様、本当にもうしわけありません。
ちゃんとした、勤務時間があるわけでは、ないので、小出ししているようで
すみません。
複雑な例を挙げないと、せっかく数式を考えてくださったものが、また始めからってことですよね。
本当にすみません。
これで、最終だとおもいます。
深夜休憩はひかないので 2.を使わせていただきました。
それで ひとつ問題が発生したのですが

  _C__ __D__  E _ _ F __ _G__ __H__ __I__ __J__ __K__ _L__ ___M____ 
  1  出   退    昼   深夜休 早出 普通  残業  深夜  普通  残業 深夜勤務 
  2                         6:00 8:00  17:00 22:00                     
  3                         8:00 17:00 22:00 30:00                     
  4  6:30 25:00 0:15 0:45     90   540   300   180 10:15 7:15 2:15  
 5 20:00 30:00                 8:00 2:00 8:00
 6 17:00 30:00                 8:00 5:00
 7 18:00 30:00                 8:00 4:00 
  *普通勤務に時間がでてしまうと、労務費が計算されてしまうのですが、
 消去するしかないのでしょうか?


 >普通勤務に時間がでてしまうと、労務費が計算されてしまうのですが、消去するしかないのでしょうか?
 いままでに「労務費の計算」の話が出ていましたっけ?

 その式はどんなモノですか?  (半平太)

 すみません。
 ・・・・N   O    P    Q
     普通  残業  深夜
 N=ROUND(K4*24*$V$6→(日当),0)
 o=ROUND(L4*24*4V$7 (残業代),0)
 P=ROUND(M4*24*$V$8 (深夜),0)
 となっております。
 わかりますか?
 下手な説明ですみません。

 済みません。私の間違いです。m(__)m

 深夜勤務の処理が増えた時、「残業」だけ変更すればいいと早合点してしまいました。
 「普通勤務」にも影響がありましたね (^^ゞ

 K4セル =IF(L4="","",MAX(0,D4-C4-E4-F4-L4-J4)) へ変更してください。

 行  __C__ __D__  E _ _ F __ _G__ __H__ __I__ __J__ _K__ _L__ ___M____
  1  出    退    昼   深夜休 早出 普通  残業  深夜  普通 残業 深夜勤務
  2                          6:00 8:00  17:00 22:00                   
  3                          8:00 17:00 22:00 30:00                   
  4  6:30  25:00 0:15 0:45     90   540   300   180 0:00 6:30 3:00    
  5  20:00 30:00                0     0   120   480 0:00 2:00 8:00    
  6  17:00 30:00                0     0   300   480 0:00 5:00 8:00    
  7  18:00 30:00                0     0   240   480 0:00 4:00 8:00    

 (半平太)

 >この上だけ整形済み
 >[テキスト整形のルール]に、
 >行頭を半角スペースで始めると書き込みの改行位置が反映されます。
 >          と書かれています。

 いつもどなたかが整形されているようなので。
 (ナナシ)

ナナシさま、申し訳ありません。
どのようにするのか、教えていらだけますか?
(もも)


半平太さま
ながながお付き合いいただきましてありがとうございました。
完成です。
意味が通じなくて、すみませんでした。  (もも)

 「初めての方へ」の(5)に下記のようにあります。
  ↓↓↓↓↓↓↓
 空行から空行までがひとつの段落として整形され途中の改行は無視されます。 
 行頭を半角スペースで始めると書き込みの改行位置が反映されます。
 (ナナシ)


今、(#VALUE!回避)とある質問を みたのですが、さっぱりわかりません 
  __C__ __D__  E _ _ F __ _G__ __H__ __I__ __J__ _K__ _L__ ___M____
  1  出    退    昼   深夜休 早出 普通  残業  深夜  普通 残業 深夜勤務
  2                          6:00 8:00  17:00 22:00                   
  3                          8:00 17:00 22:00 30:00                   
  4  6:30  25:00 0:15 0:45     90   540   300   180 0:00 6:30 3:00    
  5  20:00 30:00                0     0   120   480 0:00 2:00 8:00    
  6  17:00 30:00                0     0   300   480 0:00 5:00 8:00    
  7  18:00 30:00                0     0   240   480 0:00 4:00 8:00    
C、Dに時間を入力しないと深夜勤務から→(#VALUE!)がでてしまいます。 方法があれば教えていただけませんか (もも)

 (1) M4セル =IF(COUNT(C4:D4)<2,"",J4/1440)
 (2) N4セル =IF(COUNT(C4:D4)<2,"",ROUND(K4*24*$V$5,0))
 (3) O4セル =IF(COUNT(C4:D4)<2,"",ROUND(L4*24*$V$6,0))
 (4) P4セル =IF(COUNT(C4:D4)<2,"",ROUND(M4*24*$V$7,0))

 (半平太)

コメント返信:

[ 一覧(最新更新順) ]


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