いくつかのルールを元に給与計算表を作ってみましょう。
下記の表で、出勤/退勤/休憩を入力すると@〜Eに自動表示されるように設定しましょう。
◆
会社のルール
◆
-
出勤時刻は10分単位で切り上げる
-
退勤時刻は10分単位で切り捨てる
-
22:00以降の残業分は深夜残業時間@としてD列に表示されるようにする
-
E列の勤務時間Aには、退勤が22:00以降の場合は22:00-出勤-休憩とし、22:00未満の場合は退勤-出勤-休憩とする
-
深夜残業代Dは時給の25%増しで計算し、小数点以下は切り捨てる
-
勤務時間代Eも小数点以下は切り捨てる
|
22:00以降の残業分は深夜残業時間として表示されるようにします。
式としては、【退勤時刻が22:00より大きければ『退勤-22:00』、そうでなければ空白】とします。
但し、退勤ルールとして10分単位で切り捨て、があるので『10分単位で切り捨てた退勤時間-22:00』となります。
◆
"10:00より大きいなら…"は、>TIME(10,0,0)とします。
◆
退勤時間を10分単位で切り捨てるにはFLOOR関数を使います。(FLOOR(退勤,"0:10")
IF(B2>TIME
(22,0,0),FLOOR(B2,"0:10")-TIME
(22,0,0),"")
(※
FLOOR関数についてはこちら)
退勤が22:00未満の場合は【退勤-出勤-休憩】でいいが、22:00以降の場合は【22:00-出勤-休憩】とする
(深夜残業分はD列に表示されているので。)
出勤ルールとして10分単位で切り上げ、退勤ルールとして10分単位で切り捨てがあるのでこれらを盛り込んで式にする。
◆
10分単位で切り上げるにはCEILING関数を使います。(CEILING(出勤,"0:10"))
◆
休憩は分で入力されているので、TIME(0,分,0)とします。
IF(B2<=TIME(22,0,0),FLOOR(B2,"0:10")-CEILING(A2,"0:10")-TIME(0,C2,0),TIME(22,0,0)-CEILING(A2,"0:10")-TIME(0,C2,0))
(※
CEILING関数についてはこちら)
◆
SUM(D2:D6)として、表示形式を[h]:mmとする
SUM
(D2:D6)
◆
SUM(E2:E6)として、表示形式を[h]:mmとする
SUM
(E2:E6)
時給の25%増しの金額を出して(時給×1.25)、それに対して深夜残業時間Bをかけます。
但し、時間のままではシリアル値を掛けることになるので、時給と掛け算ができるような数値に変換しなくてはなりません。
時間(シリアル値)を計算可能な数値にするには、24をかけます。(時間×24)
金額は小数点以下を切り捨てるルールなのでROUNDDOWN関数を使います。
ROUNDDOWN(時給*1.25*D9*24,0)
時給×勤務時間合計Cとします。
深夜残業代同様、時間(シリアル値)のままでは計算できないので、24をかけます。
ROUNDDOWN
(E9*24*時給,0)
他は社内のルールによって、色々と試してみてください。
|