質問: 何件か質問を拝見したのですが自分と同じ物がなかなか探せず質問させて下さい。 会社の勤務時間表をエクセルで記入していくのですが、当方の仕事は案件ごとの時間の入力が必要です。 その案件が3回ある休憩時間にかかったら休憩時間を引いた時間を入力してほしいです。 テーブルをエクセル内の他の場所に置いておくことは可能です。 画像も追加いたします。(画像は例です) 一応下記に内容書きます。 なるべく簡単な方法がうれしいです。 少しだけエクセル分かります。少しです。 一応自分でも理解したいのでその後検証したいのであまりにも難しいのは説明して頂けるとありがたいです。 勤務時間 8:00~17:15 休憩時間 110:00~10:05 212:00~12:45 315:00~15:10 以上宜しくお願い致します。
回答: F5セルの数式: =MAX($A5,VLOOKUP($A5,$Q$5:$S$12,2,TRUE)) G5セルの数式: =MIN($B5,VLOOKUP($B5,$Q$5:$S$12,3,TRUE)) H5セルの数式: =IF($C5="",0,MAX($C5,VLOOKUP($C5,$Q$5:$S$12,2,TRUE))) I5セルの数式: =IF($D5="",0,MIN($D5,VLOOKUP($D5,$Q$5:$S$12,3,TRUE))) J5セルの数式: =$I5-$H5 ここまでは下に必要行までコピペ K5セルの数式: =IF(AND($F5<=K$2,OR($H5>=K$3,$I5<=K$2),$G5>=K$3),K$4,0) このセルはL列、M列も含め、必要行までコピペ H5~N14セルの書式: ユーザー定義で「h:mm;;」(結果が0の時は見辛いので非表示にする設定です) K2~M3の部分と、P列~S列は事前に用意した、時刻補正用テーブルです。 出勤の場合は出勤時刻と、テーブルで参照した時刻の遅い方を取る様に、退勤の場合は退勤時刻と、テーブルで参照した時刻の早い方を取る様にする為のものです。 平たく言えば、休憩時間の間に出勤した場合は遅い方の時間を取り、その休憩時間帯の休憩時間はなしにする、等です。 MAXやMINは、早い方、遅い方を取る手段に使っています。 KLMの各列では、その休憩時間帯が、出勤~退勤の間に含まれ、かつ外出時間帯に含まれない場合に、休憩時間数を出しています。