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

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

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

You are not logged in.

Announcement

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


#1 2017-01-12 00:10:43

iiio
Guest

条件付き書式をするために値の任意の順位付けはできるのでしょうか

お世話になります。
環境はFMP12、win8です。

条件付き書式でAとBのフィールドを比較して値がA>Bとなったら色を変えて表示したいです。

このAとBは同じフィールドで繰り返しを定義しています。
Aは[1]、Bは[2]というようにです。

このAとBはドロップダウンの値一覧で「5、4-、4、3、3-、2、1」
というような数字を充てて選択するようになっています。

私がやりたいのは、例えば4-と4を比較したときに4の方が上になるように定義したいのですが、条件付き書式で充てている値の順位付けの定義をする方法はあるのでしょうか?

分かりにくいければ追記させてもらいます。
よろしくお願い致します。

#2 2017-01-12 01:39:06

Hiro
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

前提として、AとBは、同回数の繰り返しテキスト(4-は数字ではナイ)フィールドで
条件付き書式を設定するフィールドも同回数の繰り返しフィールドであるものとして、
その条件式は、
      Evaluate(Substitute(A; ["-";"-0.1"])) > Evaluate(Substitute(B; ["-";"-0.1"]))

Offline

#3 2017-01-12 11:09:00

シャチ
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

まさか数字フィールではないとは思うけど
数字フィールドにも 3- は入力可能だから
その場合は、下の式の成立するかと思います。

Let(
[ $a=A;
    $a=Case(PatternCount ( $a ; "-" );$a*-1;$a);
   $b=B;
    $b=Case(PatternCount ( $b ; "-" );$b*-1;$b)
] ;
  $A>$B
)

Offline

#4 2017-01-12 11:48:33

シャチ
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

Hiro wrote:

      Evaluate(Substitute(A; ["-";"-0.1"])) > Evaluate(Substitute(B; ["-";"-0.1"]))

僭越ですが
  Evaluate(Substitute(A; ["-";"*-1"]))> Evaluate(Substitute(B; ["-";"*-1"]))
でないかと思うのですが。

私の前の式よりうんと簡単で(感服)
テキストでも数字でもいけてます

私の前の式も、テキストでもいけてます。

FMP12 MacOS Sierraで確認

Offline

#5 2017-01-12 12:02:26

チポ
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

> AとBは同じフィールドで繰り返しを定義しています
ですから、一つの繰り返しフィールドということでは。

繰返しフィールドをFとすると
  A = F[1]
  B = F[2]
ということ?

この場合、繰り返しは二回と考えていいのでしょうか?


> ドロップダウンの値一覧で「5、4-、4、3、3-、2、1」
この大小は
  5 > 4 > 4- > 3 > 3- >・・・・
ということですよね。

とするとシャチさんの考えとは異なることになりますね。

Offline

#6 2017-01-12 12:05:29

シャチ
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

あ〜〜〜ぁ 想定外でした。
とすると、現時的にどんな比較なんだろう?
繰り返し位置がずれたら、計算式たいへんだぁ・・・

Offline

#7 2017-01-12 12:09:54

Hiro
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

> #3 シャチさん
AとBは同数とは限らないので、4- > 3 が真となる変換が必要がなあと?
意図する降順は私が察するに、
5>4>4->3>3->2>1

> #4 シャチさん
私の式の意図は、「-0.1」だからこそ成立するものです。(選択数字は整数だけを利用)
「ー」はマイナスではなく、格付け記号のようなものと理解しています。

Last edited by Hiro (2017-01-12 12:12:47)

Offline

#8 2017-01-12 12:15:41

シャチ
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

Hiro wrote:

>
AとBは同数とは限らないので、4- > 3 が真となる変換が必要がなあと?

ご説明ありがとうございます。

想定していないことばかりで、困惑。
単なる 2フィールドの比較ではない?
ということですか?
でも、元主 何をしようと? 意図がつかみにくいなぁ。


****
今読み返して
なんとか理解。でも
単純に 4と4ーはマイナス記号あるなしの比較 4ーと3はマイナス記号とっての比較 ?
本当の並びは
「5、、4、4-、3-、3-、2、1」
で5が最上位ということなんですか?

あ〜〜ぁ また恥かきだなぁ。

Last edited by シャチ (2017-01-12 12:23:41)

Offline

#9 2017-01-12 12:33:39

Hiro
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

#1 iiio wrote:

このAとBは同じフィールドで繰り返しを定義しています。
Aは[1]、Bは[2]というようにです。

質問者の意図を#2式は勘違いしてました。
#5チポさんが言われるように繰り返しフィールドは1つでその回数が2回としたときの式は、
      Evaluate(Substitute(繰り返しフィールド[1]; ["-";"-0.1"])) > Evaluate(Substitute(繰り返しフィールド[2]; ["-";"-0.1"]))

Offline

#10 2017-01-12 12:57:47

Hiro
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

考え方を変えて、一覧の表示順位を比較する方法なら、
   Let([
      #値一覧=List(5;4;"4-";3;"3-";2;1);
      #AB一覧=List(繰り返しフィールド)
   ];
      FilterValues(#値一覧; #AB一覧) = FilterValues(#AB一覧; #AB一覧)
   )

Offline

#11 2017-01-12 13:01:05

tim
Guest

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

他には、Positionで位置を比較すればいい。値一覧の順と大小順が違うんですかね。

#12 2017-01-13 08:13:19

iiio
Guest

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

皆さんご回答をいただきありがとうございます。

情報不足で申し訳ありませんでした。
繰り返しフィールドは1つで回数は6回を定義しています。

#13 2017-01-13 09:09:05

チポ
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

繰り返し6回をどのように比較するのでしょうか?

最初の説明では
  1回 > 2回
だけでしたが、他の回数とはどのように?

Last edited by チポ (2017-01-13 09:09:32)

Offline

#14 2017-01-13 09:23:03

tim
Guest

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

4-と4を比較したときに4の方が上
なら値一覧も
「5、4-、4、3、3-、2、1」
ではなく
「5、4、4-、3、3-、2、1」
じゃないのかなあ?

-が付く方が下という比較は、
F[1]&"A">F[2]&"A"
のように-より大きい文字コードの文字を連結して比較してもよいでしょう。

繰り返しの順に大きくなるように値が入ってなかったらそこを警告、というようなことかな?

#15 2017-01-13 10:56:52

Hiro
Member

Re: 条件付き書式をするために値の任意の順位付けはできるのでしょうか

> 繰り返しフィールドは1つで回数は6回を定義しています。
後出しジャンケンでしかも更に疑問が拡大してますネ。
また類推しなくては成りませんが、

もし、6回繰り返しへの入力順(前後関係)が「5、4、4-、3、3-、2、1」の
序列に成っているかを判別するなら、#10の判別式がそのまま有効です。
※判別基準が「前項>後項」で、重複入力値の場合「4>4」は「否」が返ります。

重複入力も判別、即ち、判別基準が「前項>=後項」の場合は、複雑になりそうなので、
質問者の回答再説明を待って、質問内容が確認できてから考えてみます。

Last edited by Hiro (2017-01-13 11:31:33)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 8 queries executed - Memory usage: 533.91 KiB (Peak: 554.45 KiB) ]