OpenOfficeで拘束時間を求めたら次は給与計算を行なう

給与計算は、そのまま拘束時間に対して行なわれるものではなく、
出勤時間の切り上げ、退社時間の切り捨てが考慮されます。
拘束時間を求めるで使ったに基づいてその処理方法を紹介します。

切り上げ、切り捨ては、次の2つの関数を使います。
15分単位で切り上げ切り捨てをするという前提で説明します。

関数名:CEILING関数
書式:=CEILING(処理対象の値;基準値)
何ができる処理対象の値を超える基準値の倍数の最小の値を返す
平たく書くと:=CEILING(49;15)で、49に一番近い15の倍数である60を返します。これを出勤時間の切り上げに利用すると、59分から45分の間に出社した場合は、00分に出社したと処理できます。

関数名:FLOOR関数
書式:=FLOOR(処理対象の値;基準値)
何ができる処理対象の値を超えない基準値の倍数の最大値を返す
平たく書くと:=FLOOR(49;15)で、49に一番近い15の倍数である45を返します。これを退社時間の切り捨てに利用すると、59分から45分の間に退社した場合は、45分に退社したと処理できます。

このようにFLOOR関数とCEILING関数は、処理対象の値をはさんで上にあるのがCEILING関数で得られた値、下にあるのがFLOOR関数で得られた値ということができます。

さて、出社時間が9時54分の場合、54に対して切り上げがなされます。15分単位で切り上げをおこなってみましょう。時刻を計算できる方式にするにはTIME関数を使うので、時は、そのまま9を当てはめればよく、分の部分にCEILING関数で得た値を当てはめればいいことになります。
B2セルに9:54:00が入力されている場合、
=CEILING(54;15)で60が返されますので、=TIME(HOUR(B2);CEILING(MINUTE(B2);15);00)で、10:00からの給与発生となります。
この値をF2セルに入力しておきます。
次に、退社時間が15時12分の場合、12に対して切り捨てがなされます。15分単位で切り捨てをおこなってみましょう。出社時間のときと同じようにTIME関数にFLOOR関数で得た値を当てはめます。時は、そのまま15を当てはめればよく、分の部分にFLOOR関数で得た値を当てはめればいいことになります。
D2セルに15:12:00が入力されている場合、
=FLOOR(12;15)で0が返されますので、=TIME(HOUR(D2);FLOOR(MINUTE(D2);15);00)で、15:00までの給与発生となります。
この値をG2セルに入力しておきます。

これで、勤務時間を求めることができますので、拘束時間を求めたときと同じ方法で勤務時間を求めて、H2セルにその値を入力しておきます。
=TIME(HOUR(G2)-HOUR(F2)+IF(HOUR(G2)-HOUR(F2)<=0;24;0);MINUTE(G2)-MINUTE(F2);0)

ここまでで、10時00分から15時00分までの給与発生ということがわかりましたので、次に時給1000円を掛ければ日給が計算できることになります。
=HOUR(H2)*1000+MINUTE(H2)*1000/60
これで、時間部分に対しては1000を掛けます。
また、分の部分に対しては、60で割ることで15分の場合は250円、30分の場合は500円をの値を得ることができます。

OpenOfficeで給与計算を行なうサンプルファイルはcalc032.odsをダウンロードしてください。

送信者 OpenOffice