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

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

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

You are not logged in.

Announcement

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


#1 2016-01-21 17:42:15

yokomi
Guest

最終日から何日経過したかでランクをつけたいのですが…

お恥ずかしいのですが、ファイルメーカーをはじめたばかりなんですが、
わからないことがあってサイトで探していたらこちらが見つかりましたので、
教えていただきたいことがあるのですが、、、

ファイルメーカー14 windows8の環境です。

お店をしていまして、顧客管理をしています。
「最終来店日」のフィールドがあり、来店したらドロップカレンダーで日付を入力します。
「経過日」のフィールドを作り、「get(日付)-最終来店日」で日数を計算し、
今後の戦略として、「最終来店日」を元にランクをつけようと思い、

「来店_ランク」のフィールドを作り、
最終来店日からの経過日でランクをつける計算式を(ほんとに恥ずかしいのですが、)

Case ( IsEmpty ( 最終来店日 ) = 1 ; "" ;
       経過日 < 150 ; "D" ;
       経過日 > 151 and 経過日 < 240 ; "C" ;
       経過日 > 241 and 経過日 < 365 ; "B" ;
       経過日 > 366 ; "A")

として、レイアウト終了で確認したら、ランクにアルファベットが割り当てられたので、
できた!と思ったら、真ん中(「B」「C」)はよさそうなのですが、
150日以内の顧客と400日以上経過した顧客も「D」になっています。
「<」「>」などの比較演算子(というのでしょうか)がわかってないのかもしれませんが、、、
どうか教えてください。

#2 2016-01-21 19:45:09

Hiro
Member

Re: 最終日から何日経過したかでランクをつけたいのですが…

経過日の計算結果の形式は、数値になっていますか?
Case式では、数値比較したいようですから、

それと、Case式は上から順に条件判断して行きますから、式の記述は、
Case ( IsEmpty ( 最終来店日 ) ; "" ;
         経過日 < 150 ; "D" ;
         経過日 < 240 ; "C" ;
         経過日 < 365 ; "B" ;
         "A"
   )
とスッキリと書けます。
また、IsEmpty(XX)=1 は、男の男性 と云うような物で =1 は不用。
IsEmpty() は論理値を返しますから、あえて論理式立てにする必要はありません。

Offline

#3 2016-01-21 20:42:08

Shin
Member

Re: 最終日から何日経過したかでランクをつけたいのですが…

上の式ですと、150, 240, 365 の時に値を返さないので考える必要が有りますね。
また、経過日のフィールドは、数字で返っていますか。テキストになっていませんか。

Offline

#4 2016-01-22 08:36:15

yokomi
Guest

Re: 最終日から何日経過したかでランクをつけたいのですが…

Hiro様

ご回答ありがとうございます。
そんなにすっきりした計算式でできるのですね。
Case関数は「上から順に条件判断」ですね。
IsEmptyも勉強になりました。

Shin様
そう言われれば、ホントですね・・・指摘されるまで気づきませんでした・・・
「<=(かな…)」以上とすればいいんですね。

ご回答のおかげでうまくいきました。
Hiro様、Shin様、誠にありがとうございました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 508.66 KiB (Peak: 515.45 KiB) ]