Esc
メニュー
★ 人気のツール
年収の壁シミュレーター 手取り計算機 固定資産税シミュレーター BMI計算ツール 出産手当金計算機 ふるさと納税上限額計算機
カテゴリ
このサイトについて 編集方針 お問い合わせ プライバシーポリシー

残業代計算のExcel関数 完全ガイド

IF・TIME・SUMPRODUCT関数を使って残業代計算シートを作る方法を解説します。サンプル式付き。Googleスプレッドシートでも同様に使えます。

関数を使う前に:Excelの時刻計算の基本

Excelでは時刻を「1日 = 1」として小数で管理します。1時間 = 1/24 ≒ 0.0417 です。

① TIME関数:時刻を作る・比較する

TIME(時, 分, 秒)

指定した時・分・秒に対応するシリアル値を返します。時刻の定数を作ったり、比較に使います。

// 8時間のシリアル値を作成
=TIME(8, 0, 0) → 0.333...

// 実労働時間を計算(退勤B2・出勤A2・休憩60分)
=B2 - A2 - TIME(1, 0, 0)

// 時間数に変換(×24)
=(B2 - A2 - TIME(1, 0, 0)) * 24 → 例: 9.0(時間)
関数
結果
用途
TIME(8,0,0)
0.333
所定8時間の基準値
TIME(22,0,0)
0.917
深夜開始22時の基準値
TIME(1,0,0)
0.042
1時間の休憩時間

② IF関数:残業時間・深夜残業の条件判定

IF(条件, 真の場合, 偽の場合)

条件が真(TRUE)のときの値と偽(FALSE)のときの値を返します。残業時間が0以上かどうかの判定に使います。

// セル配置の前提: A列=出勤, B列=退勤, C列=実労働時間, D列=残業時間

// 実労働時間(C2)の計算(退勤B2・出勤A2・休憩TIME(1,0,0))
=B2 - A2 - TIME(1, 0, 0)

// 残業時間の計算(実労働が8時間超の場合のみ)
=IF(C2 > TIME(8,0,0), C2 - TIME(8,0,0), 0)

// 深夜残業時間(退勤が22時を超える場合)
=IF(B2 > TIME(22,0,0), B2 - TIME(22,0,0), 0)

// 残業時間を時間数(数値)に変換
=IF(C2 > TIME(8,0,0), (C2 - TIME(8,0,0)) * 24, 0)
よくある落とし穴
  • 時刻計算の結果が負になる場合(日をまたぐ場合)は追加処理が必要
  • 時間数に変換せずに月給の時給換算額を掛けるとシリアル値のまま計算されてしまう
  • 休憩時間がセルで可変の場合はTIME関数ではなく A1/1440(分÷1440)で変換する

③ SUMPRODUCT関数:月合計残業代の集計

SUMPRODUCT(配列1, 配列2, ...)

複数の配列を要素ごとに掛け合わせた合計を返します。各日の残業代合計を1式で集計できます。

// 前提: D2:D32=残業時間(時間数), E2:E32=時給換算額×割増率

// 月合計残業代(各日の残業時間×(時給×割増率)の合計)
=SUMPRODUCT(D2:D32, E2:E32)

// 種別列F列を使って平日残業のみ集計する場合(F="平日")
=SUMPRODUCT((F2:F32="平日") * D2:D32 * 時給 * 1.25)

// 深夜残業代の集計(G列=深夜残業時間)
=SUMPRODUCT(G2:G32) * 時給 * 1.5

完成形の計算式イメージ

以下は月合計残業代を一式で計算するサンプルです。セル配置は各自の設計に合わせて変更してください。

// ==== 基本設定(例: B1=月給, B2=所定日数, B3=所定時間/日) ====
時給換算額(B5) = B1 / (B2 * B3)

// ==== タイムカード行(2〜32行目)====
実労働(C列) = IF(B2<>"", B2 - A2 - (D2/1440), "") // D列=休憩分
残業時間(E列) = IF(C2>TIME(8,0,0), (C2-TIME(8,0,0))*24, 0)
深夜時間(F列) = IF(B2>TIME(22,0,0), MAX(0,(B2-TIME(22,0,0))*24), 0)
休日フラグ(G列) = IF(H2="休日", 1, 0) // H列=区分入力

// ==== 月合計残業代 ====
平日残業代 = SUMPRODUCT((G2:G32=0)*E2:E32) * $B$5 * 1.25
深夜残業代 = SUMPRODUCT(F2:F32) * $B$5 * 1.5
休日出勤代 = SUMPRODUCT((G2:G32=1)*E2:E32) * $B$5 * 1.35
合計残業代 = 平日残業代 + 深夜残業代 + 休日出勤代

Googleスプレッドシートでの注意点

【広告枠】給与計算SaaS(freee・マネーフォワード)アフィリエイト
関数管理が複雑になってきたら給与計算ソフトへの移行も選択肢です。

関数なしで計算する方法(ブラウザ版ツール)

関数を設定する手間をかけずに計算したい場合は、計算ナビのブラウザ版ツールをご利用ください。

タイムカード式計算ツール(関数不要)

よくある質問

残業代計算でIF関数はどう使いますか?

IF関数は「実労働時間が所定労働時間(8時間)を超えた場合に残業時間を返す、超えていなければ0」の条件分岐に使います。
=IF(C2 > TIME(8,0,0), (C2-TIME(8,0,0))*24, 0)

ExcelのTIME関数で時刻を計算する方法は?

TIME(時, 分, 秒)で時刻のシリアル値を作成します。TIME(8,0,0)は8時間を表します。時刻差の計算結果を時間数に変換するには結果に×24します。

SUMPRODUCT関数で残業代を集計する方法は?

各日の残業時間(時間数)と単価(時給×割増率)を配列で掛け合わせて合計します。
=SUMPRODUCT(E2:E32, F2:F32)(E列=残業時間、F列=時給×割増率)

これらの関数はGoogleスプレッドシートでも使えますか?

はい。IF・TIME・SUMPRODUCT関数はGoogleスプレッドシートでもExcelとほぼ同じ構文で使えます。

関連ツール・ページ

計算ナビ 編集部|最終更新: 2026年5月| 参考: 厚生労働省「時間外・休日及び深夜の割増賃金」労働基準法第37条(e-Gov)
免責事項
本ページのExcel関数サンプルはあくまで参考例です。実際の残業代は就業規則・労働契約・賃金規程等により異なります。関数の動作は使用するExcelのバージョンやGoogleスプレッドシートの設定によって異なる場合があります。