Subject: 労働時間表を作るヒントを ======================================== From: 九条 Date: 2000/12/01(金) 10:20:33 おはようございます。労働時間表をExcel97で作成しています。 ちょっと煮詰まってしまいましたので、どなたかヒントを頂ければ非常に助かります。 以下長くなりますがご容赦下さいませ。 **作成内容** @7時から22時までは1分刻みに労働時間をカウント A22時から翌日の7時(31時)までは30分刻みで労働時間を切り捨ててカウント。 (7時前に出勤した人も7時までは同様に処理。日をまたがって出勤した人も同じ。) @、A共に一人の人の一日の労働時間の計算にあてはめる。 例としては朝5時出勤・夜23時退勤の人は、「5時-7時はAで、7時-22時は@で、22時- 23時はAで」と計算する。 **考え方をこうしました** @、Aを3つの時間帯に分けました。 1)24時後に出勤(朝4時出勤等)したものは7時まで分けて計算。 2)7時以降22時以前に出勤したものは22時まで分けて計算。 3)22時以降出勤したものは翌日7時(31時)まで分けて計算。 上のように計算しますと当然1)、2)、3)で重複する可能性がありますので、その 部分に関しては引くことにします。 また、1分単位・30分単位に関しては後程休憩を引かなくてはいけないので、その時点 でFLOOR関数を使用して切り捨てることにしました。単純労働時間を出す計算には練り 込んでおりません。 **ここまで努力してみました** A B C D E 1 出勤時間 退勤時間 1)24-7 2)7-22 3)22-31 "1)=IF(AND(A1>=0+""0:00"",A1<0+""7:00""),""7:00""-A1,"""")" "2)=IF(A1>=0+""22:00"","""",IF(B1<0+""22:00"",B1-A1,B1-A1-(B1-$F$1)))" "(→$F$1には""22:00""が入ってます。計算式の中にどうしても直接入れることが出来ず" 苦肉の策でした(T□T)。) "3)=IF(AND(A1>=0+""22:00"",B1<=0+""31:00""),B1-A1,IF(B1>=0+""22:00"",B1-A1-D1,""""))" ********** ・・・とここまで作ってみたのですが、元は二つの時間帯だったものを三つに分けて計算 してしまっていいのかとか、もっと綺麗に作れないものか、本当に重複する可能性は ないのか等、色々考えてしまっています。 お時間のある時で結構ですので、どうぞヒントを頂けませんでしょうか。 長くて判りづらくて申し訳ありませんでした。 ======================================== From: 九条 Date: 2000/12/27(水) 08:31:34 Solved: on 何とか作り上げました。 色々勉強になります。