目次
「残業時間がマイナスになった!」「####になって数字が見えない!」
Excelで勤怠管理をしていると、残業時間の計算でこういった問題が起きることがあります。焦りますよね。でも原因がわかれば、かんたんに解決できます。
毎月この修正作業に時間を取られていると、それだけで定時を過ぎてしまいます。一度仕組みを直しておけば、来月以降は確認だけで済むようになります。
この記事では、よくある2つの問題「マイナス表示」と「####表示」の原因と解決策をわかりやすく解説します。

マイナス表示も####も、原因がわかればどちらも1分以内に直せますよ。仕組みごと覚えておきましょう!
問題1:残業時間がマイナスになる
なぜマイナスになるのか?
たとえば「退勤時間 – 出勤時間 – 所定労働時間」で残業時間を計算しているとき、残業がゼロの日や早退した日に「マイナスの時間」が出てしまうことがあります。
Excelでは、時刻の引き算でマイナスの値が出ると、そのままマイナスで表示されてしまいます。
解決方法1:IF関数でマイナスを0にする
残業時間が0未満になった場合に、0を表示するように修正します。
【修正前】
=C2-B2-“8:00”
【修正後】
=IF(C2-B2-“8:00″<0, 0, C2-B2-“8:00”)
この式の意味:「退勤 – 出勤 – 8時間」の計算結果がマイナスなら0、そうでなければ計算結果を表示する。
解決方法2:MAX関数でシンプルに解決
MAX関数を使うともっとシンプルに書けます。
=MAX(0, C2-B2-“8:00”)
この式の意味:計算結果と0を比べて、大きい方を表示する。計算結果がマイナスなら0が選ばれます。
=MAX(0, 残業時間の計算式) の形で書くだけです。IF関数より短く書けて、後から見たときにも意味がわかりやすいです。
問題2:####(シャープ)になって数字が見えない
なぜ####になるのか?
####という表示は「列幅が狭くて、数値が表示しきれません」というサインです。列を広げるだけで解決します。
解決方法1:列幅を広げる
- ####が表示されている列のアルファベット(例:C)と隣の列の間にある境界線にマウスを合わせる
- カーソルが左右の矢印(↔)に変わる
- ダブルクリックすると、内容に合わせて自動的に列幅が調整される
解決方法2:表示形式が間違っている場合
時間の計算結果が正しく表示されない場合、セルの表示形式が「数値」になっていることがあります。
- ####のセルを選択する
- 右クリック→「セルの書式設定」を開く
- 「表示形式」タブで「時刻」を選ぶ
- OKをクリック
問題3:24時間以上の合計時間が正しく表示されない
月の残業時間を合計したとき、「30:00」などと表示されず「6:00」のようにおかしな値になることがあります。これは表示形式の問題です。
解決方法:[h]:mm の表示形式を使う
- 合計時間のセルを選択する
- 右クリック→「セルの書式設定」を開く
- 「表示形式」タブで「ユーザー定義」を選ぶ
- 種類の入力欄に [h]:mm と入力する
- OKをクリック
・h:mm → 24時間を超えると0に戻る(例:25時間は「1:00」と表示される)
・[h]:mm → 24時間を超えても正しく表示される(例:25時間は「25:00」と表示される)
残業時間の合計には必ず[h]:mmを使いましょう。
図解:3つの症状と直し方
①マイナス表示 → MAX(0,計算式) ②#### → 列境界線をダブルクリック ③合計がおかしい → 表示形式を[h]:mmに変更
よくある時間計算エラーと対処法まとめ
| 症状 | 原因 | 解決方法 |
|---|---|---|
| 残業時間がマイナスになる | 残業がゼロ以下の計算結果 | MAX(0, 計算式) を使う |
| ####が表示される | 列幅が狭い | 列の境界線をダブルクリック |
| 合計時間がおかしい | 24時間以上の表示形式が違う | 表示形式を[h]:mmにする |
| 時間が小数で表示される | 表示形式が「数値」になっている | 表示形式を「時刻」に変更 |
「8:00」と入力したつもりでも、セルが文字列として認識している場合は計算できません。セルを確認して、左揃えになっていたら文字列です(時刻は右揃えになります)。再入力するか、表示形式を「時刻」に変更してください。
よくある質問
Q:MAX関数を使ったのに、まだマイナスが表示されます
A:数式の参照セルが正しいか確認してください。また、セルの表示形式が「数値」になっているとマイナスの数値として表示されることがあります。表示形式を「時刻」に変更してみてください。
Q:残業時間を「分」単位で計算したい場合はどうしますか?
A:時間の値に24×60を掛けると分に変換できます。例:=MAX(0, C2-B2-“8:00”)*24*60 で分単位の数値になります。
Q:Googleスプレッドシートでも同じ数式が使えますか?
A:はい。MAX関数・IF関数はGoogleスプレッドシートでも同じ書き方で使えます。####表示も同様に列幅を広げれば解決します。
まとめ
残業時間のマイナス問題は「=MAX(0, 計算式)」で解決、####は列幅を広げるか表示形式の確認で解決できます。どちらも一度仕組みを理解すれば、次からはすぐ対処できます。
勤怠管理のExcelは毎月使うものだからこそ、正しい数式を組んでおくことが大切です。ぜひこの機会に見直してみてください!

勤怠表の数式は一度直したら終わりです。次の関連記事も合わせて見直しておくと安心ですよ。


コメント