
はじめに
こんにちは、ティーマネジメントのゆったです。
今年もやっと肌寒くなってきました。
通勤には寒いですが、チャイにホットワインに甘酒などなど、温かい飲み物が美味しく飲めるのは嬉しいですね❁❁❁
おすすめは牛乳にお砂糖とブランデーを垂らして温めた大人のホットミルク☕
体が温まってホッと一息つけますので、寒い日の夜におすすめです!
ーーー
さて今回ご紹介するのは、FileMakerで今日が何週目かを計算させる方法です。
1週目の日曜だけ配信したい、逆に3週目は定休日にしたい…など、その月の指定の週の曜日にだけ処理を行いたい場合がありますよね。
今回は、そういった時に必要になる"現在が今月の何週目なのか"という計算方法をご紹介したいと思います!

今日は何週目? WeekOfYear関数の使い方
FileMakerには、1月1日から指定の日付までの経過週数を返すWeekOfYear関数があります。
このWeekOfYear関数を使用した下記のような計算式で本日が第何周目かを算出することができます。
WeekOfYear ( Get ( 日付 ) ) - WeekOfYear ( Date ( Month ( Get ( 日付 ) ) ; 1 ; Year ( Get ( 日付 ) ) ) ) + 1
では、この計算式を分解して解説していきたいと思います。
まず、
WeekOfYear ( Get ( 日付 ) )
で、本日が今年の1月1日から何週経過しているかを計算します。
2024/10/31に実行した場合は、2024/1/1から44週経過しているので、「44」という値が返ってきます。
次に、
WeekOfYear ( Date ( Month ( Get ( 日付 ) ) ; 1 ; Year ( Get ( 日付 ) ) ) )
で、今月の1日が今年の1月1日から何週経過しているかを計算します。
2024/10/31に実行した場合は、2024/10/1 は 2024/1/1から40週経過しているので、「40」という値が返ってきます。
そして、上記の二つを引き算し、
今月の1日から、本日が何週経過したかを計算します。
WeekOfYear ( Get ( 日付 ) ) - WeekOfYear ( Date ( Month ( Get ( 日付 ) ) ; 1 ; Year ( Get ( 日付 ) ) ) )
しかしこれだと、初日から何週経過したかの数字なので、1週目が 0 になってしまいます。
(1週目は初日からまだ1週も経過していないので…)
つまり、2024/10/31に実行した場合は、5週目の「5」が返ってきて欲しいのですが、「44-40」で「4」という値が返ってきてしまいます。
そのため、1週目を「1」と計算させるために最後に1を足します。
WeekOfYear ( Get ( 日付 ) ) - WeekOfYear ( Date ( Month ( Get ( 日付 ) ) ; 1 ; Year ( Get ( 日付 ) ) ) ) + 1
これで、完成です!!
ただし、この WeekOfYear関数 だと週を数える起点とする曜日を指定できないので、日曜日を起点にして週数を数えているということに注意して下さい。
因みに、Let関数にまとめると下記のようになります。
結果は同じなので、使用する場面に応じて使い分けていただければと思います❁
Let (
[
#日付 = Get ( 日付 ) ;
] ;
)
さいごに
よく使用する1週目、2週目…といった表現ですが、システム内で算出するにはちょっとした工夫が必要です。
既存のシステムにワンポイントこういった細かい機能追加をしたい!
といったご依頼も受け付けておりますので、
こんなこともできるのかな?と気になる事がありましたらぜひお気軽にお問い合わせください❀❀❀