知人の勤め先の残業の計算が1分単位になりました。
それは、それで良い事なんですが、その1分単位に対応したタイムカード計算ソフトを導入した訳ではないらしく、
各部門長がガチャッと打刻された各人のタイムカードを指折り数えて、手計算で集計し、給与計算部門に連絡する。
という、恐ろしくアナログで、残業時間を計算するために残業時間が増えると言う、笑えない事象がおきているとの事。
んで、その会社は昭和64年から時が止まったような中小企業なので、エクセルが得意な人も少なく、その知人もパソコンは苦手らしいです。
(注:僕もエクセルは苦手です。パワーポイントはもっと苦手です。イラストレータやフォトショップ、インデザインは使い慣れていますが。。。)
と言う事なので、僕が、Google先生に質問をしながら、簡単な入力作業で1分単位の残業や労働時間を計算できるタイムカード計算シートを作ってみました。
埋め込んだ計算式は、簡単な物ばかりなので、午前休や午後休、短時間休日出勤などの8時間以下の労働だと残業時間が正しく計算できないと言う欠点がありますが、そういうイレギュラー対応は個別対応をする必要があります。
画像1:全員の勤務時間集計一覧表のシート
↓
画像2:個別の勤務時間のタイムカードシート
↓
※黄色の部分が手入力可能な部分。
黄色以外は計算式が埋め込まれています。
1)画像1の「2014年7月」の部分を8月に変更すると、個別のタイムカードシートのB列とC列の日付と曜日が自動的にその月のカレンダーに変更されます。
日付の自動入力計算式
B8 =DATE(B2,D2-1,21)
その会社は給与計算期日の初日は毎月21日となっています。
この会社の7月とは、6月21日に始まり、7月20日に終わります。
なので、B2で2014年を参照し、D2-1で7-1=6月を定義して、初日の21日を決定しています。
セルB8以降は上段+1でコピペをして行きます。
2)曜日については、左のセルの日付に対応した曜日を自動的に表示させる関数を使いました。
c8 =TEXT(B8,"aaa")
このaaaをaaaaとすれば土曜日と表示させる事が出来ます。
3)労働時間については、5時間以上の労働で1時間の休憩が与えられます。
なので、if関数をつかって、「もし、退勤時間から出勤時間を引いた拘束時間が5時間以上あるなら1時間の休憩時間を引いた時間を労働時間として表示させる。拘束時間が5時間未満ならそのままの時間数を表示します。」という計算式を入れました。
f8 =IF(E8-D8>TIME(5,0,0),E8-D8-TIME(1,0,0),E8-D8)
前述しましたが、この計算式では、例えば、朝6時から午前11時まで、食事休憩無しで働いても自動的に1時間の休憩時間が控除されてしまうので、ご注意下さい。
4)残業時間については、上記と同様にif文を使いました。
「もし、労働時間が8時間以上なら、労働時間から8時間を引いた時間を残業時間として表示します。労働時間が8時間未満なら0時間と表示します。」という計算式を入れました。
g8 =IF(F8>TIME(8,0,0),E8-D8-TIME(9,0,0),TIME(0,0,0))
5)出勤日数については、「出勤」のタイムカードの打刻がある日をカウントしました。
e3 =COUNTA(D8:D38)
6)合計労働時間や合計残業時間については、=sum() を使ってます。
もしかしたら、この会社の残業時間の計算は、
計算式Z⇒「残業時間=一ヶ月間の合計労働時間ー(出勤日数×8時間)」
という、計算式を使っているかもしれません。
そうなると、半休などの場合、上記の計算式の場合残業時間が大幅に減ることになります。
ある日を4時間勤務で午後半休を使った場合、出勤日数は「1」とカウントされますが、4時間が足りない事になるので、他の日の残業時間4時間をつかって、穴埋めされてしまいます。
諸事情により、日曜日を8時間勤務で出社し、後日にその振替休として、火曜日に4時間勤務で午後半休、水曜日に4時間勤務で午後半休を取得した場合、
出勤日数は「3」で想定勤務時間は24時間となりますが、実際の勤務時間は16時間しかありません。
とうことは、8時間分の不足分を他の日の残業時間で穴埋めされる。というおかしな計算が計算式Zでは行われます。
とはいえ、その辺は、うまいことやっているのでしょう。
というわけで、タイムカード計算表をエクセルで作ってみました。の巻。
完