- ベストアンサー
エクセルで残業時間月合計を正確に計算できない理由と解決法
- エクセル2007で勤務時間を管理する際、残業時間月合計が正確に計算されない問題が発生しています。入力されるのは出勤時間と退社時間のみで、途中の休憩時間は考慮されていません。これにより、正確な在勤時間や残業時間が計算されず、月合計も正しく表示されません。
- 問題の原因は、平日でも出勤時間と退社時間が入力されていない場合に、基本在勤時間として8:30が表示されるためです。これにより、在勤時間や残業時間が実際と異なって計算されてしまいます。また、土日や休日でも勤務日として計算されてしまうため、正確な月合計が表示されません。
- 問題を解決するためには、平日の場合は出勤時間と退社時間が入力されているかをチェックし、入力されていない場合は基本在勤時間として0:00を表示するようにする必要があります。また、土日や休日の場合は勤務日として計算されないようにすることで、正確な月合計を計算することができます。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
No.3です! >でも正確に計算ができません。 とありますので・・・ 計算式が入っているセルすべてに =ROUND(計算式,5) を利用してもダメでしょうか? =IF(COUNTBLANK(C5:D5),"",ROUND(計算式,5)) といった感じです。 他に時間計算のセルがある場合も単純にプラス・マイナスするだけでなく =ROUND(計算式,5) のようにします。 それでも希望通りにならなかったらごめんなさいね。m(__)m
その他の回答 (3)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 内容を詳しく検証していませんので、外していたらごめんなさい。 (1)F列の数式を =IF(COUNTBLANK(C5:D5),"",計算式) のようにして、C・D列のどちらかが未入力であれば数値を表示しないようにしてみてはどうでしょうか? (2)No.1の方が仰っているように時間計算は「浮動小数点」の関係でこちらの希望通りの数値にならないことがあります。 それを回避する方法として、計算式を小数点以下5桁くらいで丸める方法があります。 =ROUND(計算式,5) といったような感じです。 それから余計なお世話かもしれませんが、 >G列の計算がマイナスになることが原因で正確に計算できないのでしょうか。 とありますので、もしマイナスの計算を行いたい場合は 当方使用のExcel2003の方法として メニュー → ツール → オプション → 計算方法タブ で「1904年から計算する」にチェックを入れれば マイナス計算も可能になります。 Excel2007以降も同様の方法はあると思いますが、具体的な操作は手元にExcel2007がないのでごめんなさい。 尚、この方法はあくまで最終手段で極力時間計算等にはマイナスが出ない方が良いと思います。 この程度でごめんなさいね。m(__)m
お礼
ありがとうございます。 =IF(COUNTBLANK(C5:D5),"",計算式) は,勉強になりました。 利用させていただきます。 でも正確に計算ができません。 また,勉強してみます。
5/1(金)在勤時間は8:45のはずです。 また、在勤時間と基本在勤時間が同じなのに、残業が0:15つくのは変です E列の関数にFLOORとか使われているのですか? さらに F列は8:30と0:00しか入力されないのなら、合計で68:10となるのも変です >C列とD列が入力していないのに, >F列に8:00が入力してあるため, >G列の計算がマイナスになることが それは大きく誤差を生むはずですので、C列およびD列にシリアル値が入力されていない場合はEもFもGもゼロと入力されるようにしなくてはならないのでは?
お礼
ありがとうございます。分かりにくくてすみません。 「5」「36」は行番号で, 「5」行目が1日,「36」行目が31日で,「6」から「35」の間は日にちが入力されています。
- Saturn5
- ベストアンサー率45% (2270/4952)
G列を以下の式にするのはどうでしょうか? IF(C5="",0,D5-c5=f5) 時間計算はかなり難しい物です。 また、出退勤には各社の細かいルールがあり、Excelを これに併せるのは難しいこともあります。 試行錯誤をしてがんばってください。
お礼
ありがとうございます。 時間を入力すると,「FALSE」が表示されてしまいます。 試行錯誤してみます。
お礼
うまくできました!! 急いでいたので,とても助かりました。 何度も回答いただき感謝しています。 ありがとうございました。