- 公開日:
エクセルで日付をまたぐときの時間の計算(引き算)方法
「=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」を挿入することで、日付をまたぐ時間の計算(引き算)をする方法をご紹介します。
今回は上記画像から、時間データが入力されているC2セルとE2セルを数式で参照し、日数差分「+1」を加えることで時間の計算をします。
F2セルに「=E2-C2+1」を入力し、Enterを押します。
エクセルでは「24時間(1日)」を「1」に置き換えるため、数式に「+1」を挿入することで計算結果に「24時間」が加算され、マイナス(負の値)になるのを防ぐことができます。
また、日数差の分だけ「+〇」の部分を変更することで、日付を2日以上またぐ時間の計算を行うことができます。
例えば、「10/1」と「10/5」の時間を使って計算する場合には、日数差「4日」分の「+4」を数式に挿入します。
入力した数式によって、F2セルに「10:00」と正しい計算結果が表示されました。
数式に日数差分「+1」を挿入することで、日付をまたぐ時間の計算(引き算)をすることができました。
IF関数を使って日付をまたぐ時間の計算(引き算)をする方法
上記セクションでご説明した数式をオートフィルで他のデータにも適用すると、必要のない時間データにも「+1(24時間)」が加算されて結果が表示されてしまうことがあります。
上記画像のF2セルには「=E2-C2+1」を入力することで、日付をまたぐ時間の計算をし、「10:00」という滞在時間を求めました。
試しに数式をオートフィルでコピーし、3行目、4行目のデータにも適用をしてみます。
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時間」を加算するかどうかを自動で判断し、正しい計算結果を表示させることができます。
詳しい方法は以下でご紹介します。
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時間を超える計算結果になる場合、正しい時間が表示されないことがあります。
上記画像のD2セルには「=C2-B2」を入力することで、日付を2日またぐ時間の計算をし、「34:00」という滞在時間を求めようとしました。
しかし、「10:00」と間違った時間が表示されてしまいました。
このように計算結果が24時間を超えてしまい、間違ったデータが表示される場合には、表示形式を変更することで正しい計算結果に直すことができます。
詳しい方法は以下でご紹介します。
今回はD2セルの「10:00」を正しい計算結果である「34:00」に変換します。
①間違った計算結果(例:D2セル)、②ホームタブの順に選択し、③数値の書式の「v」ボタンを押します。④「その他の表示形式」を選択します。
「セルの書式設定」ダイアログボックスが表示されました。
①ユーザー定義を選択し、②種類に「[h]:mm」を入力します。
「h」を「[]」で囲むことで、24時間を超える時間を表示することができる形式になります。
③OKボタンを押します。
表示形式が変更され、D2セルの「10:00」が「34:00」に変換されました。
表示形式を変更することにより、24時間を超える計算結果を正しく表示させることができました。