みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
深夜時間を出す計算式を下記のように入れています。
この式だと、
(例)22:00~3:00だと5時間と表示されます。
ですが、22:30~3:00だと「4時間」と表示されてしまいます。「4.5時間」と出したいです。
※おそらく、開始時間が22:00~ではないと、正しい時間が表示されません。
どのようにしたら、よろしいでしょうか?ご回答宜しくお願い致します。
If ( 従業員区分 = "社員" ; "";
Let(
[
#出社時刻=開始時間+Time((開始時間<Time(5;0;0))*24;0;0);
#退社時刻=終了時間+Time((#出社時刻>終了時間)*24;0;0);
#深夜始点=Time(22;0;0);
#深夜終点=Time(5+24;0;0);
#is深夜=(#出社時刻<#深夜終点) and (#退社時刻>#深夜始点);
#深夜休息=Max(0; GetAsTime(休憩*60*60) - (#深夜始点-#出社時刻));
#深夜勤務=Case(#is深夜; Min(#退社時刻;#深夜終点) - Max(#出社時刻;#深夜始点) - #深夜休息)
];
(Div(#深夜勤務;15*60)*15*60) / (60*60)
))
追記です。
0:00~2:00で入力すると、「0時間」と表示されます。
0:00~3:00だと、「1時間」と表示されます。
どのようにしたらよろしいでしょうか・・・
ご回答宜しくお願い致します。
「深夜休息」時間が、「無」指定や「深夜勤務」時間を超えるミス指定の対策が不備でした。
補正式は、
If ( 従業員区分 = "社員" ; "";
Let(
[
#出社時刻=開始時間+Time((開始時間<Time(5;0;0))*24;0;0);
#退社時刻=終了時間+Time((#出社時刻>終了時間)*24;0;0);
#深夜始点=Time(22;0;0);
#深夜終点=Time(5+24;0;0);
#is深夜=(#出社時刻<#深夜終点) and (#退社時刻>#深夜始点);
#深夜休息=Max(0; Min(GetAsTime(休憩*60*60); GetAsTime(休憩*60*60)-(#深夜始点-#出社時刻)) );
#深夜勤務=Case(#is深夜; Min(#退社時刻;#深夜終点) - Max(#出社時刻;#深夜始点) - #深夜休息)
];
(Div(Max(0;#深夜勤務);15*60)*15*60) / (60*60)
)
)
Last edited by Hiro (2020-09-16 12:23:33)
Offline
深夜時間、正しく表示されるようになりました!
いつも本当にありがとうございます!本当に助かりました・・・
ありがとうございました!
Pages: 1
[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 505.07 KiB (Peak: 515.82 KiB) ]