【Excel】時刻入力で「24:00」を超えるとリセットされる!合計時間を正しく出す[h]:mm書式

【Excel】時刻入力で「24:00」を超えるとリセットされる!合計時間を正しく出す[h]:mm書式
🛡️ 超解決

Excelで勤務時間や作業時間の合計を計算した際、合計が24時間を超えると「1:00(25時間の場合)」や「5:00(29時間の場合)」のように、表示がリセットされてしまうことがあります。これはExcelのバグではなく、時刻を「24時間で1サイクル」として扱う表示形式の仕様によるものです。

Excel内部では、24時間を数値の「1」として管理しているため、標準の時刻形式では24時間を超えた分(余り)のみが表示されます。累積時間を正しく表示させるには、表示形式に「[ ](大括弧)」を用いた特殊な書式コードを設定する必要があります。本記事では、24時間を超える合計時間を正しく表示させるための手順と、その背後にあるシリアル値の論理構造を詳説します。

結論:24時間を超える合計時間を表示する3つの技術手順

  1. ユーザー定義で「[h]:mm」を設定する:時間を大括弧で囲むことで、24時間を繰り上げず累積表示させます。
  2. 分・秒の累積には「[m]」や「[s]」を使用する:60分や60秒を超えて数値を累積したい場合のコードを適用します。
  3. シリアル値としての実体を確認する:見た目上の「時刻」と、計算上の「数値」の整合性を論理的に把握します。

1. 時刻が「24時間でリセット」される技術的背景:シリアル値

Excelは日付や時刻を「シリアル値」という連続した数値で管理しています。この管理ロジックを理解することが、時刻計算の不整合を解く鍵となります。

シリアル値の論理構造

  • 1.0 = 24時間:Excelにおいて「1」という数値は「1日(24時間)」を意味します。
  • 時刻は小数点:例えば 12:00 は 0.5、6:00 は 0.25 として内部処理されます。
  • 標準形式の限界:h:mm という書式は「1日(24時間)の中の何時か」を表示する命令です。合計が 1.25(30時間)になった場合、1日分を切り捨てて 0.25(6:00)の部分だけを表示してしまいます。

2. 手順①:ユーザー定義書式「[h]:mm」の適用

24時間を超えても「25:00」「100:00」のように累積して表示させるための標準的な修正手順です。

  1. 合計時間が表示されているセルを選択します。
  2. Ctrl + 1 を押して「セルの書式設定」を開きます。
  3. 「表示形式」タブの 「ユーザー定義」 を選択します。
  4. 「種類」の入力ボックスに [h]:mm と入力します。
  5. 「OK」をクリックします。これで24時間を超える数値が表示されます。

:mm format code]

技術解説: [h] のように大括弧で囲む記法は、Excelに対して「24時間で次の単位(日)へ繰り上げるな」という論理命令を下します。これにより、シリアル値が 1.0 を超えても、すべて「時間」の単位で描画されるようになります。

3. 手順②:分・秒を累積させる応用設定([m] / [s])

時間単位ではなく、「合計500分」や「合計10,000秒」といった特定の単位で累積表示したい場合の手順です。

  • 分単位で累積する場合:書式コードに [m]:ss と入力します。これにより、1時間を超えても「65:30」のように分で表示されます。
  • 秒単位で累積する場合:書式コードに [s] と入力します。これにより、すべての時間を秒数に換算して表示します。

これらの設定は、動画編集のタイムコード管理や、精密な作業ログの集計において、単位を統一して把握するために非常に有効な技術です。

4. 手順③:計算結果が「マイナス」になる際のエラー対策

時刻計算において、計算結果が負の値(不足時間など)になると、セルが「#######」と表示されてしまうことがあります。

  1. Excelは標準設定(1900年日付システム)では、マイナスの時刻を表示できません。
  2. この場合は、「ファイル」>「オプション」>「詳細設定」を開きます。
  3. 「1904年から計算する」にチェックを入れることで、マイナスの時刻表示が可能になります。

※ただし、1904年設定への変更はブック内の既存の日付を4年分ズラしてしまうリスクがあるため、基本的には =IF(A1<B1, "-"&TEXT(B1-A1, "[h]:mm"), A1-B1) のように、テキスト関数でマイナス記号を付加して処理する論理構成が安全です。

5. 技術仕様:時刻表示形式のコード別挙動一覧表

書式コード シリアル値 1.25 (30h) の表示 論理的な意味
h:mm 6:00 24時間を超えると「日」に繰り上げ(余り表示)。
[h]:mm 30:00 時間を繰り上げずに累積して表示。
[m] 1800 時間分をすべて「分」に換算して表示。
d日 h:mm 1日 6:00 日数と時間を分けて表示。

まとめ:見た目の「時刻」と内部の「数値」を分離して管理する

Excelの時刻計算で合計がリセットされる現象は、Excelが持つ「シリアル値」という時間管理ロジックと、表示層における「h:mm」の定義が矛盾することから生じます。この不整合を解消するには、ユーザー定義書式において [h] という累積命令を使用することが、最も論理的で確実な解決策となります。

実務においては、単一の時刻(出勤時間など)には「h:mm」、時間の合計(総労働時間など)には「[h]:mm」を使い分ける運用を徹底してください。また、計算結果を他のセルで再利用する場合、表示形式を変えても内部の数値(1.25など)は変わらないため、そのまま時給計算等に用いると計算ミス(1.25を30時間ではなく1.25時間として計算してしまう等)の原因になります。表示形式はあくまで「見せ方」であることを理解し、正しいシリアル値の知識に基づいたデータ管理を行ってください。