初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2022-08-01 18:47:15

エガ
Guest

If関数を日付の範囲に用いた場合にうまく条件が適用されない

Ver19を使っています。
ある特定の期間の売上を下記のIf関数で抽出しようとしてます。
(2022/3/1~2023/2/28の期間内の売上数を抽出しようとしてます。)

If( 2022/3/1≤ 売上日 ≤ 2023/2/28;数量;0)

結果としては2022/3/1より前の売上日のものも、0にはならず、そのまま数量が表示されてしまいます。
If関数の使い方が間違ってますでしょうか?

#2 2022-08-01 18:53:26

Shin
Member

Re: 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

#3 2022-08-01 20:05:32

Moz
Member

Re: If関数を日付の範囲に用いた場合にうまく条件が適用されない

計算式中の日付の指定には GetAsDate でも良いですが Date が適します。

Date ( 3 ; 1 ; 2022 )
Date ( 2 ; 28 2023 )

なお、質問の計算式ではテキストとしても認識されていないのでは?

Offline

#4 2022-08-01 20:15:47

Shin
Member

Re: If関数を日付の範囲に用いた場合にうまく条件が適用されない

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

#5 2022-08-02 09:08:51

エガ
Guest

Re: If関数を日付の範囲に用いた場合にうまく条件が適用されない

早速ご回答有難うございます。
試してみます。

#6 2022-08-02 13:04:40

エガ
Guest

Re: If関数を日付の範囲に用いた場合にうまく条件が適用されない

問題解決できました。
ありがとうございました。

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.004 seconds, 7 queries executed - Memory usage: 510.95 KiB (Peak: 517.98 KiB) ]