• 無料テンプレート
  • EXCEL女子発信コラム
  • バックオフィス業務・派遣・BPO

【無料テンプレート付き】勤怠管理表とは?自動計算で残業・休暇も管理したい方向け!

更新日:2026.02.25

【無料テンプレート付き】勤怠管理表とは?自動計算で残業・休暇も管理したい方向け!
5:08
【無料テンプレート付き】勤怠管理表とは?自動計算で残業・休暇も管理したい方向け!

目次

勤怠管理をExcelで行いたいと思っても、
「どんなフォーマットを使えばいいのか分からない」
「毎月の集計が面倒でミスが起きがち」
そんな悩みを感じたことはありませんか?

実は、勤怠管理表はExcelテンプレートを使えば、誰でも簡単に・正確に管理できます。
本記事では、無料で使える Excel勤怠管理表テンプレート とあわせて、

  • 勤怠管理表でできること
  • Excelでの入力方法
  • 自動計算の仕組み
  • 業務をラクにする活用ポイント

を、分かりやすく解説します。

勤怠管理シート(Excelテンプレート)

勤怠管理シート(Excelテンプレート)

 様々な働き方に対応できるエクセルテンプレートがあれば、より楽に正確に管理することができます。こちらの勤怠管理テンプレートはコクーのVBA女子が作成しました。ぜひご活用ください。 
資料ダウンロード

勤怠管理表とは

勤怠管理表とは、従業員の 出勤・退勤時間、労働時間、残業、有休などを記録・管理する表 のことです。
Excelで勤怠管理を行うメリットは次の通りです。

  • 専用システム不要で、すぐ始められる
  • 自社ルールに合わせてカスタマイズできる
  • 関数を使えば労働時間を自動計算できる
  • 給与計算・月次集計にも使いやすい

特に小規模組織や、「まずはExcelで管理したい」という企業にとっては、現実的で扱いやすい方法です。

当社勤怠管理テンプレートの活用方法

こちらでは、日々の勤務記録をどのように入力するか、その手順とポイントを解説します。

下図の水色の部分が入力欄です。

attendance record_01

年月

書式設定が設定されているので、数値で入力します。

入力例

「2023」「8」

勤務時間

24時間形式で開始と終了時刻の定刻を入力します。

入力例

「9:00」「18:00」

勤怠

勤務の状況を入力します。プルダウンから選択可能です。

プルダウン項目

・有給休暇
・午前有給
・午後有給
・遅刻
・早退
・フレックス

開始時刻・終了時刻・休憩

24時間形式で実際の勤務時間を入力します。休憩が1時間の場合「1:00」と入力します。

入力例

「9:00」「18:00」「0:30」

当社勤怠管理テンプレートで自動計算できる項目

コラム挿絵 (38)

当社の勤怠管理テンプレートは、あらかじめ入力したデータを基に自動で計算を行う便利な欄が設けられています。

これらの自動計算欄は、

  • 稼働時間
  • 残業時間
  • 深夜残業時間

など、従業員の勤務状況に関する重要な指標を計算します。

これにより、日々の勤務記録から月単位での稼働統計まで、管理者と従業員双方の時間を節約し、効率的な勤怠管理を実現します。 

↑ 記事TOP

日付

 計算式:=SEQUENCE(DAY(EOMONTH(DATE(F3,G3,1),0)),1,DATE(F3,G3,1)) 

B列の日付を自動表示するために使用している関数は以下となります。

SEQUENCE 関数(シーケンス関数)

「開始値」から「目盛り」分ずつ増える「行」×「列」の数列を配列として返す

=SEQUENCE(行,[列],[開始],[目盛り])

行:返される行数を指定
列:返される列数を指定し、省略すると「1」となる
開始:数列の最初の数値を指定
目盛り:数列の後続の各あて位の増分値を指定

  • 結果は配列としてスピルを利用して表示される
  • SEQUENCE関数ではMicrosoft365に新たに追加された機能「スピル」の仕組みが含まれています。

EOMONTH 関数(イーオーマンス関数)

開始日から起算して、指定された月数だけ前または後の月の最終日に対応するシリアル値を返す
 "月" に正の数を指定すると起算日より後の日付を返し、負の数を指定すると起算日より前の日付を返す 

=EOMONTH(開始日, 月)

開始日:起算日を表す日付を指定
月:開始日から起算した月数を指定。

DATE 関数(デート関数)

3 つの独立した値を受け取り、それらを組み合わせて日付を作成する

=DATE(年, 月,日)

年:年を指定
月:月を指定
日:日を指定

DAY 関数(デイ関数)

シリアル番号で表された、日付の日情報を返す

=DAY(シリアル値)

シリアル値:日の情報を返したいシリアル値を指定

この数式は、特定の年月(【F3】セルの年、【G3】セルに月)を基に該当月の日付を自動的に生成するために使用されます。 

関数の動作を詳しく見てみましょう。

DATE(F3, G3, 1)

【F3】セルの年と【G3】セルの月から、その月の初日の日付を生成します。

EOMONTH(DATE(F3,G3,1),0)

【F3】セルと【G3】セルから生成された日付を基にして、その月の最終日の日付を生成しているため、月によって最終日が違う場合も対応可能です。

DAY(...)

EOMONTH関数から得られた月の最終日の日付から、月の日数を抽出します。

SEQUENCE(...)

最終的に第1引数に月の日数(DAY(EOMONTH(DATE(F3,G3,1),0)))
第2引数に列(この場合は1列)
第3引数に開始値(DATE(F3, G3, 1))を指定して、その月の全日付を一列に自動生成します。

生成されるのはシリアル値ですが、ユーザー定義の表示形式の機能を使用して「日付」の表示としています。

この関数によって、指定された月の1日から月末までの日付が一列にスピルされて返るため、勤怠管理表などで日付の入力作業を省力化できます。

曜日

計算式:=IF(B9="","",TEXT(B9,"aaa"))

TEXT 関数(テキスト関数)

表示形式コードを使用して数値に書式設定を適用することで、数値の表示方法を変更する。

=TEXT(値,表示形式)

値:テキストに変換する数値
表示形式:指定された値に適用する書式を定義するテキスト文字列

IF(B9="","", ... )

【B9】セルが空白("")かどうかを確認します。
【B9】が空白の場合、結果も空白("")となります。空白でない場合、次の式が返ります。

TEXT(B9,"aaa")

【B9】セルの内容ですが、TEXT関数を使ってフォーマット変換します。
ここで、"aaa"のフォーマットは、セルの日付を曜日の省略形(例: "月", "火", "水" など)に変換します。

 この式を使うことで、【B9】セルに日付が入力されている場合に限り、その日付を対応する曜日の省略形に変換し、【B9】が空の場合は何も表示せずに空白を保持します。
これにより、勤怠管理表などで日付に基づいた曜日を簡単に表示させることができます。 

営業日

計算式:=IF(B9="","",IF(OR(C9="土",C9="日"),"休業日","営業日"))

IF(B9="", "", ...)

【B9】セルが空白かどうかを確認します。もし【B9】が空白("")なら、結果も空白("")を返します。
これは日付が入力されていない場合に、何も表示しないようにするためです。
【B9】に日付が入力されているなら、次の条件式に進みます。

IF(OR(C9="土", C9="日"), "休業日", "営業日")

【C9】セルに記載されている曜日が土曜日または日曜日であるかを確認します。
もし【C9】が「土」または「日」であれば「休業日」と表示します。
それ以外の曜日であれば「営業日」と表示します。

 この式を用いることで、勤怠管理表などで日付と曜日に応じて自動的にその日が営業日か休業日かを表示させることができます。 

稼働時間

計算式:=IF(AND(F9="",G9=""),"",G9-F9-H9)

AND(F9="",G9="")

【F9】セル(出勤時間)と【G9】セル(退勤時間)が両方とも空白かどうかを確認します。
両方とも空白であれば、TRUEを返します。

IF(..., "", G9-F9-H9)

 第一引数(ここではAND関数の結果)がTRUEの場合、つまり出勤時間と退勤時間の両方が未入力の場合は、空白("")を返します。それ以外の場合、つまり出勤時間と退勤時間のいずれかが入力されている場合は、退勤時間(G9)から出勤時間(F9)を引き、更に休憩時間(H9)を差し引いた結果(実質的な稼働時間)を計算します。

これにより、勤怠データの入力が不完全な場合の誤計算を防ぎます。

この式により、出勤時間と退勤時間のどちらか、または両方が未入力の場合は稼働時間を計算せず、両方入力されている場合のみ稼働時間を自動計算することができます。 

法定外

計算式:=IFERROR(IF(I9-TIME(8,0,0)>0,I9-TIME(8,0,0),""),"")

IFERROR 関数(イフエラー関数)

数式がエラーと評価される場合に指定した値を返します。

=IFERROR(値, エラーの場合の値)

値:エラーかどうかをチェックする引数
エラーの場合の値:数式がエラー値と評価された場合に返す値を指定

TIME 関数(タイム関数)

指定した時刻に対応する小数(シリアル値)を返します。

=TIME(時, 分, 秒)

時:時を指定
分:分を指定
秒:秒を指定

I9-TIME(8,0,0)

【I9】セル(稼働時間)から8時間(標準労働時間)を引きます。
ここで、TIME(8,0,0)は8時間0分0秒を表すので、シリアル値同士の計算となります。

IF(I9-TIME(8,0,0)>0,I9-TIME(8,0,0),"")

実働時間から8時間を引いた値が0より大きい場合、つまり残業が発生している場合は、その残業時間(I9からTIME(8,0,0)を引いた値)を返します。

 残業が発生していない場合は、空白("")を返します。 

IFERROR(...,"")

 最外側のIFERROR関数は、式の計算中にエラー(例えば、I9が空白の場合にI9-TIME(8,0,0)が計算できないなど)が発生した場合に、エラーの代わりに空白("")を返します。

この式を用いることで、残業時間を条件に応じて適切に計算し、計算不可能な状況をエラー表示させずにスマートに処理することが可能です。

深夜残業

計算式:=IFERROR(IF(G9<=TIME(22,0,0),"",(G9-TIME(22,0,0))),"")

IF(G9<=TIME(22,0,0),"",(G9-TIME(22,0,0)))

この部分は、G9セル(通常、退勤時間を示す)が22時00分以前であるかどうかを確認します。
22時以前であれば、空白("")を返します。
22時以降である場合は、G9(終了時刻)から22時00分(TIME(22,0,0))を引いた結果を計算します。

この結果は、22時以降の勤務時間、つまり深夜残業時間を示します。 

IFERROR(...,"")

最外側のIFERROR関数は、内側の式がエラー(例えば、【G9】セルが空白などで時間の計算ができない場合)を返した際に、代わりに空白("")を返します。これにより、計算が不可能な状況でもシートがきれいに保たれ、ユーザーにエラーメッセージが表示されることが避けられます。

この式を使用することで、勤怠管理表で深夜残業時間を条件付きで計算し、可能な場合のみ残業時間を表示させることができます。また、エラーを適切に処理し、ユーザーが使いやすい表計算シートになります。

休暇計算

計算式:=IF(OR(E9="午前有給",E9="午後有給"),0.5,IF(E9="有給休暇",1,0))

OR(E9="午前有給", E9="午後有給")

【E9】セルが「午前有給」または「午後有給」のいずれかであるかを判断します。

どちらかが当てはまる場合、TRUEを返します。 

IF(OR(...), 0.5, ...)

上記の条件がTRUEの場合、つまり午前または午後だけ有給休暇を取得している場合は、0.5日の休暇として計算します。

これは半日有給を意味します。 

IF(E9="有給休暇", 1, 0)

もしE9セルが「有給休暇」である場合は1日分の休暇として1を返します。
それ以外の場合(つまり休暇を取っていない、または他の条件の休暇である場合)は0を返します。

 この式により、勤怠管理表での休暇取得状況を簡単に数値化し、休暇日数を自動で計算することができます。
半日有給休暇の場合は0.5、1日の有給休暇の場合は1として、休暇日数の管理が行えるようになります。 

↑ 記事TOP

当社勤怠管理テンプレートのその他計算項目

column_0001

当社の勤怠管理テンプレートでは、出勤・退勤時間の管理だけでなく、日々の勤怠管理を正確かつ効率的に行うための各種計算項目をあらかじめ設定しています。
手動計算の手間や集計ミスを減らし、Excelでも安心して勤怠管理を行えるよう設計されています。

総稼働時間

【I39】セル

各日の稼働時間

  • 出勤時間から退勤時間を引いたもの
  • 休憩時間を除外した実働時間

の2つについてSUM関数を使用して算出しています。

総法定外時間

【J39】セル

指定期間内で発生した総残業時間が計算され表示されます。
※残業時間は、1日の標準労働時間を超えた時間の合計をSUM関数を使用して算出しています。

総深夜時間

【K39】セル

22時以降の深夜残業時間の合計を示します。
深夜時間帯に働いた時間の合計についてSUM関数を使用して算出しています。

有給休暇取得日数

【J6】セル

有給休暇の取得日数が合計され、月内での総休暇日数を示します。
休暇の合計についてSUM関数を使用して算出しています。

遅刻・早退日数

【K6:L6】

遅刻と早退の日数についてCOUNTIFS関数を使用して計算しています。
E列の

  • 遅刻
  • 早退

の回数をそれぞれ数えています。

当社勤怠管理テンプレートの便利な機能

column_0011

 当社の勤怠管理テンプレートには、日々の勤怠入力を効率化し、管理や集計の手間を減らすための便利な機能を多数搭載しています。Excelが苦手な方でも扱いやすく、毎日の入力から月次管理までスムーズに行える設計です。 

営業日が休業日の場合は、該当行がグレーになるよう設定

条件付き書式

条件付き書式を使用して、営業日が休業日の場合は、該当行がグレーになるよう設定しています。

名前付き範囲を活用し、データの入力や書き換えが大幅に効率化

Excelの名前ボックス機能を勤怠管理表に設定することで、データの入力や書き換えが大幅に効率化されます。
名前ボックスは、特定のセルやセル範囲に独自の名前を割り当てる機能です。

シートに「名前付き範囲」を設定しておくことで、新しい月のデータを作成する際は、名前ボックスから該当範囲を簡単に選択ができるため、入力欄を簡単にクリアすることができます。

名前付き範囲の設定方法

attendance record_03

  1. 設定したい範囲(セルまたはセル範囲)をExcelシート上で選択します。
  2. シートの左上にある名前ボックス(現在選択しているセルのアドレスが表示されている場所)にカーソルを置き、新しい名前を入力します。
  3. 入力後、Enterキーを押して名前を確定させます。

【補足】勤怠管理表を作成する上で知っておくべき知識:シリアル値

コラム挿絵 (11)

Excelでは、日付や時刻は「シリアル値」という形式で内部的に管理されています。

シリアル値とは、特定の基準日からの経過日数を表す数値のことで、日付を数値で表現することにより、日付間の計算を可能にします。

Excelの基準日は、1900年1月0日がシリアル値1となっており、例えば1900年1月1日はシリアル値2となります。このシステムにより、日付を加算や減算する計算や、2つの日付間の差を求める計算が簡単に行えます。

時刻に関しても同様に、1日を1として、その日の一部を小数点以下で表現します。
例えば、正午(12:00 PM)は0.5(半日)として表されます。

日時

シリアル値

12:00

0.5

24:00

1

1900年1月1日

1

1901年1月1日

367

2022年1月1日

44562

このシリアル値を理解することで、

  • Excelにおける日付や時刻の計算
  • 日付関数の利用

がより明確になり、効率的なデータ管理や分析が可能になります。

シリアル値はユーザーには見えない形で活動していますが、Excelで日付や時刻を扱う上で非常に重要な役割を果たしています。

通常の数値は24で割ればシリアル値と同じになります。
シリアル値に24をかけると通常の数値になります。 

 まとめ|Excel勤怠管理は「テンプレ活用」が近道 

コラム挿絵 (29)

Excelで勤怠管理を行うなら、ゼロから作るより、テンプレートを使う方が圧倒的に効率的です。

今回ご紹介した勤怠管理表テンプレートを使えば、

  • 入力ミスを減らせる
  • 集計の手間を省ける
  • 毎月の勤怠管理が安定する

といった効果が期待できます。

まずは無料テンプレートをダウンロードして、日々の勤怠管理をラクにしてみてください。

また、勤怠テンプレートをうまく活用するためのサポートが必要な企業様にはEXCEL女子によるサポートサービスもございます。お気軽にお問い合わせください。

 

 お見積り無料!お気軽にご相談ください! 
勤怠管理シート(Excelテンプレート)

勤怠管理シート(Excelテンプレート)

様々な働き方に対応できるエクセルテンプレートがあれば、より楽に正確に管理することができます。こちらの勤怠管理テンプレートはコクーのVBA女子が作成しました。ぜひご活用ください。 
資料ダウンロード
【総合資料】Excel・VBAに特化した人財

【総合資料】EXCEL女子

『EXCEL女子』は、バックオフィス業務のDX化を支援する専門スタッフによる事務代行・内製化支援サービスです。営業・マーケ・経理・人事・総務などの業務効率化を通じて、企業の競争力強化と持続的成長をサポートします。
資料ダウンロード
PAGE TOP