- ベストアンサー
エクセルの関数について
時間の計算する表を作ったのですが、うまくいかない所があります。 現在の表は、B4に開始時間とC4に終了時間を入れ5時から22時までの間の経過時間をD4に、22時から5時までの時間経過をE4に入るようにしています。 「C1に5:00、D1に22:00、 B4に=IF(OR(B4="",C4=""),"",IF(OR(B4>=$D$1,B4<$C$1),"",IF(OR(C4>$D$1,C4<=$C$1),$D$1,C4)-B4))、 E4に=IF(OR(B4="",C4=""),"",IF(AND(C4>$C$1,C4<=$D$1),"",IF(AND(B4>=$C$1,C4<=$C$1),1-IF(B4<$D$1,$D$1,B4)+C4,C4-IF(AND(B4>=$C$1,B4<$D$1),$D$1,B4))))」です。 そこで、5時をまたがった時に、5時までの部分をE4に5時からの部分をD4に分けて表示させたいのですが、うまくいきません。 例えば、開始4:30 終了5:10の場合、D4に0:10 E4に0:30が表示させるようにです。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
あまり検証していませんが・・ ■D4 =IF(OR(COUNT(B4:C4)<2,MIN(C4+(C4<B4),$D$1)-MAX(B4,$C$1)<=0),"",MIN(C4+(C4<B4),$D$1)-MAX(B4,$C$1)) ■E4 =IF(OR(COUNT(B4:C4)<2,C4+(C4<B4)-B4-N(D4)=0),"",C4+(C4<B4)-B4-N(D4)) で、どうでしょうか?
その他の回答 (2)
- mshr1962
- ベストアンサー率39% (7417/18945)
B4="5:00" C4="22:00" としてIF文無しなら D4=MIN(MAX(D1,B4),C4)-MAX(C1,B4) E4=B4-MIN(C1,B4)+MIN(MAX(D1,C4),B4+1)-MAX(D1,C4)
- bys07405
- ベストアンサー率38% (37/97)
他にいい方法があるかもしれませんが、自分が試した物を。 設定開始時間と設定終了時間があり、時間内と時間外の合計時間を計算したいということですよね。 設定開始時間がセルC1、設定終了時間がセルD1 計算対象の開始時間がB4、計算対象の終了時間がC4として a.開始時間以前の時間は =IF(B4<C1,C1-B4,0) b.設定時間内の時間は =IF(C4>D1,D1,C4)-IF(B4>=C1,B4,C1) c.終了時間以後の時間は =IF(C4>=D1,C4-D1,0) 質問の例にいくとセルD4に計算式b、セルE4に計算式aとcの合計を入れればよいかと。 あとは必要に応じてエラーチェックを入れてみてください。
お礼
皆さんありがとうございました。 作成することができました。 大変助かりました。