[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『時間の計算方法』(みにょ)
A B C D E
1 開始時間 終了時間 勤務時間 19時〜7時 7時〜19時
2 1:40 9:00
3 23:00 2:30
4 2:00 8:30
1:40というのは25:40のことです。2:00とは26:00のことです。
勤務時間、19:00〜7:00までの時間、7:00〜19:00までの時間を求めたいです。
いろいろやったのですが、、わからなくて・・・
すいません。教えてください。
こんなことですかね?
(1) C2セル =IF(COUNT(A2:B2)=2,B2-A2+(B2<A2),"")
(2) D2セル =IF(COUNT(A2:B2)=2,MAX(0,MIN("7:00",$B2+($B2<=$A2))-$A2)+MAX(0,MIN("31:00",$B2+($B2<=$A2))-MAX("19:00",$A2)) +MAX(0,$B2+($B2<=$A2)-MAX("43:00",$A2)),"")
(3) E2セル =IF(D2="","",MAX(0,MIN("19:00",$B2+($B2<=$A2))-MAX("7:00",$A2)) +MAX(0,MIN("43:00",$B2+($B2<=$A2))-MAX("31:00",$A2)))
行 ____A____ ____B____ ____C____ __D__ __E__ 1 開始時間 終了時間 勤務時間 19-7 7-19 2 1:40 9:00 7:20 5:20 2:00 3 23:00 2:30 3:30 3:30 0:00 4 2:00 8:30 6:30 5:00 1:30 5 23:00 22:30 23:30 11:30 12:00 6 7:00 19:00 12:00 0:00 12:00 7 19:00 7:00 12:00 12:00 0:00
(半平太) 2010/02/12 16:25
こんにちは。 終了時間は必ず開始時間より後(ただし24時間以内)、という前提で考えてみました。 ・FG列は作業列で、A列の時間を基準としたときに、7時、19時がいつになるかを換算しています。 ・同様に考えるとC列は、A列の時間を基準としたときの終了時間とみなせますので、E列では、 G列(19時)とC列(終了時間)の小さいほうと、F列(7時)の差をとっています。 すでに半平太さんから、作業列なしのご回答がありますので、こちらはご参考まで。
※「_」セルは未入力または"" [R/C] [A] [B] [C] [D] [E] [F] [G] [1] 開始時間 終了時間 勤務時間 19時〜7時 7時〜19時 7時換算 19時換算 [2] 25:40 9:00 7:20 5:20 2:00 5:20 17:20 [3] 23:00 2:30 3:30 3:30 0:00 8:00 20:00 [4] 26:00 8:30 6:30 5:00 1:30 5:00 17:00 [5] 5:00 17:00 12:00 2:00 10:00 2:00 14:00
C2 =MOD(B2-A2,1) →C2:C5フィルコピー D2 =C2-E2 →D2:D5フィルコピー E2 =MAX(MIN(G2,C2)-F2,0) →E2:E5フィルコピー F2 =MOD("7:00"-$A2,"24:00") →F2:F5フィルコピー G2 =F2+"12:00" →G2:G5フィルコピー (コタ)
>1:40というのは25:40のことです。2:00とは26:00のことです。 ↑ 考えたら、この記述は少し不安ですね?
本当は25:40と云うデータが入力されているが、表示形式で1:40となっている、と云うことでしょうか?
それなら、私のレスは無視して下さい。
(半平太) 2010/02/12 17:07
さっそく修正のご連絡でごめんなさい。 ↓の6行目のケースでは、18:00〜19:00の1時間が、7時〜19時に含まれないことに気づきました。 以下に修正後の数式(×が修正前)を記載しておきます。
※「_」セルは未入力または"" [R/C] [A] [B] [C] [D] [E] [F] [G] [1] 開始時間 終了時間 勤務時間 19時〜7時 7時〜19時 7時換算 19時換算 [2] 25:40 9:00 7:20 5:20 2:00 5:20 17:20 [3] 23:00 2:30 3:30 3:30 0:00 8:00 20:00 [4] 26:00 8:30 6:30 5:00 1:30 5:00 17:00 [5] 5:00 17:00 12:00 2:00 10:00 2:00 14:00 [6] 18:00 9:00 15:00 12:00 3:00 13:00 1:00
C2 =MOD(B2-A2,1) →C2:C5フィルコピー D2 =C2-E2 →D2:D5フィルコピー ×E2 =MAX(MIN(G2,C2)-F2,0) →E2:E5フィルコピー E2 =IF(F2<G2,MAX(MIN(G2,C2)-F2,0),MAX(C2-F2,0)+G2) →E2:E6フィルコピー F2 =MOD("7:00"-$A2,"24:00") →F2:F5フィルコピー ×G2 =F2+"12:00" →G2:G5フィルコピー G2 =MOD("19:00"-$A2,"24:00") →G2:G6フィルコピー (コタ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.