みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FileMaker Pro 19
macOS Ventura
テーブル内に「開始時刻」と「終了時刻」フィールドがあります。
例)
以下の値が入ったレコードがあるとします。
開始時刻 8:00
終了時刻 18:00
この場合、30分刻みで上記時刻(開始〜終了)の範囲内かどうかを判定したいと思います。
同一テーブル内に、以下の様な30分置きの判定フィールドを設置して、開始時刻と終了時刻の範囲内であれば "1" をセットしたいと考えています。
結果としては以下の様になって欲しいです。
・800_830 1
・830_900 1
・900_930 1
・
・
・
・1800_1830
・1830_1900
ご教授のほどよろしくおねがします。
Last edited by u1 (2023-05-05 15:49:58)
Offline
結果のフィールドは繰り返しにした方が扱いが楽ってことはないですか?
計算式も1つで済みます。
himadaneeさん
繰り返しにする場合は以下のフィールドを作り、そこに計算式を設定し範囲に入る場合"1"を返す感じでしょうか。
フィールド:時刻範囲
繰り返し:26
※8:00-19:00までを30分おきに判定する場合
その場合の計算式ばどの様にすれば正しい結果が返るかご教授願えますでしょうか。
Offline
私なら、48の繰り返しにしてしまいます。必要なところだけ抜き出せばいいです。
Int ( Div ( 時刻[1] ; 1800 ) ) = Get ( 計算式繰り返し位置番号 ) - 1
25繰り返しにするのでしたら、
Int ( Div ( 時刻[1] ; 1800 ) ) = Get ( 計算式繰り返し位置番号 ) + 13
Offline
11時間なので繰り返しは22で足ります。
Let ( [
s = Time ( 7 ; 30 + Get(計算式繰り返し位置番号) * 30 ; 0 ) ;
e = s + Time ( 0 ; 30 ; 0 )
] ;
Case ( s < 終了時刻[1] and 開始時刻[1] < e ; 1 )
)
時刻で比較してますが、番号に変換して(0800~0830が1になるように)比較した方が式は簡単かも。。。
開始終了時刻が30分単位でない場合はちょっと変わってきます。(上の式は少しでも入ってれば1になります)
1を表示して、
その後に何をしたいのでしょう?
それによっては、繰り返しではまずい場合がありそうですが、、
Offline
Pages: 1
[ Generated in 0.019 seconds, 9 queries executed - Memory usage: 511.66 KiB (Peak: 518.96 KiB) ]