advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 655 for 時間の計算 (0.002 sec.)
[[20050526175708]]
#score: 5673
@digest: 278f9b4bbd31d53bc10b162f9a19efee
@id: 14342
@mdate: 2005-05-27T09:22:55Z
@size: 5607
@type: text/plain
#keywords: 帯( (25838), 間<= (25088), 各時 (15138), 算-- (14841), 刻, (14742), 憩時 (13996), 間( (13242), 休憩 (12770), 間帯 (10436), 稼働 (10029), 間= (9870), 時間 (8031), 上勤 (7757), 働時 (7268), 間区 (7264), 刻= (7145), 刻) (7016), 間勤 (6257), 務時 (6113), 退時 (5718), 1440 (5491), 間/ (5468), numberformat (5115), 時刻 (4654), 勤務 (4450), 了時 (4306), 始時 (4162), 出退 (3740), 間休 (3707), 間1 (3653), 勤時 (3519), ・休 (3372)
『勤務時間・休憩時間』(えふ)
出退時間はそれぞれですが、休憩時間は決まってます。 1日の勤務時間(D)と休憩時間(C)が計算できる方法を教えてください。 また、休憩時間が2パターンあるので、それぞれの場合の計算方法をお願いします。 ・休憩時間 @出退時間に「8:00〜9:00 12:00〜13:00 18:00〜19:00 23:00〜24:00」が 含まれる場合。 A勤務時間 休憩時間 0.0〜6.0 0.0 6.5〜12.0 1.0 12.5〜18.0 2.0 18.5〜24.0 3.0 Aのパターンの場合、6.5時間以上勤務時間を越えたら休憩を1時間とりなさいという意味です。 ・出勤退勤の時間は30分単位とし、休憩時間と勤務時間は少数点表示 A B C D 出勤時間 退勤時間 休憩時間 勤務時間 1(月) 9:00 18:00 1.0 8.0 3(水) 9:00 23:30 2.5 14.0 2(火) 8:30 20:00 2.5 9.0 4(木) 19:00 4:00 1.0 8.0 翌日の4時は28:00と表示するべきでしょうか? ---- (2)の場合の計算ですが、 >6.5時間以上勤務時間を越えたら休憩を1時間とりなさいという意味です。 退勤時刻-出勤時刻が6.5時間以上の場合、休憩を1時間計上すると読みました。 休憩時間D2:=LOOKUP(ROUND(C2*1440,0)-ROUND(B2*1440,0),{0,0;390,1;750,2;1110,3}) 勤務時間E2:=(ROUND(C2*1440,0)-ROUND(B2*1440,0))/60-D2 とすると、下のようになりました。 # (1)と(2)の使い分けの規則?が分からない (Hatch) A B C D E 出勤時間 退勤時間 休憩時間 勤務時間 1(月) 9:00 18:00 1.0 8.0 3(水) 9:00 23:30 2.0 12.5 2(火) 8:30 20:00 1.0 10.5 4(木) 19:00 28:00 1.0 8.0 ---- (1)の休憩が基本となります。 平日勤務の場合は、予め(1)の休憩が時間で設定されてます。 (2)の場合は休日出勤した場合の休憩時間になります。 よって、同じ時間勤務しても、平日か休日かによって 休憩時間、勤務時間が変わってきます。 (最初に表示したのは(1)のパターンでした) ---- 休日出勤の判定はどこで行うのでしょうか? (Hatch) ---- 説明不足ですみません。 月〜金曜日は平日、土曜、日曜は休日出勤となります。 1ヶ月単位で管理、集計するので式が混在した表になります。(えふ) ---- マクロでの処理を書いてみました。 時間区分というシートに時間帯を書くようにしています。 (これが邪魔ならマクロの中に記述することになります) テスト結果は下のようになっています。 サンプルは↓に f_01.xls としてUpしておきます。 (Hatch) http://www.geocities.jp/hatch4700/index.html 日にち 開始時刻 終了時刻 休憩時間 勤務時間 1(月) 9:00 18:00 1.0 8.0 3(水) 9:00 23:30 2.5 12.0 2(火) 8:30 20:00 2.5 9.0 4(木) 19:00 28:00 1.0 8.0 6(土) 9:00 18:00 1.0 8.0 7(日) 9:00 23:30 2.5 12.0 13(土) 8:30 20:00 1.0 10.5 14(日) 19:00 28:00 1.0 8.0 Private Sub Worksheet_Change(ByVal Target As Range) Dim 時間帯 As Variant Dim i As Integer, j As Integer Dim 開始時刻 As Integer, 終了時刻 As Integer Dim 稼働時間 As Integer, 休憩時間 As Integer Dim 時間(9) As Integer Dim 曜日 As Integer '-----計算をしないでVBAを抜ける条件----- If Target.Count <> 1 Then Exit Sub If Target.Column < 2 Or Target.Column > 3 Then Exit Sub If Target.Row = 1 Then Exit Sub If (Target.Column = 2 Or Target.Column = 3) And Target = "" Then Cells(Target.Row, 4) = "" Cells(Target.Row, 5) = "" Exit Sub End If If Target.Column = 2 And Target.Offset(, 1) = "" Then Exit Sub If Target.Column = 3 And Target.Offset(, -1) = "" Then Exit Sub '-----各時間帯と開始/終了時間の読み込み&分換算----- 時間帯 = Worksheets("時間区分").Range("B1:C9").Value For i = 1 To 9 For j = 1 To 2 時間帯(i, j) = Round(時間帯(i, j) * 1440, 0) Next j Next i 開始時刻 = Round(Cells(Target.Row, 2).Value * 1440, 0) 終了時刻 = Round(Cells(Target.Row, 3).Value * 1440, 0) '-----各時間帯の在席時間を計算----- For i = 1 To 9 If 開始時刻 >= 時間帯(i, 2) Or 終了時刻 <= 時間帯(i, 1) Then 時間(i) = 0 Else 時間(i) = Application.WorksheetFunction.Min(終了時刻, 時間帯(i, 2)) - _ Application.WorksheetFunction.Max(開始時刻, 時間帯(i, 1)) End If Next i '-----稼働時間と休憩時間の計算----- 曜日 = Weekday(Cells(Target.Row, 1).Value) Select Case 曜日 Case 1 Or 7 For i = 1 To 9 稼働時間 = 稼働時間 + 時間(i) Next i If 稼働時間 <= 360 Then 休憩時間 = 0 ElseIf 稼働時間 <= 720 Then 休憩時間 = 60 ElseIf 稼働時間 <= 1080 Then 休憩時間 = 120 ElseIf 稼働時間 <= 1440 Then 休憩時間 = 180 End If 稼働時間 = 稼働時間 - 休憩時間 Case Else 稼働時間 = 時間(1) + 時間(3) + 時間(5) + 時間(7) + 時間(9) 休憩時間 = 時間(2) + 時間(4) + 時間(6) + 時間(8) End Select Cells(Target.Row, 5).Value = 稼働時間 / 60 '1440 Cells(Target.Row, 5).NumberFormat = "0.0" 'Cells(Target.Row, 5).NumberFormat = "h:mm" Cells(Target.Row, 4).Value = 休憩時間 / 60 '1440 Cells(Target.Row, 4).NumberFormat = "0.0" 'Cells(Target.Row, 4).NumberFormat = "h:mm" End Sub ---- とっても恥ずかしいのですが、この計算の意味がわかりません。 最初の計算方法のような、比較的単純な方法はありませんか。 月〜金、土日(昨日のを参照します)それぞれの方法でかまいませんので・・・。 ---- 作業列を一杯使い、各時間帯別に勤務時間を求めて、後で合計する方法です。 # 複雑な計算式を考えずにすむので、ここでの回答に多用しています(^^;) 説明がしにくいので、サンプルを下に f_02.xls としてUpしておきます。 計算方法はVBAとほとんど同じで、 Min(終了時刻, 各時間帯の終了時刻) - Max(開始時刻, 各時間帯の開始時刻) です。(Hatch) http://www.geocities.jp/hatch4700/index.html ---- 分かりやすい表を作成して頂きありがとうございます。早速挑戦したいと思います。(えふ) ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/200505/20050526175708.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 96997 documents and 607820 words.

訪問者:カウンタValid HTML 4.01 Transitional