みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になっております。Filemaker19で質問させてください。
任意の範囲内にある土曜日の日数を集計したいのですが割り出すことはできるでしょうか?
(例)2022/09/04 ~ 2022/09/24 の土曜日日数は 3回
方法ありましたらご教授下さい。よろしくお願いします。
1,範囲内最初の指定曜日の日付を求める(それが範囲外なら回数は0)
2,その日から最終日までの日数を求める
3,その日数を7で割って、小数点切り上げ
この考えでいいのでは。
Offline
なるほど。その方法で出せますね!ただ、
1,範囲内最初の指定曜日の日付を求める(それが範囲外なら回数は0)
が解りませんでした。
2022/09/04 ~ 2022/09/24 を範囲とした場合
2022/09/04からの最初の土曜日は2022/09/10となりますが
起点から2022/09/10を出すにはどのようにしたら良いでしょうか?
DayOfWeek関数で、日付からその曜日を数値で得られます。
ヘルプのリンクです
https://help.claris.com/ja/pro-help/con … fweek.html
Offline
適当に古い土曜日を選んで、
Div ( 終了日 - 土曜日 ; 7 ) - Div ( 開始日 - 1 - 土曜日 ; 7 )
でもいいかな。
土曜日は例えばDate(1;6;1)とかです。
期間を、D0 から D1 として、指定曜日をDOW(日曜日:1 火曜日:2 ...)
Div ( D1 + Mod ( 7 + DayOfWeek ( D1 ) - DOW ; 7 ) - D0 - Mod ( 7 - DayOfWeek ( D0 ) + DOW ; 7 ) ; 7 ) + 1
でいいようですよ。
修正しました。
Last edited by Shin (2022-10-07 16:04:30)
Offline
お教えいただいた内容を基に自分で考えたものが以下となりますがこれで大丈夫でしょうか?
<フィールド名>
日付開始
日付終了
土曜日開始日付(計算) 日付開始 + Day( 7 - DayOfWeek(日付開始))
土曜日の数(計算) Ceiling ( Day( 日付終了 - 土曜日開始日付 ) / 7 )
これで計算上問題ないでしょうか?
皆さんありがとうございます。
Shinさんの式を自分の環境に当てはめDOWを土曜日の7にし
Div ( 日付終了 + Mod ( 7 + DayOfWeek ( 日付終了 ) - 日付開始 - 7 ; 7 ) - Mod ( 7 - DayOfWeek ( 日付開始 ) + 7 ; 7 ) ; 7 ) + 1
としましたが 105490 とかの値になり、土曜を挟むと1増えるような感じでした。
どこが間違っているでしょうか?
himadaneeさんのもので出すことが出来ました!
Shinさんの式は今後他のもので助けになりそうなので、私の式の間違いを是非教えていただきたいです。
> 土曜日の数(計算) Ceiling ( Day( 日付終了 - 土曜日開始日付 ) / 7 )
Ceiling ( Day( 日付終了 - 土曜日開始日付 + 1 ) / 7 )
でしょう。
Offline
式を転帰間違いでした。
Div ( 日付終了 + Mod ( 7 + DayOfWeek ( 日付終了 ) - 7 ; 7 ) - 日付開始 - Mod ( 7 - DayOfWeek ( 日付開始 ) + 7 ; 7 ) ; 7 ) + 1
Offline
全ての方法で成功しました。
皆様様々な方法でお教えいただきありがとうございました!
Pages: 1
[ Generated in 0.005 seconds, 8 queries executed - Memory usage: 562.95 KiB (Peak: 568.2 KiB) ]