メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelで残業時間と給与を迅速に計算するにはどうすればよいですか?

Author Sun Last modified

多くの職場では、従業員の勤務時間を追跡し、特に残業時間を正確に把握することは、給与計算の正確性や規制への準拠に不可欠です。例えば、労働者の出勤時刻、昼休み、退勤時刻を記録したテーブルがあるとします。以下に示すスクリーンショットのように、日々の残業時間とそれに応じた支払いを素早く計算したい場合があります。効果的な計算は、時間の節約だけでなく、手動による誤りのリスクも軽減します。これは、複数のスタッフや給与期間分のデータを集計する際に特に重要です。
calculate the overtime and payment

残業時間と給与の計算

一括残業/給与計算用のVBAマクロ

集計分析にピボットテーブルを使用する


arrow blue right bubble 残業時間と給与の計算

Excelの組み込み数式を使用して、効率的に残業時間と対応する給与を決定できます。このアプローチは、個々の労働者記録や比較的少ないデータセットに対して単純な計算が必要な場合に適しています。以下は、ステップバイステップガイドです:

1. まず、毎日の通常の勤務時間を計算します。セルF2を選択し、次の数式を入力します:

=IF((((C2-B2)+(E2-D2))*24)>8,8,((C2-B2)+(E2-D2))*24)

Enterキーを押してから、オートフィルハンドルを下にドラッグして他の行にも数式をコピーします。これにより、列Fに毎日の通常勤務時間が表示されます。
Apply a formula to display the regular working hour

2. 次に、残業時間を計算します。セルG2に以下の数式を入力します:

=IF(((C2-B2)+(E2-D2))*24>8, ((C2-B2)+(E2-D2))*24-8,0)

Enterキーを押した後、数式をすべての行に適用するために下にドラッグします。各日の残業時間は列Gに計算されます。
 Apply a formula to calculate the overtime

これらの数式において:

  • B2: 勤務開始時刻(出勤時刻)
  • C2: 昼休み開始時刻
  • D2: 昼休み終了時刻
  • E2: 勤務終了時刻(退勤時刻)
  • この計算では、標準的な勤務日を8時間と仮定しています。「8」や時間に関する参照は、必要に応じて会社の規定に合わせて調整できます。
ヒント:Excelでの時間値が正しくフォーマットされていることを確認してください(例:hh:mm)。

3. 1週間の合計通常勤務時間と残業時間を要約するには、セルF8を選択し、次のように入力します:

=SUM(F2:F7)

その後、この数式をセルG8までドラッグして、合計残業時間を取得します。
 apply a formula to get total regular hours and overtime hours

4. 定められたセルに通常勤務および残業に対する給与を計算します。たとえば、通常給与を計算するためのセルF9に次のように入力します:

=F8*I2

同様に、残業給与を計算するためのセルG9に次のように入力します:

=G8*J2

ここで、I2とJ2にはそれぞれ通常勤務および残業の時間給が含まれている必要があります。
use formulas to calculate the payment for regular hours and overtime

通常勤務と残業の合計支払い額を計算するには、セルH9で単純な合計を使用します:

=F9+G9

この最終結果は、レビュー中の期間における合計報酬を表しており、通常給与と追加の残業給与が含まれています。
 apply a formula to calculate the total payments

この数式ベースの方法は、日々または週ごとの計算にシンプルかつ迅速であり、勤務スケジュールや残業基準が変更された場合にも簡単に適応できます。ただし、多数の従業員や高度なレポート作成が必要な場合は、他のExcel機能や自動化の方が効率的かもしれません。

  • 利点:シンプルでコーディングの知識は不要、小規模なデータセットには管理が容易。
  • 制限:各労働者/テーブルごとに手動設定が必要、テーブル構造が変わると数式の保守が必要、非常に大きなデータセットには最適ではない。

データセットが増加したり、多数の労働者や異なる期間について残業/給与を計算する必要がある場合は、このプロセスを自動化するか、Excelの組み込み分析ツールを使用することを検討してください。以下のオプションをご覧ください:

arrow blue right bubble 一括残業/給与計算用のVBAマクロ

多数の労働者、シート、または期間に関わる大規模なデータセットを扱う場合、手動で数式を入力するのが非効率的である場合があります。そのような場合には、VBAマクロを使用して全体の計算を自動化できます。この方法は、特に複雑なデータ構造や頻繁なデータインポートに対処する際、反復処理を簡素化します。

シナリオ:従業員、出勤時刻、昼休開始、昼休終了、退勤時刻の列を持つテーブルがあり、通常勤務時間、残業時間、そして給与の一括計算を行いたいとします。

注意:実行前にワークブックを保存し、マクロが有効になっていることを確認してください。テストや初期実行中に偶発的なデータ損失を防ぐためにバックアップを作成してください。

1. 開発ツール > Visual Basic をクリックします。Microsoft Visual Basic for Applications ウィンドウで、挿入 > モジュール をクリックし、次のコードをモジュールにコピーして貼り付けます:

Sub BatchOvertimeCalculation()
    Dim ws As Worksheet
    Dim i As Long
    Dim lastRow As Long
    Dim regHourCol As String, overtimeCol As String, payCol As String
    Dim startCol As String, lunchStartCol As String, lunchEndCol As String, endCol As String
    Dim regHourlyRate As Double, overtimeHourlyRate As Double
    
    On Error Resume Next
    
    regHourCol = InputBox("Enter column letter for Regular Hour (output):", "KutoolsforExcel", "F")
    overtimeCol = InputBox("Enter column letter for Overtime (output):", "KutoolsforExcel", "G")
    payCol = InputBox("Enter column letter for Payment (output):", "KutoolsforExcel", "H")
    startCol = InputBox("Enter column letter for Work Start:", "KutoolsforExcel", "B")
    lunchStartCol = InputBox("Enter column letter for Lunch Start:", "KutoolsforExcel", "C")
    lunchEndCol = InputBox("Enter column letter for Lunch End:", "KutoolsforExcel", "D")
    endCol = InputBox("Enter column letter for Work End:", "KutoolsforExcel", "E")
    
    regHourlyRate = Application.InputBox("Enter hourly rate for regular hours:", "KutoolsforExcel", 15, Type:=1)
    overtimeHourlyRate = Application.InputBox("Enter hourly rate for overtime:", "KutoolsforExcel", 22.5, Type:=1)
    
    Set ws = Application.ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, startCol).End(xlUp).Row
    
    For i = 2 To lastRow
        Dim totalHours As Double, regHours As Double, overtimeHours As Double
        
        totalHours = ((ws.Range(lunchStartCol & i) - ws.Range(startCol & i)) + _
                      (ws.Range(endCol & i) - ws.Range(lunchEndCol & i))) * 24
        
        If totalHours > 8 Then
            regHours = 8
            overtimeHours = totalHours - 8
        Else
            regHours = totalHours
            overtimeHours = 0
        End If
        
        ws.Range(regHourCol & i).Value = regHours
        ws.Range(overtimeCol & i).Value = overtimeHours
        ws.Range(payCol & i).Value = regHours * regHourlyRate + overtimeHours * overtimeHourlyRate
    Next i
    
    MsgBox "Batch calculation complete!", vbInformation, "KutoolsforExcel"
End Sub

2. コードを入力したら、VBAツールバーの Run button ボタンをクリックしてマクロを実行します。ダイアログボックスに要求される情報を入力します(時間データや給与率が含まれる列など)。マクロは自動的に各列に通常勤務時間、残業、総給与を計算します。
トラブルシューティング:すべての時間列が適切なExcelの時間形式であることを確認してください。いずれかのセルに無効なデータまたは空白がある場合、マクロはスキップするか「0」を返すことがあります。マクロを実行した後、必ずいくつかの行を手動でチェックして精度を確認してください。

  • 利点:大規模/複雑なデータセットに非常に効率的で、手動でのコピーと数式ドラッグが不要。
  • 制限:ある程度のVBAの知識が必要、マクロを有効にする際のセキュリティ警告、正しい列を参照する際に注意が必要。

まとめ:日常的または一度限りの計算には、数式が速く直感的です。残業計算のタスクがより多くのレコードや複雑な報告ニーズに拡大するにつれて、VBAによる自動化は手動作業やエラーを大幅に削減できます。正確な時間フォーマットを常に再確認し、ソリューション後には計算ロジックがあなたの会社の残業ポリシーに一致していることを確認してください。エラー(例:#VALUE!)が発生した場合は、セル形式や空白の項目を再確認してください。バッチ操作の前にはバックアップを維持することを検討してください。


Excelで日付に日、年、月、時間、分、秒を簡単に追加

セル内に日付があり、それに日、年、月、時間、分、または秒を追加する必要がある場合、数式を使用するのは複雑で覚えにくいものです。Kutools for Excelの「Date & Time Helper」ツールを使えば、日付に時間単位を簡単に追加したり、日付の差分を計算したり、生年月日から年齢を算出することさえできます。複雑な数式を覚える必要はありません。

Kutools for Excel - 必要なツールを300以上搭載し、Excelの機能を大幅に強化します。永久に無料で利用できるAI機能もお楽しみください!今すぐ入手

最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得