• ベストアンサー

勤務表の時間表示について

エクセルで勤務表を作成しており、 月日・区分・始業時間・就業時間・休憩時間・所定時間・普通残業・時間外・深夜残業・・・と項目があります。 所定時間には7:30がマックス表示するようにしてあり、それを超えた7:31~8:00を普通残業に、さらに8:01~深夜残業に反映するようにしたいんです。 所定時間の表示と深夜残業の表示は出来たんですが、普通残業の表示がうまくいきません。 どなたか教えてください。

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

  • ベストアンサー
  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.4

> D7:就業時間 これは終業時間でしょうか。 以下の式に置き換えてみてはどうでしょうか? F7:所定時間(7:30までしか表示しない) =IF(B7>0,"",IF(D7-C7-E7>=7.5/24,7.5/24,IF(C7="","",D7-C7-E7))) G7:普通残業(実働7:30を超え、8時間までの時間表示) =IF(D7-C7-E7>7.5/24,IF(D7-C7-E7-7.5/24>=0.5/24,0.5/24,D7-C7-E7-7.5/24),"") H7:時間外(実働8時間を超え、10時間までの時間表示) =IF(B7>0,"",IF(D7-C7-E7>8/24,IF(D7-C7-E7-8/24>=2/24,2/24,D7-C7-E7-8/24),"")) I7:深夜残業(実働10時間を超えた場合の時間を表示) =IF(B7>0,"",IF(D7-C7-E7>10/24,D7-C7-E7-10/24,""))     ※単純に実働10時間以降で計算しています。

megrain
質問者

お礼

ありがとうございます。 完璧です。 出来ました。 助かりました。

その他の回答 (4)

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.5

No.3です。ちょっと確認ですが‥ > H7:時間外(実働8時間を超え、10時間までの時間表示) > I7:深夜残業(実働10時間を超えた場合の時間を表示) どういう勤務体制になっているのかわかりませんが、極端な例で、始業 22:00、終業 23:00だと実働 1時間ですが、現状の式では深夜残業 1:00 になると思います。それでいいのでしょうか? 要するに、実働 10時間を超えなくても 22:00を超えた勤務は無条件で深夜残業になるのでしょうか、ということなのですが‥ 22:00を超えた勤務は深夜残業だとして、以下、No.3の補足説明です。 No.1さんへの補足にある時間外と深夜残業の式で、 IF(D7>"22:00", の "22:00" というのは単なる文字列ですから、時間データとしての数値に変換してやる必要があります。 エクセルは、文字列の数字を四則演算に使うと数値として認識するという仕様になっているので、"22:00"*1 として 1を掛けてやれば元の値を変えることなく数値に変換できます。 試しに C7に 9:00、D7に 23:00、E7に 2:00 と入れてみてください。 実働 12時間ですから 4時間30分の残業です。、 内訳は、普通残業 30分、時間外は 3時間、深夜残業 1時間になると思うのですが、現状の式では深夜残業が空白で、時間外は 4:00 になりませんか?( もしかしたら #VALUE!エラーになるかも ) IF(D7>"22:00"*1 としてやれば、ちゃんと時間外は 3:00、深夜残業は 1:00になります。 ★ 時間外の IF(D7>"22:01" は "22:01" ではなく "22:00" だと思います。 四則演算に使えば、*1 とする必要はないので、D7-"22:00" はそのままでOKです。 ◆ H7( 時間外 ) =IF(B7>0,"",IF(D7>"22:00"*1,D7-C7-E7-"8:00"-I7,IF(D7-C7-E7>8/24,D7-C7-E7-"8:00",""))) ◆ ただし、上の式は↓のようにすれば短くできます。 =IF(B7>0,"",IF(D7-C7-E7>"8:00"*1,D7-C7-E7-"8:00"-N(I7),"")) ※ 最後のほうの N(I7) の N 関数は文字列を 0にする関数。 もし I7セルの深夜残業が空白( 数式「""」で空白 )の場合、 D7-C7-E7-"8:00"-I7 とすると #VALUE!エラーになりますが、N 関数を使って N(I7)とすれば文字列( 「""」での空白は文字列です )は 0に変換されるので、ちゃんと計算できます。 ◆ I7( 深夜残業 ) =IF(B7>0,"",IF(D7>"22:00"*1,D7-"22:00","")) あと、残業が 0の場合は空白にするのでしょうか? No.3 の式だと、0:00 になります。空白にするなら <="7:30"*1,0, の 0を "" に変えてください。 ◆ 以下、別案です。よろしければお試しください。 実働時間の列を新たに追加すればこうなるという例です。 もちろん、これがベスト・アンサーだということではありません。 参考まで。 **< 前提 >******************* ・実働時間の列を追加( F列 ) ・そのため列位置がズレます。  所定時間が G列、普通残業が H列、時間外が I列、深夜残業が J列 ・始業時間、終業時間で深夜0時を超える場合は、48:00表記で入力。  深夜 1:00なら 25:00、3:30なら 27:30 というように。  24:00以上でも表示できるように、始業時間、終業時間のセルの表示形式は、ユーザー定義で [h]:mm にしてください。 ★ F1:=7:30、G1:=8:00、H1:=22:00 と入力しておく。 ***************************** 以下をコピー&ペーストしてください。 ◆ F7( 実働時間 ) =IF(COUNT(C7:D7)<2,"",D7-C7-E7) ◆ G7( 所定時間 ) =IF(OR(B7>0,F7=""),"",MIN($F$1,F7)) ※ ↑ F1セルに 7:30 と入っているとして。 ◆ H7( 普通残業 ) =IF(OR(B7>0,F7=""),"",IF(F7<=$F$1,"",MIN(F7-$F$1,$G$1-$F$1))) ※ ↑ G1セルに 8:00 と入っているとして。 ◆ I7( 時間外 ) =IF(OR(B7>0,F7=""),"",IF(F7>$G$1,F7-$G$1-N(J7),"")) ※ ↑( 実働時間 )- 8:00 - ( 深夜残業 )という計算です。  ここでも N 関数を使っています。 ◆ J7( 深夜残業 ) =IF(OR(B7>0,F7=""),"",IF(D7>$H$1,D7-$H$1,"")) ※ ↑ H1セルに 22:00 と入っているとして。

megrain
質問者

お礼

とても詳しく色々ありがとうございました。 ためになりました。

  • shiotan99
  • ベストアンサー率68% (140/203)
回答No.3

こんにちは~ > D7:就業時間 就業時間って、"終業時間" のことでしょうか? そうだとすれば、実働時間( =D7-C7-E7 )を出す列を別につくっておいたほうが数式が簡単になると思いますよ。 とりあえず現状のままなら、普通残業は ◆ G7に =IF(B7>0,"",IF(D7-C7-E7<="7:30"*1,0,MIN(D7-C7-E7-"7:30","0:30"))) でどうでしょうか? "7:30" のあとの *1 をお忘れなく。 もし F1セルに 7:30 と入力されているのなら、 =IF(B7>0,"",IF(D7-C7-E7<=$F$1,0,MIN(D7-C7-E7-$F$1,"0:30"))) でもいいかもしれません。   ◇ それと時間外、深夜残業の式ですが、これでホントにうまくいってます? IF(D7>"22:01", ↓ IF(D7>"22:01"*1, のように時間を "22:01" のようにして比較するときは、そのあとに *1 として数値化してやらないとダメだと思うのですが‥。

megrain
質問者

お礼

どうもありがとうございます。 もう少し検証をしてみますが、今のところ出来ましたヽ(^。^)ノ 休んだ日にも0:00と表示されるところがやや気になりますが・・・。

回答No.2

=IF(B7>0,"",IF(D7-C7-E7>7.5/24,IF(D7-C7-E7-7.5/24>8/24,$G$1,D7-C7-E7-H7-I7))) G1に 8:00 を入力しておく でどうでしょうか?

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

所定時間=MIN(就業時間-休憩時間,"7:30"*1) 深夜残業=MAX(就業時間-休憩時間-"8:00",0) ということでしょうか? 普通残業=IF(深夜残業>0,"0:30"*1,MOD(就業時間-休憩時間,"7:30"*1))

megrain
質問者

補足

mshr1962さん、すみません私の説明がやや足らなかったようです。 A7:月日 B7:区分(土日・祝日に1を入力) C7:始業時間 D7:就業時間 E7:休憩時間 F7:所定時間(7:30までしか表示しない)   =IF(B7>0,"",IF(D7-C7-E7>7.5/24,$F$1,IF(C7="","",D7-C7-E7))) G7:普通残業(実働7:30を超え、8時間までの時間表示)   ※ここが上手く出来ません H7:時間外(実働8時間を超え、10時間までの時間表示) =IF(B7>0,"",IF(D7>"22:01",D7-C7-E7-"8:00"-I7,IF(D7-C7-E7>8/24,D7-C7-E7-"8:00",""))) I7:深夜残業(実働10時間を超えた場合の時間を表示)   =IF(B7>0,"",IF(D7>"22:00",D7-"22:00","")) 現状G7以外は上手くできてるんです。 宜しくお願いいたします。

関連するQ&A

  • エクセルで勤務表作成について

    昨日もご相談させていただき、色んな方からご回答をいただき、やったぁ~と喜んでいたんですが、色んな検証をすすめていくと、修正が必要だと判明したので、また助けていただけますでしょうか? 以下のような項目で表を作成しているんですが、G7:普通残業の部分でずっとひっかかっております。 宜しくお願いいたします。 A7:月日 B7:区分(土日・祝日に1を入力) C7:始業時間 D7:終業時間 E7:休憩時間 F7:所定時間(7:30までしか表示しない)   =IF(B7>0,"",IF(D7-C7-E7>7.5/24,$F$1,IF(C7="","",D7-C7-E7))) G7:普通残業(実働7:30を超え、8時間までの時間表示) ※ ここが上手く出来ません =IF(B8>0,"",IF(D7-C7-E7>7.5/24,IF(D7-C7-E7-7.5/24>=0.5/24,0.5/24,D7-C7-E7-7.5/24),""))という式を入れたんですが、C7:始業時間が9:30、D7:終業時間が18:30(18:30以外の時間は全て表示するようです)、E7:休憩時間が1:00の時、G7:普通残業には0:30とはいらないんです。 =IF(D7-C7-E7>7.5/24,IF(D7-C7-E7-7.5/24>=0.5/24,0.5/24,D7-C7-E7-7.5/24),"")という式では上の問題は解決するが、B7:区分に「1」を入力した場合に表示されてしまう。 B7:区分に「1」が入力された場合はJ7:休出残業とK7:休出深夜に数字が飛ぶようにしてあるんです。 H7:時間外(実働8時間を超え、10時間までの時間表示) =IF(B7>0,"",IF(D7>"22:01",D7-C7-E7-"8:00"-I7,IF(D7-C7-E7>8/24,D7-C7-E7-"8:00",""))) I7:深夜残業(実働10時間を超えた場合の時間を表示)   =IF(B7>0,"",IF(D7>"22:00",D7-"22:00","")) J7:休出残業=IF(B7="","",IF(B7=1,IF(C7="","",IF(K7="",D7-C7-E7,D7-C7-E7-K7)),"")) K7:休出深夜=IF(B7="","",IF(B7=1,IF(D7>"22:01",D7-"22:00",""),""))

  • 会社で勤務表を作成しなくてはならなくなりましたが、エクセル(2003)

    会社で勤務表を作成しなくてはならなくなりましたが、エクセル(2003)関数の知識がありません。 こちらでいろいろ検索しましたが、求めているものがなかったので質問をさせていただくことにしました。 ご教授お願いいたします。 現在、実働時間⇒=IF(B1="","",A1*24-B1*24-D1)と入力しています。 始業時間と終業時間を入力すると実働時間、実働時間が17:45を超えたら普通残業、22:00~翌5:00は深夜残業としたいのです。 日勤勤務は9:00~17:45、夜勤は17:30~翌9:00です。夜間勤務では1.25の休憩があるため実働時間は5.75となります。 また遅刻早退の時間数を求める関数も入れたいです。 24時間体制での仕事なので深夜の時間に対応したものを求めたいのです。 すべての欄の合計値は7:45とかの表示ではなく7.45という表記にしたいです。  始業時間 終業時間 休憩時間 実働時間 普通残業 深夜残業 遅刻/早退  9:00   17:45   1:00  17:30   翌9:00   休憩時間は標準の書式設定[1]になっています。 初めて質問させていただくので、わかりにくいかと思いますがどうかよろしくお願いいたします。

  • 勤務表の作成について

    勤務表の作成について 始業時間・終業時間・休憩時間を入力すれば、実働時間・定時時間・残業時間・深夜時間・深夜残業が 自動的に出るような表を作成しようとしています。 作成はしてみたのですが、どうも上手くいきません。 始業時間・・・手入力 終業時間・・・手入力 休憩時間・・・手入力 実働時間・・・終業-始業-休憩 定時時間・・・5:00~22:00の間の業務時間 残業時間・・・実働時間が8時間を超えていた場合の5:00~22:00の間の業務時間 深夜時間・・・5:00~22:00の間以外の業務時間 深夜残業・・・実働時間が8時間を超えていた場合の5:00~22:00の間以外の業務時間 今は以下のような(間違っている)計算式を入れています。 D8=曜日(休日には休と表示) D10=始業時間 D11=終業時間 D12=休憩時間 実働時間(D13)=IF(D10="","",D11-D10-D12) 定時時間(D14)=IF(D8="","",IF(AND(D8<>"休",D10=""),"休",IF(OR(D10="",D8="休"),"",IF(D13<TIME(8,0,0),D13,TIME(8,0,0))))) 残業時間(D15)=IF(D10="","",IF(D14="","",IF(D13-D14=0,0,IF(D11>TIME(22,0,0),IF(TIME(22,0,0)-D10-D12-D14<0,0,TIME(22,0,0)-D10-D12-D14),D11-D10-D12-D14)))) 深夜時間)D17)=IF(D10="","",IF(AND(D11>TIME(22,0,0),D11<TIME(5,0,0)),D11-D18-TIME(22,0,0),"")) 深夜残業==IF(D10="","",IF(D13=D14,0,D13-D14-D15)) どのような式を入れれば良いかご教授お願いします。

  • 勤務表作成について

    勤務表作成について 2点の質問がります。 (1)深夜時間(22:00~翌5:00)を求める関数が何度やってもうまくいきません。 ご教授お願いいたします。 例えば終業時間が23:00だった場合、普通残業に4.25、深夜残業に1.0と表示をさせたいです。 現在は普通残業が5.25となってしまっています。 (2)終業時間から遅刻早退の時間を求めたいです。 例えば9:00~12:00まで勤務をしたら休憩はなしになるので、実働時間は3.0、遅刻早退は4.75となるようにしたいです。 また勤務していないは空白としたいのです。 なお、勤務時間の定時は9:00~17:45です。 以上の2点となります。 よろしくお願いいたします。

  • 勤務時間って、これはどうなの?おかしい

    始業30分前には出社し、みんなで職場内の掃除をしています。(もちろん、自主的ではなく上司がこのように決めて数年前から行っています)。また、残業については通常の勤務時間後に30分の休憩をはさんでからが残業時間にあたるという事に来年度からなります。つまり、17時30分が通常の就業時間だとして、19時00分まで残った場合、17時30分から18時00分までは休憩を取り、そこから働く19時00分までの1時間が残業手当の対象となります。30分の休憩は、なんなんですか?

  • Excelで勤務表作りしたいのですが困っています

    エクセルで勤務表を作りたいのですが計算式がわからないので教えてください。 2交替なんですけど、日勤の人は定常時間が8:00~17:00です。休憩が12:00~13:00までです。遅刻せずに来る人には問題ないのですが、休憩時間以降に来た人には休憩時間のマイナスをしたくないんですがどぉしたらイイのかわかりません。 残業と実働時間は『H』で表わしたいです。 夜勤は深夜手当というものが適用されるのですが、定常時間が20:00~5:00で22:00~5:00の間が手当です。その間休憩が0:00~1:00まであるので普通なら6時間ですが早退したりしたらそれに適用するように計算式を入れたいです。 大体、今作っている表です  A  B   C    D     E    F    G     H    I    J    K 1 日 休  出社  退社  休憩  外出  定常  残業  深夜  休日  実働 2 1     8:00  20:00   ?        ?    ?H              ?H 3 2     13:00  20:00     4 3     20:00 9:00     ・ ・    A  B   C    D     E    F    G 34  日勤  8:00  17:00   休憩  12:00   13:00 35  夜勤  20:00   5:00    休憩  0:00    1:00 36  深夜  22:00  5:00 です。 わかる方お願いします。 教えてください。

  • 勤務時間と実務時間が就業規則と異なる。

    はじめまして。 旅行関係のサービス業に従事するものです。 就業規則と実際の就業時間が異なるのでお伺いしたいと思います。 ○就業規則:9時~18時(1時間休憩) ○受付時間:9時~19時(1時間休憩) 交代制とかではなく、始業から終了まで勤務しております。 みなし残業制なので、残業代などは一切ありません。 実質1日9時間労働みたいになっていますがこれって問題ないのでしょうか。 おかしいのであれば会社に改善提案する必要もあると思いますが 皆様のアドバイスを宜しくお願い致します。

  • エクセル出退勤表で時間外と深夜時間外の関数

    エクセルで出退勤表を作りたいと思っています。 所定労働時間は10:00~18:30で休憩1時間入り、7:30です。 18:30~22:00までは時間外労働時間、22:00~翌5:00までは深夜時間外です。例えば出勤時間10:00、退勤時間23:00とすると、時間外は3:30で深夜時間外は1:00です。 セルの縦列には A:日付(例3/11で表示) B:曜日 C:出勤時間(例10:00で表示) D:退勤時間(例23:30で表示) E:所定労働時間(7:30で固定で休憩の1時間を含んでいない) F:時間外労働時間(例3:00で表示) G:深夜時間外(例2:30で表示) Q1:カレンダーの暦通り、曜日をBセルに自動表示させる方法はありますか? Q2:Fセルの18:30~22:00までの時間外労働時間を計算する関数を教えて下さい。 Q3:Gセルの22:00~翌5:00までの深夜残業時間を計算する関数を教えて下さい。 Q4:出勤時間と退勤時間を入力すれば時間外と深夜時間外が表示されるようにしたいのですが可能ですか? よろしくお願いします。 下記の回答を見つけてexcelで作成しましたが、22:00以降の深夜残業は計算で出るのですが 朝5:00前の出勤が計算されません。 朝5:00前の出勤が深夜残業に計算で加味される関数式が判りましたらご教示お願い致します。 例として1.朝の3:40出勤で25:20分退勤      2.朝の3:30出勤で14:30分退勤 の場合でお願いします。 >Q3:Gセルの22:00~翌5:00までの深夜残業時間を計算する関数を教えて下さい。 G2=IF(OR(C2="",D2=""),"",MAX(D2+(D2<C2),22/24)-22/24) ※D2+(D2<C2) C2=10:00で、D2=5:00の場合にD2=27:00とします。 ※22/24="22:00"=22時のこと ※17/48=8.5/24="08:30"=8時間半(休憩時間を含む所定労働時間)のこと

  • 複雑な勤務時間管理表

    最近会社での勤務時間管理方法が変わり、月末タイムカードに自ら残業時間等を記入し提出せねばならず、エクセルで自動計算したいと思ってるんですが、計算項目も多く困っています。 出勤時間と退勤時間を入力するだけで以下の条件をすべて表示できますでしょうか? 1:当日実働時間 (休憩の1hを必ずマイナスしなければなりません) 2:当日残業時間 (実働7.5hを超えた場合、1分単位での計算が必要です。7.5時間を下回った場合も1分単位でのマイナス表示が必要です。) 3:深夜勤務時間 (22:00以降の1分単位での計算が必要です。24:00を超える場合も多く、当日深夜勤務にカウントされます。) 4:1~3までの各項目合計 自分で何度かチャレンジしてみたのですが、マイナス表示もある残業時間の計算や深夜勤務の24:00以降が発生した場合の計算等がうまくいきません。 入力項目が増えるのはまったく構いません。 どうかご教授お願いします。

  • エクセルで時間表示させる関数(勤務時間)

    勤務表管理のため、表を作成しています。 通常勤務は9:00-17:30で残業時間が15分の休憩を挟んだ後17:45-21:30までです(その後深夜残業がありますがここでは割愛します) C22に仕事開始時間、D22に仕事終了時間を入れています。 例えば9:00-22:00で仕事したとします。そして、あるセルに、残業時間開始時間、終了時間を表示させたいのですが、残業時間開始を =IF(D22> "17:30","17:45","") と入れたのですが空白で返されてしまいます。">"を"<"にするとなぜか17:45が表示されます。 終了時間は、IF(D22>="21:30",MIN(D22,"21:30"),D22) だと空白で返されます。逆にするとMIN(D22,"21:30")が返されて例えばD22に17:30とか入れると21:30と返されてしまいます。 時間計算の場合、何か特殊な設定をしないと逆になってしまうのでしょうか?

専門家に質問してみよう