• 公開日:

エクセルで日付をまたぐときの時間の計算(引き算)方法

「=A1-B1」のような基本的な数式を使って日付をまたぐ時間の計算をした場合、結果に「#####」とエラーが表示されてしまいます。

この記事では、時間データや数式を工夫して、エクセルで日付をまたぐときの時間の計算(引き算)方法をご紹介します。

「日付をまたぐ入室時間と退出時間を使って滞在時間を求めたい」などの場合にご活用ください。

エクセルで日付をまたぐ時間の計算(引き算)はできる?

日付をまたぐ時間の計算(引き算)をした場合、結果がエラーになってしまうことがあります。

試しに、以下で日付をまたぐ時間の計算をしてみます。

日付をまたいで時間差を計算する

今回は上記画像から、時間データが入力されているC2セルとE2セルを数式で参照し、時間の計算をします。

F2セル「=E2-C2」を入力し、退出日時「2023/10/2 6:00」から入室日時「2023/10/1 20:00」を引いて、滞在時間を求めます。

正しく計算ができなかった

F2セルに入力した数式が「#########」に変換されてしまい、正しく計算結果が表示することができませんでした。

このように、日付をまたぐ時間の引き算をしようとすると、計算結果がマイナス(負の値)になってしまい、エラーが表示されることがあります。

日付をまたぐ時間の計算をする場合には、データや数式を工夫することが必要です。

詳しい方法は以下でご紹介します。

エクセルで日付をまたぐときの時間の計算(引き算)方法

日付も含めてデータを入力し、日付をまたぐ時間の計算(引き算)をする方法をご紹介します。

日付を含めて時間データを作成する

今回は退出日時「2023/10/2 6:00」から入室日時「2023/10/1 20:00」を引いて、滞在時間を求めます。

まず、任意のセルに日付を含めて時間データを作成します。

B2セルに入室日時「2023/10/1 20:00」、②D2セルに退出日時「2023/10/2 6:00」をそれぞれ入力します。

数式を入力する

入室日時と退出日時を作成できました。次に、数式を入力して滞在時間を求めます。

E2セルに「=D2-B2」を入力し、Enterを押します。

正しい計算結果が表示された

入力した数式によって、E2セルに「10:00」と正しい計算結果が表示されました。

日付をまたぐ時間の計算(引き算)をすることができました。

数式に「+1」を挿入して日付をまたぐ時間の計算(引き算)をする方法

数式に日数差分「+1」を挿入することで、日付をまたぐ時間の計算(引き算)をする方法をご紹介します。

「+1」を挿入して数式を入力する

今回は上記画像から、時間データが入力されているC2セルとE2セルを数式で参照し、日数差分「+1」を加えることで時間の計算をします。

F2セルに「=E2-C2+1」を入力し、Enterを押します。

エクセルでは「24時間(1日)」を「1」に置き換えるため、数式に「+1」を挿入することで計算結果に「24時間」が加算され、マイナス(負の値)になるのを防ぐことができます。

また、日数差の分だけ「+〇」の部分を変更することで、日付を2日以上またぐ時間の計算を行うことができます。

例えば、「10/1」と「10/5」の時間を使って計算する場合には、日数差「4日」分の「+4」を数式に挿入します。

数式に「+1」を挿入して日付をまたぐ時間を計算することができた

入力した数式によって、F2セルに「10:00」と正しい計算結果が表示されました。

数式に日数差分「+1」を挿入することで、日付をまたぐ時間の計算(引き算)をすることができました。

IF関数を使って日付をまたぐ時間の計算(引き算)をする方法

上記セクションでご説明した数式をオートフィルで他のデータにも適用すると、必要のない時間データにも「+1(24時間)」が加算されて結果が表示されてしまうことがあります。

数式に「+1」を挿入して日付をまたぐ時間の計算をしている

上記画像のF2セルには「=E2-C2+1」を入力することで、日付をまたぐ時間の計算をし、「10:00」という滞在時間を求めました。

試しに数式をオートフィルでコピーし、3行目、4行目のデータにも適用をしてみます。

必要のないデータにも「+1」が適用されてしまった

F3セル、F4セルにも数式が適用され、それぞれの時間を計算した結果が表示されました。

しかし本来であれば、「2023/10/1 18:00」と「2023/10/1 12:00」の差である「6:00」がF3セルに表示されるはずが、「30:00」という時間に置き換わっています。

これは、数式の「+1」が影響し、正しい「6:00」という時間に「24時間」が足されてしまっているからです。

このように、「=E2-C2+1」のような数式をオートフィルで他のデータにも適用してしまうと、必要のないデータにまで「24時間」が加算され、間違った時間を表示してしまいます。

オートフィルで数式をコピーする場合には、IF関数を数式に組み込むことで、データに応じて「24時間」を加算するかどうかを自動で判断し、正しい計算結果を表示させることができます。

詳しい方法は以下でご紹介します。

If関数を使って数式を入力する

F2セルに「=E2-C2+IF(E2-C2<0,1,0)」を入力し、Enterを押します。

「=E2-C2+」に続いてIF関数を入力することで、計算結果に「24時間」を加算するかどうかを自動で判断できるようになります。

IF関数の書式は「=IF(論理式,値が真の場合,[値が偽の場合])」です。

論理式に、「E2-C2<0」を入力することで、計算結果がマイナス(負の値)の場合を条件にできます。

そして値が真の場合に「1」、値が偽の場合に「0」をそれぞれ入力することで、日付をまたぐ時間の計算の場合には「24時間」を加算し、通常の時間の計算の場合にはそのまま計算結果を表示させることができます。

IF関数の詳細は、以下の記事でご紹介しています。

ExcelのIF関数の使い方|論理式の条件(IF文)によって処理を分岐

入力した数式をオートフィルでコピーする

入力した数式によって、F2セルに「10:00」と正しい計算結果が表示されました。

次に、数式をオートフィルでコピーして他のデータにも適用します。F2セル右下のフィルハンドルを下にドラッグします。

それぞれに適当な数式が適用され、正しい計算結果が表示された

F3セル、F4セルにも数式が適用され、それぞれの時間を計算した結果が表示されました。

先ほどは計算結果が間違っていたF3セルにも、正しい数式が適用されたことにより「6:00」という時間が表示されました。

IF関数を使ってデータに応じて正しい数式を適用し、時間の計算(引き算)をすることができました。

24時間よりも大きい計算結果を表示させる方法

日付を2日以上またぐなどして24時間を超える計算結果になる場合、正しい時間が表示されないことがあります。

日付を2日以上またぐ時間を計算している

上記画像のD2セルには「=C2-B2」を入力することで、日付を2日またぐ時間の計算をし、「34:00」という滞在時間を求めようとしました。

しかし、「10:00」と間違った時間が表示されてしまいました。

このように計算結果が24時間を超えてしまい、間違ったデータが表示される場合には、表示形式を変更することで正しい計算結果に直すことができます。

詳しい方法は以下でご紹介します。

セルの書式設定を開く

今回はD2セルの「10:00」を正しい計算結果である「34:00」に変換します。

間違った計算結果(例:D2セル)、②ホームタブの順に選択し、③数値の書式の「v」ボタンを押します。「その他の表示形式」を選択します。

表示形式を指定する

「セルの書式設定」ダイアログボックスが表示されました。

ユーザー定義を選択し、②種類に「[h]:mm」を入力します。

「h」を「[]」で囲むことで、24時間を超える時間を表示することができる形式になります。

OKボタンを押します。

24時間を超える正しい計算結果が表示された

表示形式が変更され、D2セルの「10:00」が「34:00」に変換されました。

表示形式を変更することにより、24時間を超える計算結果を正しく表示させることができました。