#1です。
残業のところに0.5と表示したいんですが0になってしまいます。
>時刻表示で0:30となるようになってました。0.5と表示するためには24をかけてやらないといけませんでした。失礼しました。
>後、残業が0だった時に空欄にしたいんですができるでしょうか?
#3さんのされている通り、=IF(OR(C3="",D3=""),"",・・・)で処理してやれば良いですね。
あと#3の回答も参考にさせてもらいながら、ちょっと別の式を立ててみました。
E3を
=IF(OR(C3="",D3="",D3-C3<0),"",MIN(MIN(MAX(12-C3*24,0),(D3-C3)*24)+MIN(MAX((D3*24-13),0),(D3-C3)*24),8))
F3を
=IF(OR(C3="",D3="",D3-C3<0),"",MAX(MIN(MAX(12-C3*24,0),(D3-C3)*24)+MIN(MAX((D3*24-13),0),(D3-C3)*24)-8,0))
とします。
C3、D3のいずれかが空白の場合は空白、D3にC3より前の時刻を書き込んでしまった場合も空白。また12:00~13:00の間は必ず休みで、退社時刻や出社時刻がこの間にかかった場合は、12:00から退社時刻まで、または出社時刻から13:00までが休憩時間として総勤務時間から差し引かれる、という風にしてみました。ちょっと煩雑になっていますが、昼休み前と昼休み後を分けて総勤務時間を出しています。
それから、ついでに日付の表示の方も
A3:A30までには日付(1~28)を入力、A31に
=IF(OR($A$1="",$B$1=""),A3+28,IF(DAY(DATE($A$1,$B$1,A3+28))=A3+28,A3+28,""))
と入力して以下A33までコピー。
B3を=DATE($A$1,$B$1,A3)として以下B30までコピー、書式を (aaa)に。B31に
=IF(OR($A$1="",$B$1=""),"( )",IF(A31="","",DATE($A$1,$B$1,A31)))
と入力して以下B33までコピー、B3:B33の行揃えを中央揃えに
という風に変えてみました。
年・月欄のA1またはB1が空欄であれば、1~31までの日付と、その横に空白の( )が表示されます。A1、B1が記入されれば、その年・月に応じた日数と曜日が表示されます。
良かったら試してみてください。
お礼
返事遅くなりましたが、 なんとか完成いたしました。 有難うございます。