質問: エクセルで、次のようなことができるでしょうか。 A列に開始時間、B列に終了時間を入れ、開始時間と経過時間を入れることによって 自動的に5時00分から21時59分時までの時間を入れたときの経過時間をC列に、 22時00分から4時59分までの時間を入れたときの経過時間をD列に入れたいのです。 例えは、A列(開始時間)に10:00、B列(終了時間)に11:00を入れると、C列に1:00。 A列(開始時間)に1:00、B列(終了時間)2:00を入れると、D列に1:00。 使用ソフトは、エクセル:mac2001ですが、macにとらわれなくても結構ですので、よろしくお願いします。
回答: もう、解決しましたか? 日も経過しているので、いまさらかもしれませんが、ちょっと面白そうなので、考えてみました。 (1)1行目[C1]セルに[5:00]、[D1]セルに[22:00]と入力(後で行を非表示にして下さい) この値を式に代入するとものすごく長い式になります どうしても入れたい場合は、下記式の [$C$1]→[TimeValue("5:00")] [$D$2]→[TimeValue("22:00")]に置き換えてください。 (2)2行目からA列に開始時間、B列に終了時間を入力 1日は[5:00]から始まり、次の日の[5:00]までとします。 (5:00~5:00は、24時間となり 5:01~5:01は0分となります) (3)C2セルに =IF(OR(A2="",B2=""),"",IF(OR(A2>=$D$1,A2<$C$1),"",IF(OR(B2>$D$1,B2<=$C$1),$D$1,B2)-A2)) D2セルに =IF(OR(A2="",B2=""),"",IF(AND(B2>$C$1,B2<=$D$1),"",IF(AND(A2>=$C$1,B2<=$C$1),1-IF(A2<$D$1,$D$1,A2)+B2,B2-IF(AND(A2>=$C$1,A2<$D$1),$D$1,A2)))) と入力(この式をコピー貼り付け) でどうでしょうか? D2セルはもう少しスマートにならないか考えましたが、いい案が浮かびませんでした。 1度試してみて下さい。 式でわからない所やおかしい所があれば、補足してください。