• ベストアンサー

エクセルでの勤怠計算

15分単位での給与計算で、出勤10:02退出16:05の場合10:00~16:00 というようにするために、 A1を出勤、B1を外出、C1を再入、D1を退社と入力するようにしました。 【出勤・外出・再入】 46~00分は0分 1~15分は15分 16~30分は30分 31~45分は45分 【退出】 0~14分は0分 15~29分は15分 30~44分は30分 45~59分は45分 にしたいのですが、FLOORとCEILINGを使ってできそうだとは思うのですが、 どんな式にすればうまくいくか教えていただけないでしょうか? 休みの日などで時間を入力しない日は0:00とでないようにできたら と思っています。 過去ログなどを拝見して考えているうちにこんがらがってわからなく なってしまいました。 教えていただけたらと思います。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

整理が付かないときは作業列で考えるとわかりやすいです。 出勤10:01 外出12:03 再入 12:59 退出 17:45  A  B    C   D   E   F  G    H   I  J  K 出勤 作業列 外出 作業列 時間 再入 作業列 退出 作業列 時間 合計 B2セルに =IF(A2="","",CEILING(A2,"00:15:00")) と入れると A2が 8:50=>B2が9:00 になると思います A1に時刻入れてみてご希望と合うかどうか確認してください。 D2セルに =IF(C2="","",FLOOR(C2,"00:15:00")) と入れます。 C2が 12:10=>D2が12;00 になると思います、同様に確認してください。 E2セルは =IF(OR(B2="",D2=""),"",D2-B2) で時間が計算されます。 同様に 再入と退出で時間を求めます 合計は =E2+J2 で1日の時間が出ます。 頭の整理が付いたら一つの式にまとめても良いですし、作業列を非表示にしても良いと思います。

その他の回答 (3)

  • inadomez
  • ベストアンサー率40% (9/22)
回答No.4

=IF(A1="","",FLOOR(D1,"0:15")-CEILING(A1,"0:15")-(CEILING(C1,"0:15")-CEILING(B1,"0:15"))) こんな感じでどうでしょうか?

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.2

ご参考 「時間を切り上げ・切り捨てて計算する」 http://pc.nikkeibp.co.jp/article/NPC/20060214/229314/ 「Excel勤怠表の時刻切り捨て」 http://www.sophia3.com/school/chie/ex05.htm 「Excel実用編:勤務時間の計算例(関数)」 http://www.eurus.dti.ne.jp/~yoneyama/Excel/nyumon/kinmu/index.html

aks3105
質問者

お礼

ありがとうございました。 教えていただいたサイトで勉強しようと思います。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

>FLOORとCEILINGを使ってできそうだとは思うのですが、 使い方は =FLOOR(A1,"00:15:00") =CEILING(E1,"00:15:00") こんな感じです。 >休みの日などで時間を入力しない日は0:00とでないようにできたら =IF(A1="","",FLOOR(A1,"00:15:00")) といったようにIF文を使用します。

aks3105
質問者

補足

早速の返信ありがとうございます。 >=IF(A1="","",FLOOR(A1,"00:15:00")) という数式はA1のセルに入れればいいのでしょうか? それと、F1にその日実労時間を表示させたいのですが、 (出勤10:01 外出12:03 再入 12:59 退出 17:45 の場合F1に6.75と出るようにしたい)

関連するQ&A

専門家に質問してみよう