Googleスプレッドシートで勤務時間を計算・合計する方法【初心者向け】

Googleスプレッドシートは、勤務時間の管理にとても便利なツールです。開始時刻と終了時刻を入力するだけで、1日の勤務時間や週・月の合計時間を自動で計算できます。本記事では、スプレッドシート初心者でも迷わず使えるように、勤務時間の計算方法をわかりやすく解説します。

※本記事では「B列=開始時刻」「C列=終了時刻」「D列以降=休憩時間・勤務時間」という前提でシートを作成しています。ご自身のシートに合わせて列を読み替えてください。

ママ
ママ

この記事で紹介している数式は全部入りの無料テンプレートにまとめてあるよ。コピーしてすぐ使えるから、先にチェックしてもOK!

【この記事でわかること】

  • 勤務時間計算の基本ルール
  • シートの基本レイアウト例
  • 計算結果を時間表示にする方法
  • 勤務時間を合計する方法
  • 合計が24時間を超える場合の注意点
  • 休憩時間を差し引いて勤務時間を計算する方法
  • 夜勤・深夜勤務の勤務時間をスプレッドシートで計算する方法
  • ARRAYFORMULAで自動化するテクニック
  • よくある質問(FAQ)

スポンサーリンク

📌 1. 勤務時間計算の基本ルール

勤務時間の計算はとてもシンプルで、

勤務時間 = 終了時刻 − 開始時刻

という基本式で求められます。

Googleスプレッドシートは時刻を「時間の差」として扱えるため、複雑な関数は必要ありません。


スポンサーリンク

📄 2. シートの基本レイアウト例

Googleスプレッドシート 勤務時間の基本の計算方法

数式を表示した場合

Googleスプレッドシート 勤務時間の計算方法(数式あり)

勤務時間の列(例:D列)に以下の式を入力します。B2が開始時刻、C2が終了時刻です。

=C2 - B2

これで1日の勤務時間が自動計算されます。


⏱ 3. 計算結果を「時間表示」にする

計算結果を「時間表示」にする

計算結果が「0.35」のような小数で表示されることがあります。これはセルの表示形式が「時刻」ではなく「数値」になっているために起こります。この場合は表示形式を変更しましょう。

時間表示にする方法

①【表示形式】→【数字】→【カスタム日時】を選択する

カスタムの日付と時刻形式

②「秒(01)」の表示部分を選択する。

カスタムの日付と時刻形式の秒削除

③【削除】を選択して「秒」を消す。続けて、分と秒の間にあるコロン(:)も削除します。
※時と分の間のコロンは残してください。ここを一緒に消してしまうと「8:30」ではなく「830」のように表示されてしまうので注意しましょう。

カスタムの日付と時刻形式の秒削除

④【適用】を選択する。

カスタムの日付と時刻形式の秒削除

これで「8:30」のように見やすい時間表示になります。


➕ 4. 勤務時間を合計する方法

週や月の合計時間を出すには、SUM関数を使います。

=SUM(E2:E32)

これでE2からE32の勤務時間がすべて合計されます。

スプレッドシート 勤務時間の合計
Kくん
Kくん

あれ?合計時間が4時間15分になってるのどうして?

ママ
ママ

それは次の「合計が24時間を超える場合の注意点」で説明するね。実は表示形式が違っていることが原因なのよ


⏳ 5. 合計が24時間を超える場合の注意点

合計時間が24時間を超えると、スプレッドシートは正しく表示できないことがあります(24時を過ぎると日付が繰り上がってしまうため)。

その場合は、合計セルの表示形式を次のように変更します。

表示形式 → 数字 → 経過時間

合計時間が24時間を超える場合の表示方法

これで40時間、100時間などの長時間も正しく表示できます。


🍱 6. 休憩時間を差し引いて勤務時間を計算する方法

ここからは応用編です。実際の勤務時間からは休憩時間を差し引くケースが多いので、その計算方法を紹介します。

休憩が1時間固定の場合:

=(C2 - B2) - TIME(1,0,0)

休憩が可変の場合は、休憩時間を入力する列(例:D列)を作り、

=C2 - B2 - D2

のように引き算すればOKです。


🌙 7. 夜勤・深夜勤務の勤務時間をスプレッドシートで計算する方法

終了時刻が翌日にまたがる場合は、IF関数を使って調整します。

=IF(C2 < B2, C2 + 1 - B2, C2 - B2)

「終了時刻が開始時刻より小さければ、日付が変わったとみなして1日分(24時間)を足す」という考え方です。これで「22:00〜翌6:00」などの夜勤にも対応できます。


🧩 8. 自動化したい場合はARRAYFORMULA

毎回式をコピーするのが面倒な場合は、これまで紹介した「休憩の差し引き」「夜勤の調整」もまとめて自動化できます。

ここでは1行目にタイトル、2行目に「開始」「終了」「休憩」などの項目名を入れ、3行目からデータを入力するシートを例にします(2行目までを見出しとして使うため、数式は3行目からのB3・C3・D3を基準にしています)。ご自身のシートの行数に合わせて、B3の部分を書き換えてください。

E3セルに次の数式を1つ入力するだけです。

ARRAYFORMULAで勤務時間を自動計算する数式の入力例
=ARRAYFORMULA(IF(B3:B="",, C3:C - B3:B + (C3:C < B3:B) - D3:D))

この数式は、次の3つを一度にまとめて処理しています。

  • 開始時刻(B列)が空欄の行は何も表示しない(IF(B3:B="",, ...)の部分)
  • 終了時刻が翌日になる夜勤も自動調整する(+ (C3:C < B3:B)の部分。終了時刻が開始時刻より小さければ1日分を自動で足します)
  • 休憩時間(D列)を自動で差し引く(- D3:Dの部分)

1つの式を入れるだけで、行を追加してもすべての行に自動で反映されるので便利です。

⚠️ 注意:ARRAYFORMULAは計算結果を下方向に自動で広げていく(スピルする)仕組みです。そのため、E列の下の方に合計(SUM)などの数式を置いていると、広がってきた計算結果とぶつかって「配列の結果が他のデータと重なっています」というエラーになります。
これを避けるには、合計欄をデータより上(見出し行の近くなど)に配置するか、別の列・別シートに置くようにしましょう。


❓ よくある質問(FAQ)

Q. 計算結果が「0.35」のように小数で出るのはなぜ?

A. セルの表示形式が「数値」になっているためです。表示形式を「カスタム日時」に変更すると「8:30」のような時間表示になります。

Q. 合計時間が24時間を超えると表示がおかしくなります。

A. 合計セルの表示形式を「経過時間」に変更してください。40時間、100時間などの長時間でも正しく表示されます。

Q. 夜勤で日をまたぐ場合はどう計算すればいい?

A. IF関数を使い、終了時刻が開始時刻より小さい場合は24時間を足して計算します。詳しくは本文7章をご覧ください。

Q. ARRAYFORMULAを使ったら「配列の結果が他のデータと重なっています」というエラーが出ました。

A. ARRAYFORMULAの計算結果が下方向に広がる先に、合計(SUM)などの別の数式が置かれていることが原因です。合計欄をデータより上に移動するか、別の列に配置すると解決します。


✨ まとめ

Googleスプレッドシートで勤務時間を合計する方法は、基本的には「終了 − 開始」を積み重ねるだけ。
表示形式や休憩時間、夜勤などに対応すれば、どんな勤務体系でも柔軟に管理できます。

この記事では、

  • 基本の計算方法
  • 合計の出し方
  • 表示形式の注意点
  • 休憩・夜勤などの応用
  • 自動化のテクニック

をまとめました。

ママ
ママ

ここまで紹介した数式は全部入りの無料テンプレートにまとめてあるよ。コピーしてそのまま使ってね!

コメント

タイトルとURLをコピーしました