学ぶログ

みなさんのためになる情報を発信する情報ブログです。

給与計算 エクセルのIF関数を使って残業時間を集計する方法

f:id:sharoushi-kj:20220212152149j:plain

sharoushi-kj.hatenablog.com

こんにちわ。今回は、エクセルのIF関数を使って、残業時間の計算式を作る方法をご紹介したいと思います。

残業時間って1日の労働時間が、8時間を超えた分の時間のことですよね。

そうですね。私はよく仕事で、給与計算を委託されることがあるんですが、打ち合わせの中で、タイムカードの集計もお願いしたいと言われることがあります。

タイムカードの集計って大変だからやりたくないですね。

確かに、タイムカードの集計は、給与計算の中でも1番手間がかかる作業ですね。中小企業さんだと勤怠管理システムはランニングコストがかかるので、紙のタイムカードを使っている会社が多いです。

タイムカードを見せてもらうと始業時間と終業時間の2回打刻している会社もあれば、休憩時間も入れて4回打刻している会社もあるので、10社あれば10通りの集計方法があります。

なるほど、それぞれの会社に合わせた集計方法が必要になるんですね。

私の場合、シンプルな就業時間の会社であれば、紙のタイムカードから直接、手書きで残業時間を拾い、複雑な就業時間の会社であれば、エクセルでタイムカードを入力&集計する方法で拾い出しをしています。

労働時間は、終業時間から始業時間を引いてから休憩時間を引くと求められます。ただ、残業時間となると少し計算式が複雑になります。そんな時は、IF関数を使って、条件式を作ってみましょう。

はい。お願いします。IF関数ってどんな関数ですか?

IF関数は、ある計算式Aがあって、それが正しければAの答えが表示され、異なればBが表示させることが出来る関数です。IF関数は、難しいようですが、シンプルなので覚えてしまえば、簡単に関数を作ることが出来ますよ。

分かりました。

IF関数を使って残業時間の計算式を作るとこんな感じになります。まず、残業時間を計算式したいセルに『=IF()』を入力します。()内は、(論理式 , 真の場合の値 , 偽の場合の値)を入れていきます。IF関数は、この3つの要素で作られています。下の図を使って説明していきますね。

f:id:sharoushi-kj:20220212133436p:plain

残業時間は、『=IF((G6-TIME(8,0,0))<TIME(0,0,0),0,(G6-TIME(8,0,0)))』という式で計算できます。赤字の部分が論理式,青字の部分が真の場合の値,が偽の場合の値です。赤字は、労働時間からTIME関数を使って8:00を引いて、0:00より小さくなる場合について、どう表示するかを表示しています。0:00より小さくなる場合は真になるので0で表示します。次に、0:00以上になる場合は労働時間から8:00を引いた時間、つまり残業時間が表示されるわけです。

なるほど、労働時間から8時間を引いて残業時間を出しているんですね。ということは、IF関数を使えば、深夜時間も計算できそうですね。

その通り。こんな感じで計算式を作ってみたので、確認してみてくださいね。深夜時間=IF((D6-TIME(22,0,0))<TIME(0,0,0),0,(D6-TIME(22,0,0)))ちなみに、終業時間から22:00を引いて、0:00を下回る場合が0、0:00を超えたら深夜時間が表示されるように計算式を組んでみました。

f:id:sharoushi-kj:20220212141411p:plain

ありがとうございます。これで、私もIF関数を使って、時間の集計が出来そうです。

ちなみに、土曜日だけ残業時間を集計したいときは、IF関数の中にWEEKDAY関数を入れると土曜日だけの残業時間を集計することができます。ちょっと複雑になりますが、『=IF(WEEKDAY($A20) =WEEKDAY(7),IF(D20-TIME(12,0,0)<TIME(0,0,0),0,D20-TIME(12,0,0)),0)』という式を作ってみました。赤字は土曜日の場合、真であれば12:00以降の時間を表示するように、偽であれば0を表示するようにしましたので、よければ利用してみて下さい。

f:id:sharoushi-kj:20220212172840p:plain

IF関数を使うと幅広く条件式を組むことが出来るようになります。みなさんもIF関数を使って、タイムカード集計をしてみてください。手で拾うより正確に数字を集計出来るようになりますよ。