>終了時間が四捨五入で記述されている(厳密には6分単位)
>という点です。
との事ですが、それは少々おかしいのではないかと思います。
その考え方では、例えば、開始時間が13:46で終了時間が19:10の場合、終了時間は0.1時間単位で四捨五入されて、19:12として扱われますから、勤務時間は
17:40-13:46+19:12-18:10=4時間56分=4.933333・・・・時間
になってしまい、0.1時間未満の端数が出て来てしまいます。
ですから、開始時間や終了時間を0.1時間単位で四捨五入するのではなく、
開始時間や終了時間はそのままの時間で計算してしまい、その結果求められた勤務時間の値の方を0.1時間単位で四捨五入されるか、
或いは、開始時間に関しては、開始時間そのものを0.1時間単位で四捨五入するのではなく、次の休憩時間までの残りの時間を0.1時間単位で四捨五入し、同様に終了時間に関しては、終了時間そのものを0.1時間単位で四捨五入するのではなく、直前の休憩時間の終わりから経過した時間を0.1時間単位で四捨五入されるか、
のどちらかにされた方が宜しいのではないかと思います。
その場合、勤務時間を求める方法は以下の様になります。
今仮に、開始時間がA2セルに入力されていて、終了時間がB2セルに入力されていて、勤務時間をC2セルに表示させるものとします。
その場合、C2セルには次の関数を入力されると良いと思います。
【開始時間や終了時間はそのままの時間で計算してしまい、その結果求められた勤務時間の値の方を0.1時間単位で四捨五入する場合の関数】
=IF(IF(AND(COUNT($A2,$B2),$A2>=0,$B2>$A2,$B2<10000),AND($A2=INT($A2),MOD($A2,100)<60,$B2=INT($B2),MOD($B2,100)<60),FALSE),ROUND(((MIN((INT($B2/100)&":"&MOD($B2,100))+0,"12:00"+0)-(INT($A2/100)&":"&MOD($A2,100)))*($A2<1200)+(MIN((INT($B2/100)&":"&MOD($B2,100))+0,"17:40"+0)-MAX((INT($A2/100)&":"&MOD($A2,100))+0,"13:00"+0))*($A2<1740)*($B2>1300)+((INT($B2/100)&":"&MOD($B2,100))-MAX((INT($A2/100)&":"&MOD($A2,100))+0,"18:10"+0))*($B2>1810))*24,1),"")
【開始時間に関しては、開始時間そのものを0.1時間単位で四捨五入するのではなく、次の休憩時間までの残りの時間を0.1時間単位で四捨五入し、終了時間に関しては、終了時間そのものを0.1時間単位で四捨五入するのではなく、直前のの休憩時間の終わりから経過した時間を0.1時間単位で四捨五入する場合の関数】
=IF(IF(AND(COUNT($A2,$B2),$A2>=0,$B2>$A2,$B2<10000),AND($A2=INT($A2),MOD($A2,100)<60,$B2=INT($B2),MOD($B2,100)<60),FALSE),ROUND((MIN((INT($B2/100)&":"&MOD($B2,100))+0,"12:00"+0)-(INT($A2/100)&":"&MOD($A2,100)))*($A2<1200)*24,1)+ROUND((MIN((INT($B2/100)&":"&MOD($B2,100))+0,"17:40"+0)-MAX((INT($A2/100)&":"&MOD($A2,100))+0,"13:00"+0))*($A2<1740)*($B2>1300)*24,1)+ROUND(((INT($B2/100)&":"&MOD($B2,100))-MAX((INT($A2/100)&":"&MOD($A2,100))+0,"18:10"+0))*($B2>1810)*24,1),"")
後それから、質問者様の添付画像の例では900~1740の場合の勤務時間が7.6時間になっていますが、1740を0.1時間単位で四捨五入しますと17:42になりますから、勤務時間は7.6時間ではなく、7.7時間になるのではないでしょうか?
お礼
ご回答ありがとうございました。 ご指摘の通り、四捨五入ではなかったですね・・・ 時刻や数字の計算に弱いもので、なんとなく周りに合わせて入力しておりました。 私としては非常に難しい式で、 理解するには時間がかかりそうですが、がんばりたいと思います。