スプレッドシートで勤務時間や作業の所要時間を計算しようとしたとき、「退勤時間から出勤時間を引き算するだけなのに、なぜかエラーになったり、おかしな数値が表示されて計算が合わない」といった現象が起きることがあります。これは多くの場合、数式そのものが間違っているわけではなく、スプレッドシート特有の「時間の裏側のルール(シリアル値)」や「表示形式」への理解が足りないために発生する問題です。特に深夜をまたぐ時間計算や、24時間を超える集計、時給の掛け算などはつまずきやすいポイントです。この記事では、時間計算の基礎となるシリアル値の仕組みから、マイナス時間の処理、時給計算への変換手順について整理して解説します。
記事のポイント
- 時間計算の裏側で動いている「シリアル値」の仕組みについて
- 基本の引き算と、表示がおかしくなったときの直し方
- 24時間を超える合計時間を正しく表示するカスタム表示形式の設定方法
- 時給計算をミスなく行うための十進法(〜時間、〜分)への変換テクニック
- 深夜をまたぐマイナスの時間計算をスマートに処理する関数の使い方
スプレッドシートにおける時間データ(シリアル値)の仕組みと基本の引き算

スプレッドシートで時間の計算をマスターするための第一歩は、関数を暗記することではありません。「スプレッドシートが時間をどのように認識しているか」という裏側の仕組みを知ることです。
時間の正体は「1日=1.0」とするシリアル値
私たちがセルに「9:00」や「18:00」と入力したとき、スプレッドシートはそれを文字ではなく、特別な数値として裏側で保存しています。これを「シリアル値」と呼びます。
ルールはとてもシンプルで、「24時間を『1.0』とする」というものです。つまり、12時間はその半分の「0.5」、6時間は「0.25」という小数になります。このシリアル値の仕組みがあるからこそ、時間を足したり引いたりといった計算が可能になるのです。
「24時間超え」の合計時間を正しく表示するカスタム表示形式の設定

毎日少しずつ残業して、月末にSUM関数で合計を出そうとしたら、明らかに少ない時間しか表示されない…。そんな時は、表示形式の落とし穴にハマっている証拠です。
時計の表示から「経過時間」の表示へ変更する
スプレッドシートのデフォルトの時間表示は、時計と同じように「24時間を超えるとゼロにリセットされる」という仕様になっています。25時間の合計が出ても、「1:00(午前1時)」として表示されてしまうのです。
これを解決するには、セルを選択して「表示形式」>「数字」>「カスタム数値形式」を開き、入力欄に半角で「[h]:mm」と入力して適用します。この大カッコで囲まれた「[h]」が、24時間でリセットせずに時間を累積して表示してね、という魔法の命令になります。
時間を十進法の数値(8.5時間、510分)に変換する掛け算テクニック

アルバイトの給与計算などで、算出した勤務時間に対して時給を掛け算する場面も多いですよね。ここでそのまま掛け算をしてしまうと、全く見当違いな金額になってしまいます。
シリアル値に「24」を掛けて普通の数値に戻す
「08:30」という時間データは、裏側では「0.354…」という小さなシリアル値になっているため、ここに時給を掛けても正しく計算されません。時間データに24を掛け算することで、初めて私たちが使い慣れた「8.5(時間)」という十進法の数値に変換することができます。
変換した後は、必ずセルの表示形式を「数値」に直すことを忘れないでくださいね。これで時給計算も完璧です。