- ベストアンサー
エクセルで時間経過計算
エクセルで、次のようなことができるでしょうか。 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にとらわれなくても結構ですので、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
もう、解決しましたか? 日も経過しているので、いまさらかもしれませんが、ちょっと面白そうなので、考えてみました。 (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度試してみて下さい。 式でわからない所やおかしい所があれば、補足してください。
その他の回答 (1)
- oresama
- ベストアンサー率25% (45/179)
同一日付内というのが前提ですが、 (明けて1時は25:00と入力) E1に5:00 F1に22:00とおいて C1は、 =IF(B1>F1,IF(A1>E1,F1-A1,F1-E1),IF(A1>E1,B1-E1,B1-A1)) D1には、 =IF(AND(B1<F1,A1>E1),"",IF(A1<E1,E1-A1,0)+IF(B1>F1,B1-F1,0)) いかがでしょう。 そうそう、セルの書式設定を [h]:mm にしておいてください。 当方エクセル2000です。
お礼
ありがとうございました。 やっぱりこういう事もできるのですね。 勉強あるのみです・・・。
お礼
ありがとうございました。 こ、これだ!と思いました。 また、何かありましたら、よろしくお願いします。