Excel

【Excel】エクセルにて日付・時間の引き算ができない原因と対策【24時間以上など:うまくいかない:エラーになる】

当サイトでは記事内に広告を含みます。

この記事では、エクセルにて日付・時間の引き算ができない原因と対策(エラーとなるなど)について解説していきます。

日付・時間の引き算ができない原因ですが、もともとエクセルは日付や時刻と認識しているものについては、マイナスはないものと考えています。

この原因と対策としては以下となります。

1. セルの幅が狭すぎる(引き算のエラーではない)
→幅を広げる

2. 時間・日付の引き算の結果がマイナスとなっている
→オプション設定の変更
→or 関数で処理

では実際に例を挙げて確認しましょう。

エクセルにて日付・時間の引き算ができない(エラー)場合の対策【原因1.列の幅が狭すぎる】

それでは以下でエクセルでの日付・時間などの引き算がエラーとなる原因と対策を見ていきます。

上の画像を参考に、まずはエクセルの日付に関する設定を変える方法を見ていきます。

まず見ていただきたいのは、実は上の画像では3行目は引き算出来ていないように見えるものの、実はエラーではありません

10時間-8時間=2時間ですから、これは普通に計算できるはずです。

セルの中に「###」と出ているのを見かけたら、列幅が狭すぎることが原因でエラーに見えています。

この確認の意味で、列幅を調節してみましょう。

D列の列幅を広げることで、3行目は引き算の実行結果が見えました。

列幅が狭く表示しきれない場合にも「###」の表記になりますので、一応確認してみてください。

 

エクセルにて日付・時間の引き算ができない(エラー)場合の対策【原因2.結果がマイナス→オプション対応】

しかし4行目、5行目は十分幅の余裕があるはずですが、「###」になっています。こちらは、上とは別で引き算ができていない(エラーになっている)のです。

この2行がエラーとなるのは、は時間・日付の引き算の計算結果が「マイナス」になることが原因です。

この対策としては、ファイルのオプション設定を変更するとよく、詳細は以下の通りです。

まずは「ホーム」タブの左の「ファイル」タブを開き、その一番下に「オプション」(なければ「その他」の中)がありますので、選んでウインドウを開きます。

左の項目の中から「詳細設定」を選び、出てくる画面の一番下まで行くと、「次のブックを計算するとき」という項目があります。

この3番目にある「1904年から計算する」にチェックを入れてください。

4行目、5行目の「###」表記が消え、引き算結果のエラーを解消することができました。

5行目の表記を変更したい場合は、書式設定、標準の表示形式にするといいです。

日付に関する設定を変える方法は以上になります。

 

 

エクセルにて日付・時間の引き算ができない(エラー)場合の対策【原因3.結果がマイナス→関数で処理】

次に、日付・時間の引き算の結果が「マイナスとなることが原因でエラーとなる」場合に、関数でこれを解消するやり方を紹介します。

実は、先ほどのやり方には少し不都合なことがあります。チェックを入れた項目に書いてあったように「1904年から計算する」と指定しています。

そのため、日付などの情報がすでに入っているデータではこの変更をすると、基準が変わることでデータの不整合が起きることがあります。

 

関数を組み合わせて行う対処なので、先ほどのやり方と比べ手間はかかります。

ですが、すでに日付などの情報を使っているブックで、引き算を使えるようにするにはこちらのやり方のほうが安全だといえます。

では処理方法を見ていきましょう。

2日間の作業時間を記録し、前の日と比べてどれくらい短く(長く)なったかを調べる表を作ります。

前の日から後の日を引き算すればいいので、E列の数式はF4のようになります。

奈良さん、和歌山さんは4月1日のほうが時間がかかっているので、数字がマイナスになりますが、時刻表示のままでは数字が分かりません。

そこでE列に入れる式を、関数を使って作ります。

 

この数式の意味の詳細を順番に見ていきましょう。

最初に出てくるのはIF関数です。

IF関数は条件に応じて、処理を変える関数であり、

=IF(論理式,真の場合,偽の場合,・・)

と使います。

今回では、C8とD8を比べて、C8のほうが大きければ、C8-D8を表示しなさい、というのが前半部分です。

先ほどの条件で、そうでなければ、つまりD8のほうがC8より大きく、計算結果がマイナスになる時に、の部分に出てくるのがTEXT関数とABS関数です。

ABS関数は数字の「絶対値」を返す関数であり、

=ABS(対象セル or 数値)

と入れます。簡単に言うとプラスだろうがマイナスだろうが、数字の部分だけを取り出します。

TEXT関数は値をどのような表示にするか決めて返す関数です。

今回は”h:mm”、h時間:mm分の形で答えを出してもらっています。

TEXT関数の前にある”-”&は、出てきた答えにマイナスの記号を付けるためのものです。

内容は少し手間ですが、エクセルの設定を変えたくない場面は結構ありますので、知っていただくと便利になると思います。

時間の引き算に関連して、24時間をまたぐような場合の方法にも少し触れておきます。

画像はいわゆるシンプルな出勤管理の表ですが、勤務時間を「退勤時間マイナス出勤時間」で計算しています。

1日の中で出勤退勤が済む方は問題ありませんが、退勤時間が翌日になるような方はこの計算式では都合が悪いです。

先ほどの関数で作った式を少しアレンジすれば、このような場合でも対応できます。

 

先ほどと違うのは時間の計算がマイナスになった場合の部分です。

ただしこの場合は出勤の時間より退勤の時間が1日先であるとしたいわけですから、マイナスになる式に「+1」してください。

時刻の計算の中では数字の1は単位では「1日」となります。使う関数もIFだけで済みますので先ほどより実は楽なのです。

 

マイナスが出ることがある式の場合に、関数で処理する方法は以上になります。

 

関連する記事として

エクセルでの引き算の処理まとめ

エクセルにて時間・日付の足し算ができない原因と対策

も併せてチェックしてみてください♪

 

まとめ 引き算ができない(エラー)場合の原因と対策

エクセルにて日付・時間の引き算ができない原因と対策についてまとめます。

原因 日付や時刻の計算は結果にマイナス(負の数)が使えない

対策

1. エクセルの日付に関する設定を変える
「ファイル」→「オプション」→「詳細設定」→「1904年から計算する」にチェック

2. マイナスが出ることがある式の場合に、関数で処理する
IF関数でプラス、マイナスの場合に分ける
ABS関数で数字だけを取り出し、TEXT関数で時間表示にする
マイナスの場合は ”-”& を付けて表示させる

方法により簡単さとデメリットが出てきたりしますので、使いたい場面に合わせて適切な方法を選びましょう。