• 作成日 : 2025年10月27日

スプレッドシートで時間計算を完璧にマスターするには?経過時間から24時間超の計算まで徹底解説

Googleスプレッドシートで勤怠管理や作業時間の集計を行う際、時間計算は避けて通れない重要なスキルです。単純な経過時間の計算から、休憩時間を考慮した実労働時間の算出、24時間を超える累計時間の表示まで、正しい方法を知らないと意図しない結果になることがあります。

本記事では、スプレッドシートでの時間計算について、基本的な経過時間の計算から応用的なマイナス時間の処理まで、実例を交えながら詳しく解説します。

スプレッドシートで基本的な経過時間を計算する方法は?

経過時間の計算は、終了時刻から開始時刻を引く単純な引き算で実現でき、表示形式を適切に設定することで時分秒での表示が可能になります。

時間計算の基本を理解することで、様々な応用計算の基礎が身につきます。

開始時刻と終了時刻から経過時間を求める

最も基本的な時間計算は、終了時刻から開始時刻を引くことです。例えば、A1セルに「9:00」、B1セルに「17:30」と入力し、C1セルに「=B1-A1」と入力すると、8時間30分の経過時間が計算されます。

重要なのは、スプレッドシートが時刻を内部的に数値として扱っていることです。1日(24時間)を1.0として、1時間は0.041667(1/24)、1分は0.000694(1/1440)として計算されます。この仕組みを理解しておくと、後の応用計算で役立ちます。

時刻の入力と表示形式の設定

時刻を正しく入力するには、コロン(:)を使用します。「9:00」「09:00」「9:00:00」などの形式で入力でき、スプレッドシートが自動的に時刻として認識します。表示形式は「表示形式」→「数値」→「時間」から選択でき、必要に応じてカスタマイズできます。

よく使用される表示形式
  • h:mm – 時分表示(8:30)
  • h:mm:ss – 時分秒表示(8:30:00)
  • [h]:mm – 24時間超対応(25:30)
  • h”時間”mm”分” – 日本語表記(8時間30分)
  • hh:mm AM/PM – 12時間制表示

日付をまたぐ時間計算

夜勤など日付をまたぐ勤務時間を計算する場合、特別な処理が必要です。開始時刻が終了時刻より大きい場合は、終了時刻に1(24時間)を加算します。

=IF(B1<A1, B1+1-A1, B1-A1)

この数式により、22:00から翌6:00までの勤務も正しく8時間と計算されます。

スプレッドシートで休憩時間を考慮した実労働時間を計算するには?

休憩時間を考慮した計算では、総労働時間から休憩時間を引く方法と、条件に応じて自動的に休憩時間を差し引く方法があり、労働基準法に準拠した正確な勤怠管理が可能になります。

実務で必要な休憩時間の処理を適切に行うことで、正確な労務管理を実現できます。

固定休憩時間の差し引き

最も単純な方法は、総労働時間から固定の休憩時間を引くことです。例えば、

1時間の休憩を考慮する場合:

=B1-A1-TIME(1,0,0)

TIME関数を使用することで、時間、分、秒を指定して時間値を作成できます。複数の休憩時間がある場合は、それぞれを引くか、合計してから引きます。

労働時間に応じた自動休憩時間の設定

労働基準法では、6時間超で45分以上、8時間超で1時間以上の休憩が必要です。

これを自動計算する数式:

=B1-A1-IF(B1-A1>TIME(8,0,0),TIME(1,0,0),IF(B1-A1>TIME(6,0,0),TIME(0,45,0),0))

この数式により、労働時間に応じて適切な休憩時間が自動的に差し引かれます。

複数の休憩時間の管理

実際の業務では、昼休みと小休憩など複数の休憩があることが一般的です。休憩開始時刻と終了時刻を記録し、それぞれの休憩時間を計算して合計する方法が確実です。

休憩管理の実装方法
  • 休憩1開始(D1)、休憩1終了(E1)
  • 休憩2開始(F1)、休憩2終了(G1)
  • 総休憩時間:=(E1-D1)+(G1-F1)
  • 実労働時間:=(B1-A1)-((E1-D1)+(G1-F1))

スプレッドシートで合計時間を時間単位の数値に変換するには?

時間を数値に変換することで、時給計算や統計処理が可能になり、24を掛けることで時間単位、1440を掛けることで分単位の数値を取得できます。

時間と数値の相互変換を理解することで、様々な計算処理が可能になります。

時間を10進数の時間に変換

時給計算などでは、「8:30」を「8.5」時間として扱う必要があります。

変換方法は単純で、時間値に24を掛けます。

=A1*24

8時間30分は8.5、7時間45分は7.75となります。ROUND関数と組み合わせて、必要な桁数に丸めることも可能です。

分単位での数値変換

作業時間を分単位で管理する場合は、1440(24×60)を掛けます。

=A1*1440

これにより、1時間30分は90(分)として計算されます。

数値から時間形式への逆変換

逆に、数値を時間形式に戻す場合は、24または1440で割ります。

時間から:=A1/24 分から:=A1/1440

変換後は表示形式を時間形式に設定する必要があります。

時給計算への応用

時間を数値に変換することで、正確な給与計算が可能になります。

=ROUND(A1*24*1000,0)

この例では、A1の時間に時給1000円を掛けて、円単位で丸めています。

スプレッドシートで24時間以上の累計時間を正しく表示するには?

24時間を超える時間を表示するには、カスタム表示形式で[h]:mmを使用し、角括弧で時間を囲むことで、25:30のような表示が可能になります。

月間の総労働時間など、24時間を超える集計で必須の設定です。

カスタム表示形式の設定方法

標準の時間表示では、25時間が「1:00」と表示されてしまいます。これを防ぐには、表示形式をカスタマイズします。対象セルを選択し、「表示形式」→「数値」→「カスタム数値形式」から「[h]:mm」と入力します。

利用可能な表示形式パターン
  • [h]:mm – 基本形(25:30)
  • [h]:mm:ss – 秒付き(25:30:45)
  • [h]”時間”mm”分” – 日本語表記(25時間30分)
  • [mm] – 分単位の累計(1530分)
  • [ss] – 秒単位の累計

月間労働時間の集計

月間の労働時間を集計する際は、SUM関数と組み合わせて使用します。

=SUM(C2:C32)

C列に各日の労働時間が入力されている場合、この数式で月間合計を計算し、[h]:mm形式で表示することで、170:30のような表示が可能です。

週単位での累計管理

週40時間超の判定は次のいずれかで正しく行います。

  • =IF(SUM(C2:C8) > 40/24, “超過”, “適正”)
  • または時間に換算して比較:=IF(SUM(C2:C8)*24 > 40, “超過”, “適正”)
    (C列が時間値の場合。表示は[h]:mm等を推奨)

40時間を超えた場合に警告を表示するなど、労務管理に活用できます。

スプレッドシートでマイナスの時間を計算・表示するには?

マイナス時間の表示には1904年日付システムの使用またはIF関数での条件分岐が必要で、時間の過不足管理や残業時間の相殺計算で重要な役割を果たします。

Sheetsは負の時間を標準の時間形式では表示できないため(####等)、IF+TEXTで文字列表示する、MODで1日を加算して正の値として扱う、あるいは開始・終了を日時で保持して差を取る、といった回避策を用います。

1904年日付システムの設定

Googleスプレッドシートには1904年日付システムはありません。負の時間は標準の時間形式では表示できないため、次のいずれかで回避します。

  • 文字列で表示:=IF(B1<A1,”-“&TEXT(A1-B1,”h:mm”),B1-A1)
  • 24時間で丸める(負値を1日加算):=MOD(B1-A1,1)
  • 日付も保持して差分を求め、表示形式を「数値→時間(Duration)」や[h]:mmにする。

IF関数を使用した回避方法

1904年システムを使用しない場合は、IF関数で処理します。

=IF(B1-A1<0,”-“&TEXT(ABS(B1-A1),”h:mm”),B1-A1)

マイナスの場合は文字列として表示し、プラスの場合は通常の時間として表示します。

時間の貸借管理

フレックスタイム制での時間管理など、時間の過不足を管理する場合

標準労働時間との差分計算: =A1-TIME(8,0,0)

累積過不足の管理には、別途数値として管理し、最後に時間形式に変換する方法が実用的です。

スプレッドシートの時間計算で役立つその他の関数は?

時間計算を効率化する関数として、NETWORKDAYS、WORKDAY、DATEDIF、HOUR、MINUTEなどがあり、これらを組み合わせることで複雑な勤怠管理も簡単に実現できます。

便利な関数を活用することで、時間計算の精度と効率が大幅に向上します。

営業日計算関数

NETWORKDAYS関数は、土日祝日を除いた営業日数を計算します。

=NETWORKDAYS(A1,B1,祝日範囲)

WORKDAY関数は、指定営業日後の日付を返します:

=WORKDAY(A1,10,祝日範囲)

これらは納期管理や勤務日数計算で活用できます。

時間要素の抽出関数

時刻から特定の要素を抽出する関数
  • HOUR(A1) – 時間を抽出(0-23)
  • MINUTE(A1) – 分を抽出(0-59)
  • SECOND(A1) – 秒を抽出(0-59)
  • WEEKDAY(A1) – 曜日を取得(1-7)
  • DAY(A1) – 日を取得

これらを組み合わせて、深夜手当の計算や曜日別の処理が可能です。

期間計算関数

DATEDIF関数は、2つの日付間の期間を計算します。

=DATEDIF(A1,B1,”D”) – 日数 =DATEDIF(A1,B1,”M”) – 月数 =DATEDIF(A1,B1,”Y”) – 年数

勤続年数や契約期間の計算に便利です。

便利な時間関数の組み合わせ

NOW()とTODAY()を活用した動的な計算

経過時間のリアルタイム表示: =NOW()-A1

本日の残業時間: =IF(NOW()-TODAY()-TIME(9,0,0)>TIME(8,0,0),NOW()-TODAY()-TIME(9,0,0)-TIME(8,0,0),0)

これらの関数を組み合わせることで、リアルタイムな勤怠管理システムを構築できます。

スプレッドシートの時間計算を完璧にマスターして業務効率化を実現

Googleスプレッドシートでの時間計算を完全に理解することで、勤怠管理から作業時間分析まで、幅広い業務を効率化できます。基本的な経過時間の計算から始まり、休憩時間の考慮、24時間超の表示、マイナス時間の処理まで、段階的に習得することで、あらゆる時間計算のニーズに対応できるようになります。特に表示形式の設定と数値変換の理解は、正確な計算と見やすい表示の両立に不可欠です。

これらの知識を実務に活用し、手作業での計算ミスをなくし、業務の自動化を進めることで、より価値の高い仕事に集中できるようになるでしょう。


※ 掲載している情報は記事更新時点のものです。

※本サイトは、法律的またはその他のアドバイスの提供を目的としたものではありません。当社は本サイトの記載内容(テンプレートを含む)の正確性、妥当性の確保に努めておりますが、ご利用にあたっては、個別の事情を適宜専門家にご相談いただくなど、ご自身の判断でご利用ください。

関連記事