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

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

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

You are not logged in.

Announcement

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


#1 2017-01-28 09:30:55

naaak
Member

ランク判定の方法表示の計算式について

win7  fmp13です。
フィールドを fieldA,fieldB,fieldC,field結果 を 4つ設定してます
fieldA に 判定項目A について 上、中、下
fieldB に 判定項目B について 上、中、下
fieldC に 判定項目C について 上、中、下
を入力します。
field結果 に 上記3つの結果について 上、中、下 の値を計算で自動入力したいのです。
1) A,B,Cのどれかに「下」があれば、 「下」となる。
2) 「下」が無く「中」があれば、 「中」となる。
3) 「下」「中」が無く全部「上」ならば、 「上」となる。
です。
数字であれば、MAXやMIN関数でわかるのですが、文字の場合どのような計算式を書けば良いのでしょうか。

お願いします。

Offline

#2 2017-01-28 10:11:16

Shin
Member

Re: ランク判定の方法表示の計算式について

Let (
ls = List ( fieldA ; fieldB ; fieldC ) ;
Case (
  PatterCount ( ls ; "下" ) ; "下" ;
  PatterCount ( ls ; "中" ) ; "中" ; 
  "上"
)
)
FilterValues() と IsEmpty() を組み合わせて使っても良いかもしれません。

Last edited by Shin (2017-01-28 10:13:14)

Offline

#3 2017-01-28 10:16:21

シャチ
Member

Re: ランク判定の方法表示の計算式について

こんな計算式はどうでしょう
3個のフィールドをくっつけて判定します。
下の計算式のABCはそれぞれフィールドA・・・です。

Let([
       $A=A;$B=B;$C=C;
    $X=$a&$B&$C
     ];
     Case(PatternCount ( $X ; "下" );"下";
        PatternCount ( $X ; "中" );"中";
        PatternCount ( $X ; "上" )=3;"上"
    )
  )


PatternCount ( $X ; "上" )=3;"上"
は=3をなくすとどれは一つだけ上であと空欄でも上になります。

Offline

#4 2017-01-28 10:17:35

シャチ
Member

Re: ランク判定の方法表示の計算式について

あぁ かぶっちまった
でも式違うなぁ
いろいろあるみたいで・・・

Offline

#5 2017-01-28 11:10:49

tim
Guest

Re: ランク判定の方法表示の計算式について

書いてないから空欄の場合は存在しないかな。
こんな風でも
GetValue ( FilterValues ( "下¶中¶上" ; List ( fieldA ; fieldB ; fieldC ) ) ; 1 )

#6 2017-01-28 15:30:11

naaak
Member

Re: ランク判定の方法表示の計算式について

短そうな shin さんと tim さんので試してみます。
結果をまた報告します。

Offline

#7 2017-01-28 16:51:24

naaak
Member

Re: ランク判定の方法表示の計算式について

一番短い tim さんの式を使ったらうまく行きました。

GetValue ( FilterValues ( "下¶中¶上" ; List ( fieldA ; fieldB ; fieldC ) ) ; 1 )
この式の意味は、 3つのフィールド内の値を 下 中 上 の文字順優先に抽出(並べ替え)して
1番目の文字を返す。ということであってるのでしょうか。

Offline

#8 2017-01-28 17:06:05

tim
Guest

Re: ランク判定の方法表示の計算式について

大体そうです。同じ値が複数のフィールドにあっても1個しか抽出されないので、通常の並べ替えとはちょっと違うかな。

値やフィールドが増えた場合の変更が簡単。
値に改行があるとだめですね。

#9 2017-01-29 16:02:19

naaak
Member

Re: ランク判定の方法表示の計算式について

ありがとうございました。

"下¶中¶上" の順に各フィールドを検索し一番目の値を取得
GetValue ( FilterValues ( "下¶中¶上" ; List ( fieldA ; fieldB ; fieldC ) ) ; 1 )
値やフィールドが増えた場合の変更が簡単。
値に改行があるとだめ。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 556.35 KiB (Peak: 579.8 KiB) ]