みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
初めまして。
出勤時間と退勤時間から、勤務時間数のフィールドに時間数を求めたいのですが。どのようにすればいいでしょうか?
単純に退勤時間-出勤時間の式をいれようかと考えましたが、例えば
出勤時間が20:00
退勤時間が翌日2:00の場合
2:00の入力ではなく26:00と入力しないと、計算できないですか?
そして時間帯によって時給が異なるため、各時間帯の勤務時間数を出したいのです。 たとえば、20:00~21:00は時給Aのフィールドに、21:00以降は時給Bのフィールドに勤務時間数を入れたいです。
何か良い方法を教えていただければ幸いです。
出退勤時間を
日付をかまして タイムスタンプにすると計算が楽ですよ。
Offline
ありがとうございます!!やってみます。
退勤時間ー出勤時間で勤務時間を求めることはできたのですか。
出勤20:00 退勤24:30 の場合、勤務時間が4になってしまいます。
実際は4.5なのですが、どうすれば良いでしょうか?
> 出勤20:00 退勤24:30 の場合、勤務時間が4になってしまいます
どのような計算を?
時刻(時間ではないですよね)をどう入力しているのですか?
シャチさんの提案だと、例えば
出勤時刻 2013/08/26 20:00
退勤時刻 2013/08/27 00:30
ですよね、これをそのまま引けば
勤務時間 = 4:30
と求められます。
時給別の計算はできたのですか。
Offline
ちぽさんありがとうございます。
時間数の計算は解決しました。
ですが、時間帯の時給別はまだ完成していません…
詳細が分かりません
出勤・退勤時刻は
タイムスタンプですか?
その最小単位は、例えば、
1分間隔
15分間隔
60分間隔
とか、どれでしょう?
24時間を超える勤務は有りますか?
時給別の時間帯は二つに分かれるのみですか?
Offline
計算式で求めるには、勤務開始時刻によって条件分けする必要があり、かなり複雑な式になりますね。
原始的に、勤務状況を大きな繰り返しフィールドに展開して、枠ごとの時給を求めておき、合計してしまう、という方法の方が簡単かもしれませんね。
Offline
実例だと、20:00-21:00だけ時給A
21:00-は時給Bという一時間単位で区分されてます。
20:00出勤、25:00退勤の場合、時給Aフィールドに1、時給Bフィールドに4
のように入力されるよう表示させたいのですが。
詳細が分かりません
出勤・退勤時刻は
タイムスタンプですか?
その最小単位は、例えば、
1分間隔
15分間隔
60分間隔
とか、どれでしょう?24時間を超える勤務は有りますか?
時給別の時間帯は二つに分かれるのみですか?
> 出勤・退勤時刻は
> タイムスタンプですか?
> その最小単位は、例えば、
> 1分間隔
> 15分間隔
> 60分間隔
> とか、どれでしょう?
>
> 24時間を超える勤務は有りますか?
これへの答が有りません。
Offline
遅くなりすみません、、、
出勤退勤時刻のフィールドはタイムスタンプではなく、時刻になっています。
最小単位は30分間隔で、24時間を超える勤務はありません。
この方法を会計のテーブルにも応用して使いたいと思っています。
入店時間によってセット料金が変わるので。
> 出勤・退勤時刻は
> タイムスタンプですか?
> その最小単位は、例えば、
> 1分間隔
> 15分間隔
> 60分間隔
> とか、どれでしょう?
>
> 24時間を超える勤務は有りますか?
これへの答が有りません。
> 実例だと、20:00-21:00だけ時給A
一例です。
始めの時刻
20:00
20:30
44:00
44:30
が、
出勤・退勤時刻の間ならば時給A、他の時間が時給Bとなりますね。
退勤時刻が24時を超えた場合を考えて48時間表記にします。
時給Aの時間の計算式
Let ( [st = 出勤時刻 ;
et = 退勤時刻 + Case ( st > 退勤時刻 ; Time ( 24 ; 0 ; 0 ) ) ;
t1 = ( st<= Time ( 20 ; 0 ; 0 ) and et > Time ( 20 ; 0 ; 0 ) ) or
( st<= Time ( 44 ; 0 ; 0 ) and et > Time ( 44 ; 0 ; 0 ) ) ;
t2 = ( st<= Time ( 20 ; 30 ; 0 ) and et > Time ( 20 ; 30 ; 0 ) ) or
( st<= Time ( 44 ; 30 ; 0 ) and et > Time ( 44 ; 30 ; 0 ) ) ] ;
(t1 + t2) * 0.5 )
これでいいと思いますよ。
Offline
返信ありがとうございます。こちらの投稿見落としていました、せっかく親切に教えていただいたのに本当にすみません。やってみてまたご報告いたします。
> 実例だと、20:00-21:00だけ時給A
一例です。
始めの時刻
20:00
20:30
44:00
44:30
が、
出勤・退勤時刻の間ならば時給A、他の時間が時給Bとなりますね。退勤時刻が24時を超えた場合を考えて48時間表記にします。
時給Aの時間の計算式
Let ( [st = 出勤時刻 ;
et = 退勤時刻 + Case ( st > 退勤時刻 ; Time ( 24 ; 0 ; 0 ) ) ;
t1 = ( st<= Time ( 20 ; 0 ; 0 ) and et > Time ( 20 ; 0 ; 0 ) ) or
( st<= Time ( 44 ; 0 ; 0 ) and et > Time ( 44 ; 0 ; 0 ) ) ;
t2 = ( st<= Time ( 20 ; 30 ; 0 ) and et > Time ( 20 ; 30 ; 0 ) ) or
( st<= Time ( 44 ; 30 ; 0 ) and et > Time ( 44 ; 30 ; 0 ) ) ] ;
(t1 + t2) * 0.5 )これでいいと思いますよ。
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 568.35 KiB (Peak: 584.89 KiB) ]