Excelで勤務時間や作業時間の合計を計算した際、合計が24時間を超えると「1:00(25時間の場合)」や「5:00(29時間の場合)」のように、表示がリセットされてしまうことがあります。これはExcelのバグではなく、時刻を「24時間で1サイクル」として扱う表示形式の仕様によるものです。
Excel内部では、24時間を数値の「1」として管理しているため、標準の時刻形式では24時間を超えた分(余り)のみが表示されます。累積時間を正しく表示させるには、表示形式に「[ ](大括弧)」を用いた特殊な書式コードを設定する必要があります。本記事では、24時間を超える合計時間を正しく表示させるための手順と、その背後にあるシリアル値の論理構造を詳説します。
結論:24時間を超える合計時間を表示する3つの技術手順
- ユーザー定義で「[h]:mm」を設定する:時間を大括弧で囲むことで、24時間を繰り上げず累積表示させます。
- 分・秒の累積には「[m]」や「[s]」を使用する:60分や60秒を超えて数値を累積したい場合のコードを適用します。
- シリアル値としての実体を確認する:見た目上の「時刻」と、計算上の「数値」の整合性を論理的に把握します。
ADVERTISEMENT
目次
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」のように累積して表示させるための標準的な修正手順です。
- 合計時間が表示されているセルを選択します。
- Ctrl + 1 を押して「セルの書式設定」を開きます。
- 「表示形式」タブの 「ユーザー定義」 を選択します。
- 「種類」の入力ボックスに
[h]:mmと入力します。 - 「OK」をクリックします。これで24時間を超える数値が表示されます。
:mm format code selected in the Custom category]
技術解説: [h] のように大括弧で囲む記法は、Excelに対して「24時間で次の単位(日)へ繰り上げるな」という論理命令を下します。これにより、シリアル値が $1.0$ を超えても、すべて「時間」の単位で描画されるようになります。
3. 手順②:分・秒を累積させる応用設定([m] / [s])
時間単位ではなく、「合計500分」や「合計10,000秒」といった特定の単位で累積表示したい場合の手順です。
- 分単位で累積する場合:書式コードに
[m]:ssと入力します。これにより、1時間を超えても「65:30」のように分で表示されます。 - 秒単位で累積する場合:書式コードに
[s]と入力します。これにより、すべての時間を秒数に換算して表示します。
ADVERTISEMENT
4. 手順③:計算結果が「マイナス」になる際のエラー対策
時刻計算において、計算結果が負の値(不足時間など)になると、セルが「#######」と表示されてしまうことがあります。
- Excelは標準設定(1900年日付システム)では、マイナスの時刻を表示できません。
- この場合は、「ファイル」>「オプション」>「詳細設定」を開きます。
- 「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など)は変わらないため、「時間 × 24 × 時給」のように、24を掛けてシリアル値を整数に直す処理が必要です。正しいシリアル値の知識に基づいたデータ管理を行ってください。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Outlook】メールの受信が数分遅れる!リアルタイムで届かない時の同期設定と送受信グループ設定
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Outlook】メール本文が「文字化け」して読めない!エンコード設定の変更と修復手順
- 【Outlook】「メール送信を5分遅らせる」設定!誤送信を防ぐ最強のディレイ機能
- 【Teams】画面が真っ白で起動しない!Windows起動時の自動実行を解除して修復する方法
- 【Outlook】添付ファイルが「Winmail.dat」に化ける!受信側が困らない送信設定
- 【Excel】可視セルのみコピー!非表示の行を含めない「Alt+;」の基本操作
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【Outlook】メールを「時間指定で送信」する!深夜に書いたメールを翌朝9時に届ける予約設定
