• ベストアンサー

深夜残業時間を求めたいのです。

こんにちは。 Access2000で、勤怠管理システムを作成しています。 マスタに、深夜勤務対象時間を持っており(例えば(1)22:00~(2)05:00というような感じで、修正可能です。項目は日付/時刻型で、(1)と(2)のフィールドは分かれています)、残業時間の管理で、残業開始時刻と、残業終了時刻を入力すると残業時間を自動で計算する仕組みなのですが、その際に、深夜勤務対象時間の時間も計算して、自動で表示させたいのです。今のところ、残業時間を求めるロジックはできていますが、深夜勤務の対象となる時間を求めることができません。0時を超えるときの処理など、思ったようにできなくて… 分かりにくいかとは思いますが、よい方法をご存知の方、回答よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

ちょっと難しい問題ですが、面白そうなので、ユーザー定義関数で対処してみました。 > マスタに、深夜勤務対象時間を持っており(例えば(1)22:00~(2)05:00というような感 > じで、修正可能です。 ということですので、説明上このテーブル名を「深夜時間帯設定TBL」とします。 さらにフィールド名を「深夜始時間」と「深夜終時間」として、先頭レコードに それぞれの時間が、設定されているものとします。 「標準モジュール」に下記コードを貼り付けます。 使い方は、ShinyaH(時間始め, 時間終り) で 「深夜時間帯設定TBL」を参照し、 指定した時間帯に含まれる「深夜勤務時間」を返します。 例えば、クエリでこの関数を使用する場合で、質問内容のように残業時間の中に含まれる テーブルで指定した「深夜勤務時間」を算出する場合は、フィールドに 深夜勤務時間:ShinyaH([残業開始時刻],[残業終了時刻]) というように計算式を設定します。 Function ShinyaH(ZanStart, ZanEnd) As Variant Dim ShinyaStartH As Date Dim ShinyaEndH As Date Dim ZanStartH As Date Dim ZanEndH As Date Dim ValShinya As Single If IsDate(ZanStart) = False Or IsDate(ZanEnd) = False Then   ShinyaH = vbNullString   Exit Function End If ZanStartH = TimeValue(ZanStart) ZanEndH = TimeValue(ZanEnd) ShinyaStartH = DFirst("深夜始時間", "深夜時間帯設定TBL") ShinyaEndH = DFirst("深夜終時間", "深夜時間帯設定TBL") If ZanStartH < ZanEndH Then '  日を跨がない勤務   If ZanStartH >= ShinyaStartH Then     ValShinya = (ZanEndH - ZanStartH) * 24   ElseIf ZanStartH >= ShinyaEndH And ZanEndH > ShinyaStartH Then     ValShinya = (ZanEndH - ShinyaStartH) * 24   End If   If ZanStartH < ShinyaEndH Then ' 早朝勤務     If ZanEndH > ShinyaStartH Then       ValShinya = (ShinyaEndH - ZanStartH + ZanEndH - ShinyaStartH) * 24     ElseIf ZanEndH <= ShinyaStartH And ZanEndH > ShinyaEndH Then       ValShinya = (ShinyaEndH - ZanStartH) * 24     ElseIf ZanEndH <= ShinyaEndH Then       ValShinya = (ZanEndH - ZanStartH) * 24     End If   End If ElseIf ZanStartH > ZanEndH Then '  日を跨ぐ勤務   If ZanStartH >= ShinyaStartH And ZanEndH <= ShinyaEndH Then     ValShinya = (ZanEndH + 1 - ZanStartH) * 24   ElseIf ZanStartH >= ShinyaStartH And ZanEndH > ShinyaEndH Then     ValShinya = (ShinyaEndH + 1 - ZanStartH) * 24   ElseIf ZanStartH < ShinyaStartH And ZanEnd <= ShinyaEndH Then     ValShinya = (ZanEndH + 1 - ShinyaStartH) * 24   ElseIf ZanStartH < ShinyaStartH And ZanEndH >= ShinyaEndH Then     ValShinya = (ShinyaEndH + 1 - ShinyaStartH) * 24   End If Else   ValShinya = 0 End If ShinyaH = Format(ValShinya / 24, "h:nn") End Function

satie
質問者

お礼

こんにちは。ユーザー定義関数を使うなんて、考え付きませんでした。わざわざ書いてくださってありがとうございます。試行錯誤の結果、残業時間から普通時間と深夜時間を出すことができました。回答どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • ka3
  • ベストアンサー率18% (36/194)
回答No.1

 22時から24時までと0時から5時に分けて考えて頂き、式「終了時刻 - 開始時刻」の結果が負になる場合には、24を加えると結果を求められます。  =IF(終了時刻-開始時刻<0,終了時刻-開始時刻+24,終了時刻-開始時刻)

satie
質問者

お礼

こんにちは。上記の方法は既に、トータルの時間を求めるときに使用しています。試行錯誤の結果、残業時間から普通時間と深夜時間を出すことができました。回答どうもありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 残業時間の計算方法

    残業時間の計算方法についてご質問です。 月給制にて『16:30~24:00』という所定労働時間があったとします。 ※休憩時間は無視し、又22:00~の深夜手当てはすで基本給に含まれて いるものとします。 定時の24:00以降残業をした場合、24:01~は深夜手当ての対象となるのは分かるのですが、例えば13:00~早出出勤し、そのまま通常勤務に付いた場合は、22:00~も別途深夜手当ての対象になるのでしょうか? 言い換えれば、早出して更に残業した場合の時間の計算方法は、(1)早出は早出のみ、残業は残業のみでそれぞれ別で計算する、のか(2)早出(出勤)した時刻を起点とし、そこから超えた時間を時間外とする、のかどちらですか?分かりにくい文章でしたらすみません。 よろしくお願いします。

  • 深夜残業時間の算出とIFEROORについて

    勤怠管理表から以下の2つを求める関数を教えてください。 <勤怠管理表フォーマット> 出勤時間/退勤時間/休憩時間/実働時間/深夜残業時間 1.深夜残業時間について 出勤時間/退勤時間/休憩時間/実働時間/深夜残業時間 10:00    23:25    1:00     12:25    1:25 単純に22:00時以降の時間だけを求めたいと思っています。 2.実働時間のIFEROORについて 休暇や欠勤で出勤/退勤の項目が未入力の場合は、 実働時間に「-」を入れたいと思っています。 ただ、通常は、=退勤時間-出勤時間-TIME(1,0,0)の関数が入っていますが 組合せ方が分かりません。 以上、2つのご回答をお願いします。

  • 休日深夜残業の時間帯は?

    お世話になります。 休日深夜残業の時間帯を教えてください。 9時~18時まで通常勤務時間帯で、それ以降は残業時間となります。 隔週週休2日で土曜日休み、そして日曜日は毎週休みです。 この場合、休みでない土曜日に出勤し、18時から残業し午前1時まで残業した場合 残業割り増しの対象は 18時から22時まで通常残業 22時から0時までの2時間が深夜残業 0時から1時までが休日深夜残業となるのでしょうか? ご存知の方ご教授ください。

  • エクセル2010 深夜残業時間の計算

    出社・退社の時間から、残業、深夜残業など、 残業時間を算出する数式を作成していますがどうにもうまく出来ません。 残業となる時間の切り分けは、平日は以下のようになっています。、  基本時間→8:30~17:15  残業→5:00~8:30 と17:15~22:00  深夜残業→22:00~翌朝5:00  休憩時間→0:45(C1) 基本勤務時間→8:00(B1) 例えば平日、朝6:00出社→23:00退社であれば、 早朝残業が2:30、通常残業が4:45、計7:15です。深夜残業が1:00となります。 F欄に時間外、 G欄に深夜残業としています。 現状は時間外を出すのに  =SUM(E5-D5)-$B$1-$C$1-G5 と単純にしてます。(G5は手入力) これを自動で入力できたらと考えています。 5:00前に出勤することはほとんどありませんが、22:00を超えることはあります。 ただし、24:00を超えると翌日計算になります。 過去欄を参考にしようにも理解できなく困っています。 http://okwave.jp/qa/q8147465.html よろしくお願いいたします。

  • 深夜勤務時間の求め方を教えてください。

    深夜勤務時間の求め方を教えてください。 Office2003を使っています。 エクセルで出勤表を作っているのですが、深夜勤務時間数の算出がうまくできません。 超勤時間は、17:30~22:00 深夜時間は、22:00~29:00 となっています。 セルK5に退社時刻を入力し、 その際に、 セルO5に、超勤時間数、 セルP5に、深夜時間数が計算されるように設定したいのです。 例えば、残業時間が17:30~30:00までの場合、 セルP5には、“7:00” と入るようにしたいのですが、どうしたら良いでしょうか。 よろしくお願いします。

  • みなし残業、深夜残業の扱いについて

    残業代について質問があるのですが、 うちの会社はみなし残業が摘要されていまして、 月30時間までの残業はみなし残業として扱われます。 そこで質問なのですが、深夜残業をした場合はどのように 扱われるべきなのでしょうか? うちの会社の場合は、月40時間残業したとして、その内の 30時間が深夜残業だった場合、みなし残業としてまず 深夜残業分の30時間分がなかったことにされ、残りの 10時間分残業代が出ることになっています。 つまり深夜残業分が優先してみなし残業として計算されています。 この計算の方法は正しいのでしょうか? 深夜残業は割り増しされるはずなのに納得いきません。

  • 給料の計算 残業 深夜

    給料の計算方法を教えて下さい。 8時間通常勤務・1時間休憩・残業6時間してそのうち1時間が深夜22時以降の勤務です。 もし時給が1000円だとしたら 通常勤務8時間(8000円) 残業勤務6時間が1.25倍(7500円) 残業中の深夜勤務1時間は通常時給の1000円に1.25倍した(250円)がプラスされるのでしょうか? それとも残業中の1250円に1.25倍した(312.5円)がプラスされるのですか?

  • 残業計算(エクセル)

    残業の計算を関数を使って計算したいのですがうまくいきません。 残業開始は17:20~と決まっており、2時間毎に15分の休憩が必要で 時間単位での管理で最小は0.25時間となり、満たない場合は切り上げとなります。 また、22:00以降は深夜勤務となります。 例えば17:20~23:00の場合は、残業5.25時間、深夜勤務1時間となります。 (列としては、開始時間17:20、終了時間、残業、深夜勤務の4列です) また、有給休暇とかも記載するのでIF式は極力少なく(5個位が限度)したい です。どなたかすっきりした形のものを提案してくださるとありがたいです。

  • 深夜の残業について

    私は今、一日5時間 週25時間のアルバイトをしています。 会社のほうから一日8時間で週40時間でパートをしてくれないかといわれ現在は8時間労働で勤務しています。 以前は17時から22時まで時給900円でした。 8時間労働になって17時から深夜2時までで休憩時間は1時間あります。 深夜時間の22時から2時までは深夜時間の手当てが付いています。 今日、同じ仕事をしている人が言っていたのですがここは深夜の残業時間の 割り増しが付かないから違法だといって職場の管理者と口論になっていました。 その会社は一応、名前が知られている上場企業なのでそのへんはきちんとしていると思うのですが 気になっています。 時給900円の人が深夜時間に残業した場合の1時間あたりの時間給を教えてください。

  • 固定残業と深夜勤務手当

    こんにち。 私は、ある会社に勤めています(正社員)。 今月より勤務時間が22時から翌朝の7時までと変わり、それに伴う深夜勤務手当について会社に質問したところ、次のような回答が返ってきました。疑問に思いますので、どなたか詳しい方がいらっしゃいましたらご指導ください。 内容: 深夜勤務時間とされている22時~5時までの5時間の勤務時間を0.25割増して算出する。(→6.25時間) 以上...正式に申しますと、残業時間として換算されます。 背景としては、会社が固定残業制で30時間までは固定残業代として支給されており、30時間を越えた残業代のみ支給されます。もちろん超過した残業時間の勤務時間帯が深夜であれば深夜残業代として割増した金額が支払われます。 しかし!私の場合は残業はほとんどしません。 そうすと、深夜勤務の時間を6.25時間と計上して(結局一日あたり1.25時間割増した計算)頂いても、最終的に22日勤務したとして1.25*22=27.5時間。 30時間に残業時間が満たない為、手当は何も支給されず深夜勤務はなかったことのようになりかねません。 これって、正当なのでしょうか? 残業時間に換算するのではなく、別途残業単価に0.25上乗せされる金額が支給されるのが、正しくはないですか? 違法ではないですか? よろしくお願いいたします。

Wi-Fiが繋がらない
このQ&Aのポイント
  • MFC-J1605DNでWi-Fiが繋がらず印刷できません。iPhone12を使用しており、無線LAN接続しています。
  • Wi-Fiルーターの機種名はWSR-3200AX4S-WHです。関連するソフト・アプリはありません。
  • 電話回線の種類は特にありません。
回答を見る

専門家に質問してみよう