時間の合計が「1:00」になる・24 時間を超えると合わない原因と直し方
「勤務時間を SUM したら合計が 1:00 になった…25 時間のはずなのに」
「セルの表示形式を『時刻』に変えてみても、全然合わない」
「時間の足し算がおかしい、原因が分からない」
そんなときにまず疑いたいのは 24 時間で表示が繰り上がる書式設定 です。この場合、SUM の計算自体は合っています。
この記事では、合計セルの表示形式を [h]:mm に変えるだけで 25:00 と正しく表示される直し方と、なぜそうなるかの仕組み、TEXT 関数での文字列化、勤怠管理でよくある続きの落とし穴を解説します。
💡 関連記事:
- 日付が数字(45678など)になる ← 姉妹記事。日付も時間も「シリアル値と表示形式」の 2 段構えで動いています。日付版の仕組みはこちら
- 数式が計算されない・=SUM がそのまま表示される ←
=SUM(...)が 文字のまま計算されない ときはこちら(本記事とは症状が違います)- SUMIF / SUMIFS が動かない6つの原因と解決法 ← 時間でなく数値の合計が 0 になる・条件付き集計が合わない ときはこちら
まずは症状で確認(あなたも同じ?)
次のどれかに当てはまるかどうか確認してください。
8:00 + 9:30 + 7:30の SUM が1:00になっている- 勤務時間の合計が、明らかに小さい数字になっている
- 表示形式を「時刻」に変えても直らない
この記事で扱うのは、h:mm 書式が 24 時間を 1 日として繰り上げる ケースです。
なお、合計が小さくなる原因は繰り上がりとは限りません。時刻が 文字列 として入っているセルは SUM に足されないため、合計そのものが小さくなります(8:00 が文字列なら 8:00 + 9:30 + 7:30 の合計は 17:00、3 つとも文字列なら 0:00 です)。合計セルを [h]:mm にしても数字が変わらないときは、合計している範囲を =COUNT(B2:B4) のように数えてみてください。COUNT が数えるのは数値が入ったセルで、時刻も数値なので数に入ります(空欄は数えません)。返ってきた数が 時間を入力したはずのセルの数(この例なら 3)より少なければ、そのうちのどれかが数値として扱われていません。時刻が文字列として入っているときの典型的な症状です。

📌 結論(読み急ぐ人向け) 合計セルの表示形式を
[h]:mmに変えるだけで25:00と正しく表示されます。なぜそうなるかは次の章で説明します。
なぜ 25:00 が 1:00 になるのか(時間の内部データと 24 時間の壁)
Excel は時間を 「1 日 = 1」という小数 で内部に持っています。12:00 は 0.5、24:00(翌日の 0:00)は 1.0、8:00 は 8/24 ≒ 0.333… です。
これは姉妹記事の日付版で説明している「シリアル値」と同じ仕組みです。日付が 1900 年 1 月 1 日からの通し番号なら、時間はその小数部分です。
8:00 + 9:30 + 7:30 = 25:00 は、内部では次の計算になります。
8/24 + 9.5/24 + 7.5/24 = 25/24 = 1.0416...
この 1.0416... という数字を、既定の書式 h:mm で表示すると「1 日と 1 時間 0 分 → 1:00」として表示されます。24 時間で 1 日として繰り上げるのが h:mm のルールだからです。
SUM の計算は合っています。表示だけが読者の期待とズレています。
![同じ =SUM(B2:B4) を 2 通りの表示形式で並べた対比。上段は既定の h:mm で 1:00、中段は [h]:mm で 25:00 と表示され、表示形式を変えても内部データは同じで見た目だけが変わることが分かる。下段は表示形式ではなく数式を変えた例で、同じ合計に 24 を掛けた数値 25](/images/learn/time-sum-over-24-hours/02-serial-value.png)
📌 ポイント: SUM は間違っていません。表示形式が「24 時間で 1 日として繰り上げる」設定になっているだけです。書式を変えるだけで直ります。
直し方:表示形式を [h]:mm にするだけ(1 分)
操作手順は次の 3 ステップです。
- 合計セル(
1:00と表示されているセル)を選ぶ - 表示形式のダイアログを開いて「ユーザー定義」を選ぶ
- 種類の欄に
[h]:mmと入力して確定する
表示形式のダイアログを開くショートカット: Windows は Ctrl+1、Mac は Cmd+1 で開けることが多いです(バージョンによって場所が少し異なります)。
[h]:mm を入力すると、繰り上がっていた時間がそのまま 25:00 と表示されるようになります。数式も元データも変えていません。
![B5 の表示形式を [h]:mm にした結果、同じ =SUM(B2:B4) が 25:00 と正しく表示されている。数式と元データは画像 01 から変わっていない](/images/learn/time-sum-over-24-hours/03-fixed.png)
📌 ポイント: 元データも数式も変えていません。表示形式を
[h]:mmに変えるだけ。1 セル 1 分で終わります。
[h]:mm の [] は「繰り上げない」の合図(派生パターン)
[] で囲まれた単位は 「そこで繰り上げない」 という意味です。同じルールで書ける派生パターンを紹介します。
| 表示形式 | 意味 | 25 時間 30 分の表示例 |
|---|---|---|
h:mm | 24 時間で 1 日として繰り上げる(既定) | 1:30(=1 日と 1:30) |
[h]:mm | 時間を繰り上げず累計で表示する | 25:30 |
[m] | 全部を分に直して表示する | 1530 |
[m]:ss | 分+秒で、60 分で繰り上げない | 1530:00 |
[h]:mm:ss | 時+分+秒で、24 時間で繰り上げない | 25:30:00 |
TEXT 関数に同じ書式コードを渡すと、次の文字列が返ります。
=TEXT(SUM(TIME(8,0,0),TIME(9,30,0),TIME(7,30,0)),"[m]")→"1500"(25 時間 = 1500 分)=TEXT(SUM(TIME(1,30,45),TIME(0,45,20)),"[m]:ss")→"136:05"(1:30:45 + 0:45:20 = 2:16:05 → 分換算で 136 分 5 秒)=TEXT(SUM(TIME(8,0,0),TIME(9,30,0),TIME(7,30,0)),"[h]:mm:ss")→"25:00:00"
📌 ポイント:
[]を付けた単位は繰り上がりません。時間を累計で見たいときは[]を思い出してください。
文字列として埋め込みたいときは TEXT 関数
帳票・メール本文・別セルとの結合(&)で 文字列として 時間を書きたいときは、書式を当てたセルを参照するだけでは元のシリアル値(1.0416...)が結合されてしまいます。
TEXT 関数 を使うと書式コードを埋め込んだ文字列として出せます。
=TEXT(SUM(B2:B4),"[h]:mm")
=TEXT(SUM(B2:B4),"[m]")
="合計勤務時間: "&TEXT(SUM(B2:B4),"[h]:mm")&" 時間"
=TEXT(SUM(TIME(8,0,0),TIME(9,30,0),TIME(7,30,0)),"[h]:mm") は "25:00" を 文字列として 返します。
表示形式との違いを整理します。表示形式は「セルの見た目を変える」もので元データは変わりません。TEXT 関数は「書式を当てた結果を文字列として返す」ものです。
別セルと & でつないだら 1.0416... という数字が出た場合、それは日付が数字になる問題と同じ「シリアル値がむき出しで見える」現象の時間版です。
📌 ポイント: セル同士を
&でつなぐときはTEXTを経由します。表示形式は見た目、TEXTは文字列にする関数、と役割を分けて覚えてください。
勤怠・シフト管理でよくある続きの落とし穴
24 時間超えを直したあとに、よく踏みがちな落とし穴を 3 つだけ挙げます。
-
h:mmのまま印刷・PDF 出力している → 印刷・共有の前に、合計セルの表示形式が[h]:mmになっているか確認しましょう。 -
合計時間 × 時給の計算がおかしい → 時給計算は
[h]:mmの見た目ではなく元のシリアル値 × 24 で行います。=SUM(B2:B4)*24*時給のように、合計の数値に 24 を掛けてから時給を掛けます。たとえば時給 1000 円なら=SUM(B2:B4)*24*1000が25000(25 時間 × 1000 円)になります。 -
日をまたぐシフト(22:00 → 翌 6:00)で負の値になる → これは本記事のスコープ外です(24 時間超えでなく、翌日に切り替わる負の値問題)。心当たりがある場合は AI サポートで対話的に確認してください。
📌 ポイント: 「時給の掛け算は
[h]:mmの見た目ではなく元のシリアル値 × 24 で行う」—表示形式に釣られないことが肝心です。
まとめチェックリスト
- 合計セルの表示形式を
[h]:mmにしたら25:00と正しく表示されるか - 数式(
=SUM(...))は変えなくてよい(表示だけの問題) - Excel の時間は「1 日 = 1」の小数で保存されている(
24:00 = 1.0) -
[]で囲むとその単位で繰り上げない([h][m]いずれも同じルール) - 別セルと
&でつなぐときはTEXT(..., "[h]:mm")を経由する - 時給計算は表示形式でなく元のシリアル値 × 24 で行う
- 姉妹記事「日付が数字になる問題」と同じ「シリアル値と表示形式」の仕組み
よくある質問
Q. [h]:mm を入力したらエラーが出て設定できません
種類の欄に前の書式が残っていることがあります。いったん消してから [h]:mm を入力し直してください。
入力は 半角 の [、h、]、:、m、m で揃えるのが確実です。全角の記号([h] や 【h】 など)は、そのまま通ることもあれば、エラーが出ないまま 【1】:00 のような意図しない表示になる こともあります。エラーが出なくても表示が思ったとおりにならないときは、半角で入力し直すのが早い切り分けです。
Q. Mac でも同じ書き方でできますか?
考え方は同じです。表示形式のダイアログは Cmd+1 で開けることが多く(バージョンによって場所が少し異なります)、書式コード [h]:mm はプラットフォーム共通で動きます。
Q. 表示形式のダイアログが見つかりません
TEXT 関数を使う方法(=TEXT(SUM(...),"[h]:mm"))なら、セルの表示形式に触れずに 25:00 という文字列を作れます。表示形式のダイアログの場所や項目名はバージョンによって少し異なるので、見つからないときはこちらのほうが早いことがあります。
Q. 合計セルの数字は正しいのに、他のセルと & でつないだら 1.0416... と数字が出ます
表示形式は「そのセルの見た目」だけを変えるものです。他のセルと & でつなぐときは TEXT(..., "[h]:mm") を経由してください(本記事「TEXT 関数」の章を参照)。日付で同じ現象が起きたときは日付が数字(45678など)になるもあわせてご覧ください。
Q. [h]:mm は 25 時間まで?100 時間でも動きますか?
[] は「繰り上げない」の合図ですので、実用上は時間数を気にする必要はありません。=TEXT(100/24,"[h]:mm") は "100:00"、=TEXT(1000/24,"[h]:mm") は "1000:00" を返します。
Q. 日をまたぐシフト(22:00 〜 翌 6:00)が負の値になります
これは本記事とは別問題です(「24 時間超えの表示」ではなく「翌日に切り替わる負の値問題」)。本記事のスコープ外となります。AI サポートで対話的に原因を切り分けてみてください。
Q. 時給を掛けたら金額が小さくなりました
[h]:mm は見た目を変えるだけで、内部データは 1.0416...(1 日単位)のままです。時給計算は =SUM(...)*24*時給 のように元のシリアル値を 24 倍してから掛けてください(本記事「勤怠の落とし穴」の章を参照)。
Q. それでも直りません
記事の手順を試しても解決しない場合、特定のデータ形式だけで起きるレアケースかもしれません。AI サポートで対話的に原因を切り分けてみてください。
次に読む
日付が数字(45678など)になる・直らないときの2つの原因と直し方
セルの日付が「45678」のような数字になる、書式を変えても日付に戻らない…原因は2系統です。表示形式が崩れているだけか、中身が文字列の日付か。シリアル値の仕組みから、書式設定・DATEVALUE・区切り位置で本物の日付に直す方法まで初心者向けにまとめました。
数式が計算されない・=SUMがそのまま表示される【3つの原因で切り分け】
「=SUM」が文字のまま表示される、緑の三角が消えない、一部だけ計算されない、シート全体の数式が急に表示される…そんなときの原因は主に4パターン。セルが文字列書式・先頭にアポストロフィ・手動計算モード・「数式の表示」モードを症状から切り分けて直す方法を、初心者向けにまとめました。
SUMIF / SUMIFS が動かない6つの原因と解決法【上から順に試せばOK】
SUMIF・SUMIFSの結果が0になる、#VALUE!が出る、期待値と違う…そんなときの原因を6パターン解説。合計範囲の型・余白・範囲サイズ・比較演算子・ワイルドカード・日付の順で上から確認すれば、原因を絞り込めます。SUMIFとSUMIFSの違いも整理。