みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
会計期が変則で変更になり、
今まで6月30日が期末だったのですが、
・24期 始期:2022年7月1日 決算期:2022年8月31日 7/1~8/31
・25期 始期:2022年9月1日 決算期:2023年8月31日(前期:9/1~2/28 後期: 3/1~8/31)
となり、それ以降は8/30が期末になります。
契約日date_keiyaku の会計期を計算するのに、
If ( Date ( 7 ; 1 ; 2022 ) ≤ date_keiyaku ≤ Date ( 8 ; 31 ; 2022 ) ;
Year ( date_keiyaku )-1998 ;
If ( Month ( date_keiyaku ) < 9 ; Year ( date_keiyaku )-1998; Year ( date_keiyaku )-1997 )
)
としたのですが、動作しません。が、どこが間違っているのかわかりません。ご教授願えませんでしょうか?
是非よろしくおねがいします。
Offline
24期だけを別に計算する必要はありませんよ。
If ( Date ( 7 ; 1 ; 2022 ) ≤ date_keiyaku ;
If ( Month ( date_keiyaku ) < 9 ; Year ( date_keiyaku )-1998; Year ( date_keiyaku )-1997 ) ;
If ( Month ( date_keiyaku ) < 7 ; Year ( date_keiyaku )-1999; Year ( date_keiyaku )-1998 ) ;
)
で十分です。
ちょっと変わった計算式です。最もシンプルでしょう。
Case ( date < Date ( 7 ; 1 ; 2022 ) ; Year ( date + 184 ) - 1999 ; Year ( date + 122 ) - 1998 )
Last edited by Shin (2022-09-01 10:35:49)
Offline
> Date ( 7 ; 1 ; 2022 ) ≤ date_keiyaku ≤ Date ( 8 ; 31 ; 2022 )
このような条件式はダメです
Date ( 7 ; 1 ; 2022 ) ≤ date_keiyaku
and
date_keiyaku ≤ Date ( 8 ; 31 ; 2022 )
ですね。
書かれた式から、
23期 2021/7/1 ~ 2022/6/30
22期 2020/7/1 ~ 2021/6/30
・・・
として、、
Case ( date_keiyaku ≤ Date ( 6 ; 30 ; 2022 ) ;
Year ( date_keiyaku ) - 1999 + ( Month ( date_keiyaku ) > 6 ) ;
Year ( date_keiyaku ) - 1998 + ( Month ( date_keiyaku ) > 8 )
わかりやすく。。
Offline
間違ってるのは
Date ( 7 ; 1 ; 2022 ) ≤ date_keiyaku ≤ Date ( 8 ; 31 ; 2022 ) ;
こういう書き方はできないという点が1つです。
比較演算は順番に行われるので、最初の演算で比較結果の論理値が返って、次の演算は論理値と日付の比較になってしまいます。
Pages: 1
[ Generated in 0.006 seconds, 8 queries executed - Memory usage: 504.8 KiB (Peak: 509.34 KiB) ]