• 締切済み

時刻のマイナス表示の出し方

1ヶ月の勤怠記録をエクセルで作成しています。 ・出勤時間 ・退勤時間 ・休憩時間 (縦に日付で横に出勤退勤休憩実働といった作り) 上記3項目があり 退勤時間-出勤時間-休憩時間=実働時間を出しています。 その際に実働時間が8時間を超過した場合の関数を =MAX(0,退勤時間-出勤時間-休憩時間-8/24) で出しています。 質問は8時間に満たない実働時間だった場合にマイナス時間で 結果を出したいのですが可能でしょうか。 1ヶ月トータルで残業発生と8時間に満たない時間を+-したいのが 今回の質問となります。 どなたかご存知の方がいらっしゃったら教えてください。 宜しくお願い致します。

みんなの回答

  • onntao
  • ベストアンサー率32% (108/332)
回答No.2

1904 年から計算する日付システムにしますとマイナス計算もできますが 他の設定していないブックとのデータの参照では問題がおきます 下記が参考になりますね 1900 年から計算する日付システムと 1904 年から計算する日付システム http://support.microsoft.com/kb/180162/ja

  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.1

時間(シリアル値)にマイナスの数値を割り当てることはできませんから 時間(シリアル値)を数値にして計算してみましょう 分かりやすいのは分単位の数値にすることでしょうか  =(退勤時間-出勤時間-休憩時間)*1440 これで分単位の整数になります  =(退勤時間-出勤時間-休憩時間)*1440-(8*60) これで分単位の整数で一日の超過不足の時間を求められます 超過不足時間の合計を  =IF(超過不足時間合計<0,"-")&HOUR(ABS(超過不足時間合計/1440)&":"&MINUTS(ABS(超過不足時間合計/1440) と、【文字列】で表示してはいかがでしょう ※Excel2003までは マイナスの日付や時間は表示することができません。  Excel2007では分かりません。 毎日の不足時間を表示する必要が無いのであれば MAX関数を使った超過不足時間の列とは別に  =退勤時間-出勤時間-休憩時間 の列を作り、(表示形式が時間になっていると ##### となります) 最後に合計セルに対して上記のように文字列にする式を適用してもOKです  =IF(超過不足時間合計<0,"-")&HOUR(ABS(超過不足時間合計)&":"&MINUTS(ABS(超過不足時間合計) もっとスマートなやり方があるとは思いますが、 ポイントはマイナス表記ができないならシリアル値ではなく数値として扱えばOKということです