• ベストアンサー

エクセルで労働時間の計算方法

例えば、OLのM子さんの勤務について      出社   9:00     退社  17:00    休憩時間 12:00~13:00  17:00~17:30 ある日、9:00に出社して、その日は残業があり18:30までの 勤務となりました。その場合の計算式を教えてください。 残業なしの場合は 勤務時間=退社時間-出社時間-1時間という計算をしていました。  

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

  • ベストアンサー
回答No.7

私も自作で作っていて自己流だし、ユーザーフォームでタイムカード風にしてあるので参考にはならないかもしれませんが、一つの安として簡単なものを考えてみました。 A列 出勤日時 入力例 2008/11/4 9:00 注:日付と時間の間にはスペースが必要 B列 退社日時 出勤と同じように入力 C列 基本の労働時間の計算式  =IF(B1="","",B1-A1-TIME(1,0,0))  TIME()は左から時間,分,秒です。休憩時間に応じて変化させてください。 残業時間の計算が残っていますね。 D列に退社日時 面倒ですが、同じ用に200/8から時間を入れる E列 30分の休憩があるようなのでこんな感じで残業時間の計算をしてみました。=IF(D1="","",D1-B1-TIME(0,30,0)) F列 基本労働時間と残業を足します。=IF(D1="","",C1+E1) こんなかんじでいいかな??? この式で作ってみてください。 F列の式は残業を入力してないと出ないので少し自分で改良してみてくださいね^^!

yui0829
質問者

お礼

ご回答ありがとうございます。 だんだんとイメージが湧いてきました。 頑張ってみます^^¥

その他の回答 (6)

noname#77517
noname#77517
回答No.6

No.1 です。 私も昔、会社の出退勤記録表をエクセルを駆使して作ったことがありますが、 フレックスなのでいろんな条件設定が難しく、半休や外出時の処理、深夜 残業の計算など、大変苦労しました。先ほど、久しぶりに開いてみてみたら、 自分で作ったものなのに、計算式の意味も思い出すことが難しいくらい 複雑に作りこんでいました。 ここでも、同じような質問が多数出されているので、それぞれ苦労されて いるのだろうと思いますが、一度チャレンジしてみると、かなり勉強に なりますよ。ぜひ頑張って下さい。

yui0829
質問者

お礼

ありがとうございます。 頑張ってみます♪

noname#77720
noname#77720
回答No.5

私はマクロで作ってしまっているのですが・・・ 時と分は入力を分けます。 30分区切りとか時間を丸める場合には、 プログラムで直す(内部的に丸めても)か、入力時にするようにします。 時は単純に引き算。 分は引き算してその値を6で割ってさらに10で割ったものにします。 これを時の差に加えます。 これが1日の合計時間になります。 ここから、以下の条件で休憩時間を引きます。 開始時間 =<12:00 AND 13:00=<終了時間 だったら、1を引き さらに 17:30 =<終了時間 だったら 0.5を引くようにすればいいです。

yui0829
質問者

お礼

早速のご回答ありがとうございます。 私には少し難しそうな作業ですが、参考になりました。

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.4

ご参考 A B C D E F G 1 出勤 定時退社 休憩 残業退社 定時時間 残業時間 合計 2 9:00 17:00 1:00 18:30 7:00 1:30 8:30 E2 定時退社時の勤務時間 定時退社-出勤-休憩(1時間とした) E2 =B2-A2-C2            F2 残業時間       残業退社-定時退社 F2 =D2-B2 G2 =E2+F2

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

多分、入社が12:00以降とか、退社が13:00以前とかの事例に対応するようにとの事かと思います。 過去スレ検索してみるとたくさんの事例があります。 最終的にはIF文を沢山ネストして条件で時間を計算させます。 これからであれば、作業列を作って整理したほうがわかりやすいと思います。 例えば   A     B     C    D    E     F  出社時間 退社時間 お昼休憩 夕方休憩 勤務時間 残業時間 とします。 昼休憩時間は =IF(OR(A2>"12:00"*1,B2<"13:00"*1),0,"1:00") とでもいれて、休憩時間1:00が発生する場合と発生しない場合で記述してみます。 夕方休憩も同様 =IF(OR(A2>"17:00"*1,B2<"17:30"*1),0,"0:30") 勤務時間は =IF(B2="",0,B2-A2-C2-D2) 残業時間は =IF(B2<"17:30"*1,0,B2-"17:30") となるでしょう。式は間違いないと思いますが、ご希望の条件であるかどうか、十分確認してください。 多分、端数の時間の処理など発生すると思います。

yui0829
質問者

お礼

ありがとうございます。 エクセル初心者の私には回答の意味することが理解できませんでした。 基礎から勉強しなおそうと思います。 ご丁寧な説明、感謝いたします。

  • ryuu4455
  • ベストアンサー率23% (38/164)
回答No.2

定時の人と残業がある人が同じ計算式で計算できるようにしたいってことですか?さらに残業前の休憩時間があって、、、ってことですよね? それなら ifを使って 8時間以下の場合とそうでない場合で計算式を 作ればいいんじゃないですか? 例 IF(8<○○,"退社時間‐出社時間‐1‐休憩時間”,"退社時間‐出社時間‐1”) 私も あまりエクセルは詳しくないですが こんな 感じのことですよね?

noname#77517
noname#77517
回答No.1

17時からの休憩をちゃんと取っていれば、  勤務時間=退社時間(18:30)-出社時間(9:00)-1.5時間 で問題ないように思いますが、他に疑問に思われていることがあれば、 補足説明をお願いします。

yui0829
質問者

補足

ご回答ありがとうございます。 1ヶ月分を1つのエクセルシートにまとめて処理をしたいのです。 タイムカードみたいな感じで、勤務時間をだぁ~っと 一瞬で計算してくれると嬉しいなと思いまして。 すみません、エクセル超初心者なので、パソコン用語とかあまり 難しい数式は苦手です。