エクセルの従業員の残業時間を計算するならIF関数とTIME関数を使用しましょう。1分単位or1時間単位で従業員の勤務時間を計算する表を作成することが出来ます。それではさっそく残業時間を計算していきましょう!
この記事で学べること
- エクセルで従業員の勤務時間を管理することが出来る
使用する関数は、IF関数とTIME関数のみになります。まずは、これら二つの関数から学んでいきましょう。
自己紹介
IT業界でのキャリアを活かし、業務効率化に欠かせないMicrosoft365や便利ツールを紹介しています。少しのコツで膨大な可能性を最大限引き出すためのヒントやテクニックを提供し、読者のビジネスパフォーマンス向上に貢献することを目指しています!
IF関数とは?
読み方は、イフと読みます。
エクセルのIF関数は、真の場合には任意の値を返し、偽の場合には別の任意の値を返すことが出来る関数です。IF関数の基本構文は以下になります。
=IF(条件式, 真の場合に返す値, 偽の場合に返す値)
条件式 | 真偽を判断する条件を指定 |
真の場合に返す値 | 条件式が真の場合に返す値を指定 |
偽の場合に返す値 | 条件式が偽の場合に返す値を指定 |
たとえば、生徒のテストの点数が記載されている表をイメージしてください。A列には名前が記載されていて、B列にはテストの点数が記載されています。テストの点数が80点以上の人は合格、80未満の人は不合格と評価を付けたいときにIF関数を活用することが出来ます。
=IF( B2 >= 80, “合格”, “不合格” )
B2 >= 80(条件式) | 真偽を判断する条件を指定 |
“合格”(真の場合に返す値) | 条件式が真の場合に返す値を指定 |
“不合格”(偽の場合に返す値) | 条件式が偽の場合に返す値を指定 |
・○以上で条件を指定する場合は、[ >= ]を使用します。
┗〇以下で条件を指定する場合は、[ <= ]を使用します。
・真の場合、偽の場合で返す値がテキストの場合は、[ ” ]で囲ってあげます。
IF関数をさらに振り返りたい方はこちら。
【IF関数・IFS関数】の使い方から具体例までご紹介
TIME関数とは?
読み方は、タイムと読みます。
エクセルのTIME関数は、指定した値を時刻値で表示させることが出来る関数です。TIME関数の基本構文は下記になります。
=TIME(時, 分, 秒)
時 | 0から23で指定 ※セルで指定も可能 |
分 | 0から59で指定 ※セルで指定も可能 |
秒 | 0から59で指定 ※セルで指定も可能 |
=TIME( A2, B2, C2 )
A2(時) | 0から23で指定 ※セルで指定も可能 |
B2(分) | 0から59で指定 ※セルで指定も可能 |
C2(秒) | 0から59で指定 ※セルで指定も可能 |
IF関数とTIME関数を組み合わせる方法
この章では、IF関数とTIME関数を組み合わせる方法をご紹介します。具体的には、従業員の勤務時間を計算していきたいと思います。前提条件として、従業員の勤務時間が8時間を超える場合は、1時間の休憩を与えるとします。
それでは、使用例を見ていきましょう。
=IF(C2-B2>=TIME(8,0,0),C2-B2-TIME(1,0,0),C2-B2)
条件式の説明:C2-B2>=TIME(8,0,0)
勤務時間を求めるためには、開始時刻と終了時刻の差を計算する必要があります。そのためIF関数の条件式で[ 終了時刻 – 開始時刻 ]で指定をします。休憩時間がない場合の条件式はこのままで大丈夫ですが、8時間以上労働している方には休憩を1時間与えなければなりません。なので、勤務時間が8時間以上の場合は終了時刻 – 開始時刻の差から休憩1時間を引かなければなりません。よって、IF関数の条件式は[ 終了時刻 – 開始時刻 >= 8時間]で指定してあげます。
※8時間をTIME関数のTIME(8,0,0)で指定
真の場合に返す値の説明:C2-B2-TIME(1,0,0)
条件式の[ 終了時刻 – 開始時刻 >= 8時間]が真の場合、休憩1時間を引かなければなりません。なので指定方法は[ 終了時刻 – 開始時刻 – 休憩1時間 ]と入力することができます。
※1時間はTIME関数のTIME(1,0,0)で指定
偽の場合に返す値の説明:C2-B2
条件式の[ 終了時刻 – 開始時刻 >= 8時間]が偽の場合、休憩1時間を与える必要はありません。なので指定方法は休憩1時間を引かずに[ 終了時刻 – 開始時刻 ]と入力することが出来ます。
勤務時間表を作成|1時間単位で残業時間を計算
ここまで解説したIF関数とTIME関数を使って勤務表を作成していきましょう!
こちらの章では、残業時間を1時間単位で表示していく方法をご紹介します。
※残業時間を1分単位で計算したい方はこちら
勤務時間表を作成する条件は下記とします。
- 日付・名前・開始時刻・終了時刻は入力されているとする
- 開始時刻から残業時間までのセルの書式設定を時刻に合わせる
- 8時間以上労働する場合は、1時間の休憩を与える
- 1日8時間勤務でオーバーした場合は残業時間とする
- 22時以降の残業は深夜残業とする
それでは勤務時間表を作成していきましょう。
まずは、日付~終了時刻が記載されている表を作成しました。
下記の表を使って勤務時間表に関数を入力していきます。
通常では、セルの書式設定は標準になっているので、
セルの書式設定を時刻へ変更します。
勤務時間は、8時間以上労働した場合に休憩1時間を与えなければなりません。
半日勤務をしている従業員もいるので、8時間を超えたら勤務時間から休憩1時間を引くかつ、8時間を超えない場合は休憩1時間を引かないという条件を指定しなければなりません。
なので計算式は、[ 終了時刻 – 開始時刻 ] >= 8時間 の場合は、休憩1時間を引いて、条件に当てはまらない場合は、休憩1時間を引かずに[ 終了時刻 – 開始時刻 ]で指定することが出来ます。
=IF(D5-C5>=TIME(8,0,0),D5-C5-TIME(1,0,0),D5-C5)
関数の説明
- 最初にIF関数の条件式で、[ 終了時刻 – 開始時刻 ]が8時間以上なら、[ 終了時刻 – 開始時刻 ]から1時間を引くと指定。
- 偽の場合は、[ 終了時刻 – 開始時刻 ]で計算。
勤務時間が8時間を超えた場合は、残業時間が表示されるように関数を組んでいきましょう。今回、残業時間がない場合は「-」ハイフンで表示したいと思います。
=IF(E5>$A$2,E5-$A$2,”-“)
関数の説明
- 勤務時間が8時間より多ければ[ 勤務時間 – 8時間 ]を引くように指定。
- 条件が偽の場合は、[“-“]ハイフンで返すように指定。
残業時間の中には、深夜残業を含む場合もあります。深夜残業も可視化していきましょう。深夜残業がない方は「-」ハイフンで表示したいと思います。
=IF(D5 > TIME(22,0,0), D5-TIME(22,0,0),”-“)
関数の説明
- 終了時刻が22時より後であれば、[ 終了時刻 – 22:00]で計算。
- 条件が偽の場合は、[“-“]ハイフンで返すように指定。
最後に残業時間から深夜残業を省いていきましょう。深夜残業を求めることが出来れば、こちらは簡単にできます。関数式を見ていきましょう。
=IF(G5=”-“, F5, F5-G5)
関数の説明
- 残業時間がハイフンの場合は、ハイフンを返す(残業時間を返す)ように指定
- ハイフンじゃない場合は、[ 残業時間 – 深夜残業 ]を計算するように指定
ここまでの手順を進めることで勤務時間や残業時間を可視化することが出来ます。完成した表は下記になります。
勤務時間表を作成|1分単位で残業時間を計算
こちらの章では、残業時間を分単位で計算する方法をご紹介します。といっても、先ほどの章の勤務時間を求めるところまでは同じです。まずは、前提条件と勤務時間を求めるところまで振り返りましょう。
勤務時間を求めるところまでは大丈夫!という方は、こちらからお読みください
▼勤務時間を求める流れの振り返り
勤務時間表を作成する条件は下記とします。
- 日付・名前・開始時刻・終了時刻は入力されているとする
- 開始時刻から残業時間までのセルの書式設定を時刻に合わせる
- 8時間以上労働する場合は、1時間の休憩を与える
- 1日8時間勤務でオーバーした場合は残業時間とする
- 22時以降の残業は深夜残業とする
それでは勤務時間表を作成していきましょう。
まずは、日付~終了時刻が記載されている表を作成しました。
下記の表を使って勤務時間表に関数を入力していきます。
通常では、セルの書式設定は標準になっているので、
セルの書式設定を時刻へ変更します。
勤務時間は、8時間以上労働した場合に休憩1時間を与えなければなりません。
半日勤務をしている従業員もいるので、8時間を超えたら勤務時間から休憩1時間を引くかつ、8時間を超えない場合は休憩1時間を引かないという条件を指定しなければなりません。
なので計算式は、[ 終了時刻 – 開始時刻 ] >= 8時間 の場合は、休憩1時間を引いて、条件に当てはまらない場合は、休憩1時間を引かずに[ 終了時刻 – 開始時刻 ]で指定することが出来ます。
=IF(D5-C5>=TIME(8,0,0),D5-C5-TIME(1,0,0),D5-C5)
関数の説明
- 最初にIF関数の条件式で、[ 終了時刻 – 開始時刻 ]が8時間以上なら、[ 終了時刻 – 開始時刻 ]から1時間を引くと指定。
- 偽の場合は、[ 終了時刻 – 開始時刻 ]で計算。
勤務時間を求めるところまで、振り返り出来ましたね。それでは残業時間を分単位で計算する流れを見ていきましょう!
ここからは、セルの書式設定を変更していきます。残業時間・深夜残業・深夜残業を省いた残業時間の項目の書式設定を「時刻」から「標準」に戻していきましょう。
勤務時間が8時間を超えた場合は、分単位で残業時間を表示するようにしていきましょう。残業をしていない場合は「-」ハイフンで表示したいと思います。
=IF(E14>$A$2,(E14-$A$2)*24*60,”-“)
関数の説明
- 勤務時間が8時間を超える場合は、[ 勤務時間 – 8時間 ]で計算結果を[ *24*60 ]で計算をする。
- 勤務時間が8時間を超えない場合は[ “-” ]ハイフンで返すように指定。
終了時刻が22時を超えている場合は、深夜残業になります。深夜残業も分単位で計算していきましょう。
=IF(D14 > TIME(22,0,0), (D14-TIME(22,0,0))*24*60,”-“)
関数の説明
- 終了時刻が22時を超える場合は[ 終了時刻 – 22時 ]の計算結果を[ *24*60 ]で計算をする。
- 終了時刻が22時を超えない場合は[ “-” ]ハイフンで返すように指定。
残業時間と深夜残業を求められれば、深夜残業を除いた残業時間を求めることは簡単です。さっそく関数を見ていきましょう。
=IF(G14=”-“, F14, F14-G14)
関数の説明
- 残業時間が「-」ハイフンなら、「-」ハイフンを返すように指定。
- 残業時間が「-」ハイフンではない場合は、[ 残業時間 – 深夜残業 ]を計算するように指定。
ここまでの手順を進めることで残業時間を分単位で計算することが出来ます。完成した勤務時間の表を見ていきましょう!
まとめ
今回は、エクセルで従業員の勤務時間を管理するために必要なIF関数とTIME関数の基礎から解説しました。そして、残業時間の単位を時間で表示する方法や分単位で表示することが出来ましたね。
従業員の給料を管理している方には、損はしない知識かと思いますので使いこなせるように何度も試してみてください。
今回も最後まで読んでいただきありがとうございました!
また次回の投稿で会いましょう!