とっておきの手土産を教えて

エクセル初心者です。
オフィス2003でエクセルのに出社時間と退社時間を入力し、別セルに遅刻さらに早退と休憩時間をひいて実務時間を算出し、給料計算として表示したいのですが、なにかいい方法はあるでしょうか?


下記の表のような計算がしたいのですが、色々調べてみたのですが、良く理解出来ず・・・
単純に引き算にTime関数を入れただけでは、退社時間に数字がないためエラーになりますし、IF関数での条件の入れ方が間違っているようで#valueになってしまいます。どなたかご存知の方、助けてください。

「エクセルでの勤務時間の計算の仕方、関数を」の質問画像

質問者からの補足コメント

  • 解答ありがとうございます。
    確かに遅刻・早退じの休憩時間を考慮していませんでした(。í _ ì。)
    午前15分お昼休憩60分午後15分の休憩で全部で1時間30分としていました。
    休憩時間を分て計算することは可能ですか?

    No.2の回答に寄せられた補足コメントです。 補足日時:2016/10/13 14:28

A 回答 (4件)

No.2です。



>午前15分お昼休憩60分午後15分の休憩で全部で1時間30分としていました。

ん~~~
出勤・遅刻・早退・退勤時刻によっては休憩時間がない場合もありますよね?
① 午前の休憩時間が取れる条件
② 昼休憩が取れる条件
③ 午後の休憩時間が取れる条件
をこちらで勝手に考えてみました。

① 遅刻は遅くとも11:45まで、早退は早くても12:00以降
すなわち11:45以降出勤または12:00以前の早退は午前休憩なし

② 遅刻は遅くとも12:00まで、早退は早くても13:00以降
すなわち12:00以降の出勤または13:00以前の早退は昼休憩なし

③ 遅刻は遅くとも13:00まで、早退は早くても15:15以降
すなわち13:00以降の出勤または15:15以前の早退は午後休憩なし

といった感じにしています。
すこしながくなりますが、H10セルの数式を
=IF(COUNT(D10:G10)=2,MAX(F10:G10)-MAX(D10:E10)-(IF(AND(MAX(D10:E10)<="11:45"*1,MAX(F10:G10)>="12:00"*1),"0:15"*1)+IF(AND(MAX(D10:E10)<="12:00"*1,MAX(F10:G10)>="13:00"*1),"1:00"*1)+IF(AND(MAX(D10:E10)<="15:00"*1,MAX(F10:G10)>="15:15"*1),"0:15"*1)),"")

としらどうなりますか?

※ 12時ちょうどとか15時ちょうどなどの境の部分は
不等号で調整してください。

※ 細かい検証はしていませんので
違っていたらごめんなさい。m(_ _)m
    • good
    • 0
この回答へのお礼

補足にも丁寧にお答え頂きありがとうございました。
勉強不足にもかかわらず本当に助かりました。

とても一人では解決できなかったです(;_;)

教えて頂きた数式で理想的な勤怠表が出来ました。
本当にありがとうございました。

お礼日時:2016/10/13 16:03

休憩時間を具体的に提示してくれないと正しい回答が出来ません。


例えば午前休憩を10:15~10:30、昼休憩を12:00~13:00、午後休憩を15:00~15:15とします。

式が煩雑になりすぎるので、右の空いた列にまず出勤時間、退勤時間を入れた方がいいです。

出勤時間J10
=MAX(D10:E10)
退勤時間K10
=MAX(F10:G10)

これで実働H10
=MAX(0,MIN(K10,"10:15")-J10)+MAX(0,MIN(K10,"12:00")-MAX(J10,"10:30"))+MAX(0,MIN(K10,"15:00")-MAX(J10,"13:00"))+MAX(0,K10-MAX(J10,"15:15"))
    • good
    • 0
この回答へのお礼

質問自体がつたなくてすみませんm(> <*)m
そんな中でも、適切な回答をありがとうございます。

解決する事ができました。
ありがとうございます。

お礼日時:2016/10/13 16:11

こんにちは!



画像を拝見すると、単純に「退社時刻」から「出勤時刻」を引いただけではダメなのですね?
おそらく休息時間が「1:30」のように思われますので・・・
画像の配置だとH10セル(セルの表示形式は [h]:mm または h:mm にしておく)に

=IF(COUNT(D10:G10)=2,MAX(F10:G10)-MAX(D10:E10)-"1:30"*1,"")

という数式を入れフィルハンドルで下へコピーではどうでしょうか?

上記数式は単純に実働時間から1:30引いていますが、
出勤・遅刻・早退・退社の時刻によって休憩時間が異なると思います。
その辺は考慮していません。m(_ _)m
この回答への補足あり
    • good
    • 0

出勤時間か遅刻、早退か退勤時間 それぞれどちらかにしか入力しないのですから


=MAX(F10:G10)-MAX(D10:E10)
でいいはずです。

例と結果が違うのは固定で1:30を引いていないからです。
これについては説明がないので考慮しませんでした。
    • good
    • 0
この回答へのお礼

解答ありがとうございます。
説明不足で申し訳ありませんでした。

単純な計算方法しか分からず、お恥ずかしい限りですが、解決できそうです。

お礼日時:2016/10/13 14:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報