[[20150409133558]] 『タイムカードの休憩時間控除について』(つぼ) ページの最後に飛ぶ

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

 

『タイムカードの休憩時間控除について』(つぼ)

エクセルの数式で休憩時間を控除できるか教えてください。

働いているお店で、勤怠の担当になったので手計算ではなく、
エクセルで自動計算ができればと思い、
下記のように作成中です。

  A  B   C   D  E  F  G 
1    出勤 退勤  A  B  C 合計

2 4/1 8:00 14:00 3.0 3.0     6.0
 
3 4/2 8:00 17:00 3.0 6.0     9.0

勤務時間によって時給が違うので、働いた時間を
A(5:00-11:00),B(11:00-22:00),C(23:00-5:00)の
3ブロックに分けて計算する必要があるのですが、
Gの合計が6時間以上超えた場合、一番時給が低いB時間帯から
休憩1時間を控除したいのです。
(上でいうと、4/2のG時間で判断、Bの時間を6.0→5.0になるようにしたいです。)

列や行を増やすことも可能ですので、違うやり方や、数式に詳しい方ご教授ください。

< 使用 Excel:Excel2013、使用 OS:WindowsXP >


 回答じゃあないんだけど、
 1)BとC勤務の間、22時〜23時は仕事ないのかな?
 2)6時間以上ではなく、6時間を超えた場合、でいいんだよね(6時間は含まない)
 3)6時間を超えて8時間以下なら、45分が最低休憩時間だけど、就業規則が1時間になっているのかな?
 4)8時間を超えた場合はどうすればいいですか?
 5)C→A勤務の場合はどっちを優先させて休憩扱いにしますか?
 6)Bが仮に1時間未満だった場合、さかのぼってA勤務・またはC勤務から控除しますか?

(稲葉) 2015/04/09(木) 14:36


 あとそうだ、8:00〜14:30の場合、5.5時間になるけどそれでもいいのかな?
(稲葉) 2015/04/09(木) 14:42

稲葉様

1)すみません!入力間違いました。Cは22時〜5時です。
2)6時間は含まず、超えた場合です。
3)店の単位?が0.5時間になっているので、1時間休憩になっています。
4)8時間を超えた場合は、休憩なしで残業がほとんどなので、1時間休憩のみでOKです。
5)C→A勤務の場合は、Aを優先で休憩扱いにしたいです。
6)Cが1時間未満の場合は、Aから控除したいです。
また、8:00〜14:30の場合、5.5時間になるようにしていただけると助かります。

言葉足りずにすみません。よろしくお願いいたします。
(つぼ) 2015/04/09(木) 17:25


 聞いておいてあれだけど、時間の計算苦手なので、エキスパートさんの回答お待ちください!!!

(稲葉) 2015/04/09(木) 18:16


文章校正ありがとうございました。
(つぼ) 2015/04/09(木) 18:20

時間の入力は 8:07 とかの中途半端な時間になるのかならないのかによって
どうするか変わってくるのでは

タイムカードならば実際は中途半端な時間だと思いますが
(あ) 2015/04/09(木) 19:32


タイムカードはタイムカードとして残るので、あくまで時間計算用です。
うちの店舗は、0.5時間単位なので、中途半端な時間ではなく、
8:07であれば8:30と入力していきます。

これだと数式は組めますか?
(つぼ) 2015/04/10(金) 08:44


 コメント付かないねぇ・・・
 最初に回答したから責任持ちたいけど、空いた時間に考えてたけど、
 やっぱり自信ないっす。

 とりあえず、新しいブック作って、下記を実行してください。
 新しいシートに、こちらで作った表と数式が入力されるようになっています。
    Sub mkData()
        With Sheets.Add
            .Range("C1:G2").Value = [{"sTime","5:00","11:00","22:00","0:00";"eTime","11:00","22:00","24:00","5:00"}]
            .Range("A3:O3").Value = [{"日付","出勤","退勤","T1","T2","T3","T4","A´","B´","C´","休憩","A","B","C","備考"}]
            .Range("A4:C8").Value = [{"04/01","5:30","13:00";"04/02","20:00","3:30";"04/03","23:30","7:00";"04/04","10:30","22:30";"04/05","21:30","5:30"}]
            .Range("D4:G8").Formula = "=IF(COUNT($B4:$C4)<2,"""",ROUND(MAX(IF($C4>$B4,MIN($C4,D$2)-MAX($B4,D$1),MAX(D$2-MAX($B4,D$1),0)+MAX(MIN(MIN($C4,D$2)-D$1),0)),0)*24,1))"
            .Range("H4:I8").Formula = "=D4"
            .Range("J4:J8").Formula = "=SUM(F4:G4)"
            .Range("K4:K8").Formula = "=IF(SUM(D4:G4)>6,1,0)"
            .Range("L4:L8").Formula = "=IFERROR(MAX(H4-(K4-(I4-M4)),0),0)"
            .Range("M4:M8").Formula = "=IFERROR(MAX(I4-K4,0),0)"
            .Range("N4:N8").Formula = "=MAX(J4-(1-(SUM(H4:I4)-SUM(L4:M4))),0)"
            .Range("O4:O8").Value = [{"A-B";"B-C";"C-A";"A-C";"B-A"}]
        End With
    End Sub

(稲葉) 2015/04/13(月) 10:52


稲葉様

ありがとうございます!

しばらくコメントがなく、だめだと思い、サイト見てませんでした。

返信遅くなりすみません。

ちなみにこれはマクロですか?
(つぼ) 2015/04/15(水) 09:44


 マクロです。
 一度実行すれば、計算式と表が作成されますので
 あとは不要になります。
(稲葉) 2015/04/15(水) 12:49

稲葉様

ありがとうございます!

貴重な時間と知識を私の質問のために使っていただいて
何と御礼を伝えていいのやら・・・

私自身理解ができていないのですが
壊さないように使わせていただきます。

ありがとうございました。

(つぼ) 2015/04/16(木) 14:11


 いや、いろんなパターン試して、間違いがないか確認してください。
 網羅性検証の才能のなさには自信があります。
(稲葉) 2015/04/16(木) 14:16

コメント返信:

[ 一覧(最新更新順) ]


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