Courses
Excel は、時間を 1 日の分数として保存します。つまり、見た目どおりの 8:30 AM を保存しているのではなく、実際には 0.35417(8.5/24)として保存しています。これは 1 日の 35.4% と考えることができます。
この記事では、次のような重要なシナリオを取り上げます。
- 時間差: 同一日の開始時刻と終了時刻の差を計算します。
- 経過時間: 複数日にわたる期間を、完全なタイムスタンプで測定します。
- 日付間の時間: 2 つの日付の間隔を、日・時間・分のいずれかで計算します。
- 合計時間: 24 時間でリセットされないように、複数の時間エントリを合計します。
- 平均時間: 複数の時間エントリの平均を計算します。
Excel で時間差を計算する方法
開始時刻と終了時刻の差(終了時刻 − 開始時刻)を計算する必要が出てくることは、きっとあるはずです。12 時間制でも 24 時間制でも、Excel はどちらも小数として扱います。
計算して小数で返すこと自体は問題ではありません。読みやすく表示することが重要で、そこで書式設定が役に立ちます。
次の例を見てください。

ここでは、C2 セルは既定で 0.354167(8.5/24)を表示します。この数値は正しく、8 時間 30 分を 1 日の分数で表しています。可読性を高めるには、ユーザー定義の [h]:mm 書式を適用します。
正しい書式を適用する手順は次のとおりです。
-
C2 セルを選択します。
-
Ctrl + 1を押して、セルの書式設定 ダイアログを開きます。 -
ユーザー定義 をクリックします。
-
種類 フィールドに
[h]:mmと入力するか、下にスクロールして[h]:mm:ssを選択し、OK をクリックします。

C2 セルは 8:30:00 と表示されます。
ここで [h]:mm を h:mm ではなく使用した理由は、角かっこがないと 24 を超えた時間が 0 に戻ってしまうためです。26 時間の所要時間が 26:00 ではなく 2:00 と表示されます。角かっこは、時計の時針ではなく、合計の時間数を表示するように Excel に指示します。
Excel は 12 時間制(AM/PM)と 24 時間制の両方をサポートします。9:00 AM は 09:00 と同じで、9:00 PM は 21:00 と同じです。最も重要なのは、計算が意図どおりに動作するように、セルに正しい書式を使用することです。
Excel で経過時間を計算する方法
経過時間と時間差は、似ているようで異なる概念です。
先ほど述べた時間差が同一日の 2 つの時間帯の差を計算するのに対し、経過時間は複数日にまたがり、正確に計算するには日付と時刻の完全な値(タイムスタンプ)が必要です。
数式は次のとおりです。
= enddate_timestamp - startdate_timestamp
どちらのセルにも完全な日付と時刻が含まれている必要があります。たとえば、3/1/2026 14:00 と 3/3/2026 9:30 のようにします。

C2 セルを [h]:mm に書式設定すると、結果は 43:30 になります。これは経過時間が 43 時間 30 分という意味です。

これらの計算を行う際、セルが ######## と表示されたり負の値になったりするエラーが発生することがあります。こうしたエラーの解決方法は後ほど説明します。
Excel で日付間の時間を計算する方法
日付差の計算という概念は、時間や分とは少し異なります。Excel は日付を連続する通し番号として保存しており(1900 年 1 月 1 日は 1、1900 年 1 月 2 日は 2)、日付同士を簡単に減算して間隔を求められます。
日付間の日数を計算するには、終了日から開始日を単純に引きます (= end_date - start_date)。
具体例は次のとおりです。

結果は 9 日になりますが、セルは数値として書式設定してください。そうしないと、Excel は日数ではなく日付として表示してしまいます。
日数が求まれば、次はそれを乗算して時間数や分数に簡単に変換できます。
-
日付間の時間数
= (End_Date - Start_Date) * 24 -
日付間の分数
= (End_Date - Start_Date) * 24 * 60
次の例を見てください。

時間数(2 つの日付の間の合計時間)= 216 時間
分数(2 つの日付の間の合計分)= 12,960
Excel には、特定の単位(日、月、年)で差を計算できる DATEDIF() 関数があります。計算のロジックは次のとおりです。
= DATEDIF(Start_Date, End_Date, "d") → Total difference in days
= DATEDIF(Start_Date, End_Date, "m") → Total difference in months
= DATEDIF(Start_Date, End_Date, "y") → Total difference in years
Excel の基本を理解したい場合は、Excel Fundamentals トラックをご覧ください。
Excel で合計時間を計算する方法
Excel で時間エントリの一覧を合計する方法は、他のデータ型を合計する場合と同じです。
= SUM(C2:C15)
ただし、合計が 24 時間を超えると 0 に戻ってしまう点が問題になります。これを解決するには、この記事の最初から説明しているとおり、合計セルを [h]:mm に書式設定します。

合計セル(B7)に書式設定をしない場合、結果は 16:30 になりますが、書式設定すると 40:30 になります。

大きな合計時間を扱う場合でも、[h]:mm 書式は上限なく合計時間を表示できます。また、レポート用途では、合計を小数の時間に変換したい場合もあるでしょう。
= SUM(B2:B6) * 24
これにより 40:00 ではなく 40.0 が返され、掛け算・割り算やビジュアルでの利用など、後続の計算で扱いやすい通常の数値になります。
Excel で平均時間を計算する方法
Excel は、AVERAGE() 関数を使って他の数値と同様に平均時間を計算します。ただし、書式設定の問題により、正しい結果が見えないことがあります。
ロジックは次のとおりです。
= AVERAGE(B2:B8)
結果セルの表示形式が「標準」のままだと、0.354 のように表示されます。h:mm の書式を適用すると 8:30 と表示されます。平均では 24 時間を超えることはまれなので、角かっこなしの h:mm を使用します。

B6 セルは最初 0.057292 と表示されるかもしれませんが、h:mm に書式設定すると、結果は 1:22:30(1 時間 22 分 30 秒)になります。

経過時間のセクションで説明したとおり、この状況でも同じ [h]:mm の書式設定が有効です。
データセットに空白セルが含まれている場合、Excel は平均を計算する際に自動的に無視します。たとえば 7 行のデータで 2 つ空白があれば、Excel は 5 と見なします。
一方、セルに 0 が入っている場合はカウントされ、結果に影響する可能性があります。その場合は AVERAGEIF() 関数を使用します。特定の条件(ある値より大きい/小さい/等しい行の平均)で平均を求めたい場合にも有効です。
= AVERAGEIF(A2:A10, “>0”)
Excel で時間計算をするときのよくあるエラー
Excel で時間を計算するときに起こりがちなエラーがいくつかあります。主なものと、その対処法を紹介します。
負の時間値や #######
######## は、列の幅が狭く結果を表示できないことを意味します。列を広げれば解決します。一方、負の値は、開始と終了のセルが入れ替わっているか、日付を含むべき計算(夜間をまたぐ計算)で日付が欠けている場合に発生します。
次の式で修正できます。
= IF(B2 < A2, B2 + 1 - A2, B2 - A2)
仕組みはこうです。開始時刻が 6:00 PM、終了時刻が 2:00 AM のとき、B2 < A2 は終了時刻が開始時刻より小さいかどうかを確認し、真であれば 1 日(1)を加算して日付越えを補正します。そうでなければ通常どおり減算します。
書式設定の誤り
合計が期待より小さい、または正しくないように見える場合は、前述のとおり正しい書式([h]:mm)を使用して解決できます。
テキストと時刻値の取り違え
時刻をテキストとして入力すると(セル内で左揃えになっていたり、先頭にアポストロフィを付けて入力した場合など)、どんな計算も失敗します。= TIMEVALUE(A2) を使ってテキストを実際の時刻値に変換し、セルを h:mm に書式設定してください。
24 時間でのロールオーバーの混乱
SUM() の結果が小さな数に見える場合、多くは数式ではなく書式設定の問題です。合計セルに [h]:mm を適用すれば解決します。
Excel で時間計算を行う際のベストプラクティス
次のベストプラクティスをおすすめします。
-
数式が間違っていると決めつける前にセルの表示形式を確認する。時間計算の不具合の多くは表示の問題であり、計算ミスではありません。
-
合計や総計を計算するセルには
[h]:mmを使う。単一日の個々の時間エントリにはh:mmを使います。 -
時刻をテキストとして入力しない。8:30 と入力し、Excel に自動認識させます。先頭のアポストロフィや、時間データにテキストラベルを混在させることは避けてください。
-
日付越えの計算には日付も含める。時刻だけの値には「翌日」という概念がありません。
-
金額やレートの計算に使う前に小数の時間に変換する。時間値に 24 を掛けて通常の数値にし、それを掛け算や割り算に使います。
-
ワークシート全体で時間の表示形式を統一する。1 つの列で AM/PM と 24 時間表記が混在すると、将来的なデバッグの原因になります。
まとめ
Excel での時間計算は、時間が 1 日の分数であることを理解すれば難しくありません。
取り上げたシナリオ(時間差、経過時間、複数日、週間合計、平均)は、結局のところ同じ基本操作――減算、加算、そして書式設定――に帰着します。書式設定は多くのガイドが飛ばしがちなステップであり、混乱の元になりがちです。
さらに Excel を深めたい場合は、 Excel Fundamentals トラックは、関数、データ型、データセット操作まで体系的に学べる良質な学習パスです。
FAQs
なぜ Excel では減算後に時刻ではなく小数が表示されるのですか?
Excel は時間を 1 日の小数として保存しており、適切な書式 [h]:mm を適用すると正しく表示されます。
`[h]:mm` と `h:mm` の違いは何ですか?
[h]:mm は上限なしで合計時間を表示し、h:mm は 24 時間を超えると 0 に戻って表示します。
Excel における時間差と経過時間の違いは何ですか?
時間差は同一日の 2 つの時刻の間隔であり、経過時間は複数日にわたる 2 つのタイムスタンプ間の差(日時を含む)を指します。
2 つの日付の間の合計時間(時間数)を取得するには?
=(End_Date-Start_Date) * 24 を使用します。合計時間が通常の小数で返されます。
日付をまたぐ時間計算はどう扱えばよいですか?
=IF(B2<A2, B2+1-A2, B2-A2) を使用します。 +1 は日付越えのギャップを埋めるために 1 日を加算します。