初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2020-06-04 19:37:32

ねね
Guest

深夜時間の出し方で、また困ってしまいました・・・

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 (#退社時刻>#深夜始点);
   #深夜休息=GetAsTime(休憩*60*60)-Max(0; #深夜始点-#出社時刻);
   #深夜勤務=Case(#is深夜; Min(#退社時刻;#深夜終点) - Max(#出社時刻;#深夜始点) - #深夜休息)
];
   (Div(#深夜勤務;15*60)*15*60) / (60*60)
))


HIROさんから教えていただいた計算式、こちらを入れてみたのですが、

(例1)
20:00~4:00 休憩1.5h
深夜時間は、「6」と表示させたいのですが、「6.5」と表示されています。


(例2)
20:00~4:30 休憩1h
深夜時間は、「6.5」と表示させたいのですが、「7.5」と表示されています。

(例3)
21:30~4:30 休憩2.25h
深夜時間は、「4.75」と表示されています。こちらの表示は正しいです。


例1、例2、を正しく出すには、どのようにしたらよろしいでしょうか?


よろしくお願い致します。

#2 2020-06-04 21:12:25

Hiro
Member

Re: 深夜時間の出し方で、また困ってしまいました・・・

済みません、変数「#深夜休息」を求める式にタイポミスがありました。
(※ Max()位置を誤ったポカミスでした。)

✖  誤式:  #深夜休息=GetAsTime(休息*60*60) - Max(0; #深夜始点-#出社時刻)

●  正式:  #深夜休息=Max(0; GetAsTime(休息*60*60) - (#深夜始点-#出社時刻))

Last edited by Hiro (2020-06-04 21:26:20)

Offline

#3 2020-06-05 15:15:11

ねね
Guest

Re: 深夜時間の出し方で、また困ってしまいました・・・

Hiro wrote:

済みません、変数「#深夜休息」を求める式にタイポミスがありました。
(※ Max()位置を誤ったポカミスでした。)

✖  誤式:  #深夜休息=GetAsTime(休息*60*60) - Max(0; #深夜始点-#出社時刻)

●  正式:  #深夜休息=Max(0; GetAsTime(休息*60*60) - (#深夜始点-#出社時刻))


HIROさんのこちらの式でできました!
本当にありがとうございます!

#4 2023-01-18 18:01:02

ねね
Guest

Re: 深夜時間の出し方で、また困ってしまいました・・・

ねね wrote:
Hiro wrote:

済みません、変数「#深夜休息」を求める式にタイポミスがありました。
(※ Max()位置を誤ったポカミスでした。)

✖  誤式:  #深夜休息=GetAsTime(休息*60*60) - Max(0; #深夜始点-#出社時刻)

●  正式:  #深夜休息=Max(0; GetAsTime(休息*60*60) - (#深夜始点-#出社時刻))


HIROさんのこちらの式でできました!
本当にありがとうございます!



以前こちらについて教えていただいたものです。
その節は、本当にありがとうございました。
再度、深夜に関する項目で改良をくわえたく、質問させていただきます。


深夜時間外と深夜時間どちらにも残業が発生する場合に
「深夜時間外残業時間」と「深夜残業時間」をそれぞれ出したいです。

(例)①16:00~6:00 累計14h 実働12h
    おかしな表記になりますが・・休憩2hは深夜時間外の16:00~18:00でとったとする。

    18:00~2:00で8hなので
   
    2:00~5:00の3hは深夜残業
    5:00~6:00の1hは深夜時間外残業 となります。

    深夜残業フィールドに「3」
    深夜時間外残業フィールドに「1」となるようなデータを作成したいです。

(例)②8:00~20:00 累計12 休憩2h 実働10h

    上記のような場合は
    深夜残業フィールドに「空白 or 0」
    深夜時間外残業フィールドに「2」となるようにしたいです。

こんなことは可能でしょうか・・・?
ご回答宜しくお願い致します。

#5 2023-01-18 19:45:12

himadanee
Guest

Re: 深夜時間の出し方で、また困ってしまいました・・・

それだと休憩なしで12時間労働してるので法律違反では?

#6 2023-01-21 21:26:58

himadanee
Guest

Re: 深夜時間の出し方で、また困ってしまいました・・・

違反かどうかはともかく実態を記録して計算しないといけないとして、休憩の時刻も記録する必要があるってことになりますね。
累計14h連続勤務だと、休憩が2回以上ということもあるのでは。(8時間の勤務で「勤務の中間に」1時間以上休憩、が義務です)
結構複雑そう。

#7 2023-01-22 08:39:39

Shin
Member

Re: 深夜時間の出し方で、また困ってしまいました・・・

勤務時間を単位時間ごとに繰り返しフィールドへ展開して、それぞれの位置で判定していく、という方法がいいのかも。

Offline

#8 2023-01-25 15:28:06

ねね
Guest

Re: 深夜時間の出し方で、また困ってしまいました・・・

ご返信ありがとうございます!


Let(
[
   #出社時刻=開始時間+Time((開始時間<Time(5;0;0))*24;0;0);
   #退社時刻=終了時間+Time((#出社時刻>終了時間)*24;0;0);
   #深夜始点=Time(22;0;0);
   #深夜終点=Time(5+24;0;0);
   #is深夜=(#出社時刻<#深夜終点) and (#退社時刻>#深夜始点)
];
   Case(#is深夜; Min(#退社時刻;#深夜終点) - Max(#出社時刻;#深夜始点))
)


現在、「深夜時間」フィールドに上記の式が入っており、計算結果は「時刻」に設定し、深夜時間を出しております。※一旦休憩時間は引かず
勤務時間が、21:00~6:15の場合「7:00」と表示されています。

「7:00」を「7」と表示することはできますか?

深夜時間内の休憩は、別フィールドに入力し、(例)「深夜時間内休憩」3.5hだと仮定し
深夜時間 「7」- 深夜時間内休憩「3.5」=3.5h が深夜時間の実働と結果がでるフィールドを作成しようと思っています!

ご回答よろしくお願いします。

#9 2023-01-26 07:30:32

himadanee
Guest

Re: 深夜時間の出し方で、また困ってしまいました・・・

時刻から時を取り出すのはHours()関数です。
(表示だけなら時刻書式でも設定できます。)

#10 2023-01-26 09:37:22

チポ
Member

Re: 深夜時間の出し方で、また困ってしまいました・・・

> 「7:00」を「7」と表示することはできますか
これは、例えば、
7:30 = 7.5
のようにしたいのでは?

そうならば、#1に書かれたHiroさんの式にありますが、、
時間 / (60*60)
でいいですね。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 567.98 KiB (Peak: 584.52 KiB) ]