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

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

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

You are not logged in.

Announcement

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


#1 2021-11-08 11:23:19

ttoosshhii
Guest

点数のランク付け

いつも参考にさせて頂いています。
WIN10 Filemaker18を使用しています。

テストの点数があり、それを順に並び替えて上位25%はAランク、中上25%はBランク、中下25%はCランク、下位25%はDランクとしてランク付けしたいのです。

どのようにしたらよいか教えて頂けないでしょうか。

#2 2021-11-08 13:59:43

Shin
Member

Re: 点数のランク付け

デカルト積で自己リレーション(いわゆる×リレーション)をはり、
Case (
    点数 ≥  GetNthRecord ( リレーション::点数 ; Get ( レコード数 ) / 4 ) ; "A" ;
    点数 ≥  GetNthRecord ( リレーション::点数 ; Get ( レコード数 ) / 2 ) ; "B" ;
    点数 ≥  GetNthRecord ( リレーション::点数 ; Get ( レコード数 ) * 3 / 4 ) ; "C" ;
    "D"
)
でどうでしょう。同点は上に入るとします。
人数が4で割り切れるという前提での式ですので、それ以外でしたら、規則を定めて、数字を書き換えてください。

Offline

#3 2021-11-08 14:30:32

himadanee
Guest

Re: 点数のランク付け

例外的な状況を考えると、ちょっと面白い。
全員0点なら、全員Aランクでいいの?

#4 2021-11-08 16:42:29

Shin
Member

Re: 点数のランク付け

普通は、平均点から偏差値をだして、60%tile 位で切るかな。

Offline

#5 2021-11-08 19:52:33

nice-guy
Member

Re: 点数のランク付け

下記のページが参考になりませんか
https://bit.ly/3GYPVwV

Offline

#6 2021-11-09 14:01:37

ttoosshhii
Guest

Re: 点数のランク付け

Shinさんありがとうございます。

デカルト積で自己リレーション(いわゆる×リレーション)をはるというのが、ちょっと解釈が追いついていないので少し勉強してみます。

#7 2021-11-09 14:02:55

ttoosshhii
Guest

Re: 点数のランク付け

himadaneeさん
だめですよね。

#8 2021-11-09 14:03:59

ttoosshhii
Guest

Re: 点数のランク付け

nice-guyさん

ちょっと見てみます。
ありがとうございます。

#9 2021-11-09 16:58:11

Shin
Member

Re: 点数のランク付け

単なる順位は、点数でソートしておいて、

Let (
[
	$or = Case (
			Get ( レコード番号 ) = 1 ; 1 ;
			点数 = $p ; $or ;
			Get ( レコード番号 )
		) ;
	$p = 点数
] ;
	$or
)

という式で全置換するだけでもいいですよ。

Last edited by Shin (2021-11-10 08:43:51)

Offline

#10 2021-11-10 12:07:04

ttoosshhii
Guest

Re: 点数のランク付け

shinさん
ありがとうございます。
内容が理解できてなかったのですが、そのままスクリプトを作成したら思い通りのものができました。
すごいです。

でも、よく理解できていません。
get(レコード番号)で順位を入力しているのはわかりますが、点数が同じ場合に同じ順位が入力される仕組みがわかりません。
Case関数内の(点数 = $p)とLet関数内の($p = 点数)というのは別の事を言ってるのでしょうか。

初歩的な質問ですみません。

#11 2021-11-10 12:28:32

Shin
Member

Re: 点数のランク付け

Case関数内の(点数 = $p)は、条件式です。
Let関数内の($p = 点数)は、変数を設定するコマンドです。

1ステップずつ動きを書き出していくと動きガよくわかるはずです。$or を評価するのが、$p を設定する前なので、前回設定値を使って評価します。

得点  $or $p
10    1    10    レコード番号が1
9     2    9      得点 ≠ 10 なので、レコード番号
9     2    9      得点 = 9 なので、$or
6     4    6      得点 ≠ 9 なので、レコード番号

Last edited by Shin (2021-11-10 14:09:43)

Offline

#12 2021-11-10 16:54:12

ttoosshhii
Guest

Re: 点数のランク付け

shinさん

重ね重ねありがとうございました。
こんなこともできるんですね。
非常に勉強になりました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 520.4 KiB (Peak: 525.3 KiB) ]