みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Ver19を使っています。
ある特定の期間の売上を下記のIf関数で抽出しようとしてます。
(2022/3/1~2023/2/28の期間内の売上数を抽出しようとしてます。)
If( 2022/3/1≤ 売上日 ≤ 2023/2/28;数量;0)
結果としては2022/3/1より前の売上日のものも、0にはならず、そのまま数量が表示されてしまいます。
If関数の使い方が間違ってますでしょうか?
比較の論理式は、1項目ずつ書いて、それを、論理演算子で結びます。ですから、
If ( 2022/3/1≤ 売上日 and 売上日 ≤ 2023/2/28 ; 数量 ; 0 )
とします。ただ、このままでは日付として認識してくれないので、
If ( GetAsDate ( "2022/3/1" ) ≤ 売上日 and 売上日 ≤ GetAsDate ( "2023/2/28" ) ; 数量 ; 0 )
としましょう。または、
Case (
売上日 < GetAsDate ( "2022/3/1" ) ; 0 ;
売上日 ≤ GetAsDate ( "2023/2/28" ) ; 数量 ;
0
)
としてもいいです。
Last edited by Shin (2022-08-02 09:20:18)
Offline
計算式中の日付の指定には GetAsDate でも良いですが Date が適します。
Date ( 3 ; 1 ; 2022 )
Date ( 2 ; 28 2023 )
なお、質問の計算式ではテキストとしても認識されていないのでは?
Offline
If ( Year ( 売上日 + 306 ) = 2023 ; 数量 ; 0 )
という簡単な式でもいいですよ。(理論は、考えてみてください)
元の式だと
2022/3/1≤ 売上日 ≤ 2023/2/28
最初の8文字が計算式と見做され、674となり、売上日が数字になるとそれ以上にはなるので、不等号は1を返します。最後の8文字は36位なので、不等号は1を返します。つまり常に真になっています。
Last edited by Shin (2022-08-02 13:48:55)
Offline
早速ご回答有難うございます。
試してみます。
問題解決できました。
ありがとうございました。
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 508.16 KiB (Peak: 514.81 KiB) ]