マイナスの時間計算ができない

時間を引き算すると『######』

時間を引き算すると、数式の結果がマイナスの場合『######』となってしまいます。
見た目は、セル幅がせまくて入りきらないときの「#####」と同じですが、セル幅を広げても解決しません。
Excelでは日付や時間を「シリアル値」で管理していますが、標準のシリアル値では、マイナスの時間を表示することができません。
解決方法は、オプションから設定する方法と、関数を使う方法の2通りです。
関数では、TEXT関数ABS関数IF関数の3つを使います。

オプションから設定してマイナス時間を表示する

Excel 2007以降は、[オプション]ダイアログボックスを開き、詳細設定項目の下の方にある、次のブックを計算するときグループの、1904年から計算するチェックボックスをオンにします。
オプションから設定してマイナス時間を表示
Excel 2003まではメニューから、ツール、オプションと選択し、
オプションから設定してマイナス時間を表示2
オプションダイアログボックスの[計算方法]タブをクリックし、1904年から計算するチェックボックスをオンにします。
オプションから設定してマイナス時間を表示3
この方法が、カンタンでいいのですが、ひとつ問題があります。シリアル値の開始がデフォルトと違っているため、日にちの計算が違ってくるのです。
同じシートで日付を入力しているときは注意してください。
そこで、やはり関数を使う方法もマスターしておきましょう。

関数を使って時間の引き算のマイナスを表示する

消火訓練にかかった時間を毎回記録して、改善の参考にするために、前回との時間差を出したいということで以下のような表にしました。
関数を使って時間の引き算のマイナスを表示
単純に前回の時間から今回の時間を引き算しているだけです。
前回よりも時間が多い場合は、上手く表示されますが、時間が短縮されてマイナスになるはずの箇所では、『######』となってしまいます。
関数で時間の引き算のマイナスを表示
これは、Excelが壊れたわけではないので、内部ではきちんと計算されているはずなんですね。けれど、マイナスになると表示できない・・・。
そこで、TEXT関数をつかいます。 TEXT関数の引数には数値と表示形式を持ってきますが、引数にABS(アブソルート)関数を使います。
TEXT関数
スポンサーリンク
スポンサーリンク

他にABS関数の書式です。
ABS関数
早速『######』と表示されているセルに入力してみましょう。
関数で時間の引き算のマイナスを表示2
表示形式を設定するところで、"mm:ss"と時間がプラスの場合だけ設定しているので、マイナスになっていません。
IF関数をつかって、もし前回が今回よりも大きかったら、マイナスの書式で表示する。
そうでないときは、普通に表示
IF(B5>B6,"-mm:ss","mm:ss")
 と場合分けしましょう。
そこで式を以下のようにします。TEXT関数の引数の表示形式にIF関数を使った上の式をあてはめます。
=TEXT(ABS(B6-B5),IF(B5>B6,"-mm:ss","mm:ss"))
関数で時間の引き算のマイナスを表示3
結果は、マイナス時間が表示され、このようになります。
関数で時間の引き算のマイナスを表示4
スポンサーリンク
スポンサーリンク