[[20100212150228]] 『時間の計算方法』(みにょ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『時間の計算方法』(みにょ)
  <Excel2007・Windows 7使用> 

   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.