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

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

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

You are not logged in.

Announcement

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


#1 2017-03-17 13:06:44

melonjp4
Member

最頻値の求め方

いつも参考にさせて頂いています。

ファイルメーカーにてExelのMode関数のように最頻値を求めることは可能でしょうか?

フィールド1~フィールド4に数値を入力し、最頻値を取得する処理を行いたいと考えています。

環境は
FileMaker 15 Pro
Win7 Pro 32bit

Offline

#2 2017-03-17 14:28:40

Hiro
Member

Re: 最頻値の求め方

最頻値を求めるにはサンプル数が少な過ぎとも思えますが、
一応ループ式から求める作例、

Let([
   $lst=List(フィールド1;フィールド2;フィールド3;フィールド4);
   $n=ValueCount($lst);
   $max="";
   $res="";
   $fnc="Case($n=0; $res;
      Let([
         #itm=Getvalue($lst; $n);
         #vct=ValueCount(FilterValues($lst; #itm));
         $max=Max(#vct; $max);
         $res=Case($max=#vct; #itm; $res);
         $n=$n-1
      ]; Evaluate($fnc))
   )"
];
   Evaluate($fnc)
)


※ 複数同順の場合は、先出の方の値を返す式にしています。

Last edited by Hiro (2017-03-18 21:28:20)

Offline

#3 2017-03-21 09:24:34

チポ
Member

Re: 最頻値の求め方

Hiroさんの式をお借りして、
全てが異なる値の場合、「なし」を返し、
同順複数の場合、そのリストを返す式を。

Let ( [
   $lst = List ( フィールド1 ; フィールド2 ; フィールド3 ; フィールド4 ) ;
   $n = ValueCount ( $lst ) ;
   $max = 0 ;
   $res= "なし" ;
   $fnc = "Case ( $n = 0 ; $res ;
      Let ( [
         $itm = Getvalue ( $lst ; $n ) ;
         $vct = ValueCount ( FilterValues ( $lst ; $itm ) ) ;
         $res = Case ( $vct = 1 ; $res ;
                              $max < $vct ; $itm ;
                              $max = $vct ; Case ( IsEmpty ( FilterValues ( $res ; $itm ) ) ; List ( $itm ; $res ) ; $res ) ; $res ) ;
         $max = Max ( $vct ; $max ) ;
         $n=$n-1
      ]; Evaluate($fnc))
   )"
];
   Evaluate($fnc)
)


対象のフィールド数を問いません。

Offline

#4 2017-03-21 11:02:38

melonjp4
Member

Re: 最頻値の求め方

HIROさんチポさんご回答ありがとうございます。

やはり最頻値を求めるのは難しそうですね。上記計算式で出来るようになりました。
ありがとうございました。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 550.98 KiB (Peak: 583.33 KiB) ]