みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FileMaker14 pro を使用しています。
●実現したいこと
20日〆の自動計算をしたいです。
フィールド1に日付を入力し、日付が20日以内であればフィールド2に当月を表示
21日以降であれば、フィールド2に次月を表示する
●例
フィールド1に2020/07/17 と入力すると
フィールド2に2020/7 と自動で入力される。
フィールド1に2020/07/21 と入力すると
フィールド2に2020/8 と自動で入力される
どの関数を使い、どのような処理を書けば実現できるでしょうか。
お力を貸していただきたいです。
以上、よろしくお願いします。
締め日を算出する方法として
1)Day関数で年月日の日を取り
2)20以降なら翌月20日、さもなければ当月20日
という計算式でフィールド2に自動入力するか計算フィールドとすれば良いかと思います。
If (
Day ( フィールド1 ) > 20 ;
Date ( Month ( フィールド1 )+1 ; 20 ; Year ( フィールド1 ) ) ;
Date ( Month ( フィールド1 ) ; 20 ; Year ( フィールド1 ) )
)
※も少し短く書くなら
Date ( Month ( フィールド1 ) + If ( Day( フィールド1 )>20 ; 1 ) ; 20 ; Year ( フィールド1 ) )
実務的には締め日が非営業日だったら補正する必要があったりしますが…
あと、2020/7/20の/20が本当に不要であれば、右3文字をテキスト関数で削除すれば良いです。
Last edited by koeda (2020-07-17 18:59:43)
Offline
Date ( Month ( フィールド1 - 20 ) + 1 ; 20 ; Year ( フィールド1 - 20 ) )
が締め日です。20を変化させると、任意の日付で計算できます。末締めは0を使います。
年月が必要でしたら、日付のままでインスペクタから日付書式で表示させてもいいです
Last edited by Shin (2020-07-20 08:46:30)
Offline
> 2020/7
このような値だと、
このフィールドでソートしたときに、年月順に並びません。
2020/07
の様に桁数をそろえた方がいいでしょう。
Offline
私のお薦めは、
Let (
D = Date ( Month ( フィールド1 - 20 ) + 1 ; 20 ;
Year ( フィールド1 - 20 ) ) ; Year ( D ) + Month ( D ) / 100 + .01
)
としておき、小数点を / に変更する表記です。数値ですので、のちの処理が早くなります。
Last edited by Shin (2020-07-20 09:27:45)
Offline
Pages: 1
[ Generated in 0.013 seconds, 7 queries executed - Memory usage: 507.98 KiB (Peak: 514.68 KiB) ]