みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
FMP14 Windows7の環境です。
体力測定を管理するソリューションを作成しておりまして、
途中までは順調にいってたんですが、頓挫してしまいました。
測定値の評価についてです。
例)
「握力測定」
49kg →10点
45kg~48kg→ 9点
42kg~44kg→ 8点
39kg~41kg→ 7点
36kg~38kg→ 6点
32kg~35kg→ 5点
29kg~31kg→ 4点
25kg~28kg→ 3点
22kg~24kg→ 2点
21kg~ → 1点
というような具合で、評価をするのに
case関数にて
Case ( GS_Result_Average ≤ 21 ; 1 ;
GS_Result_Average ≤ 24 and GS_Result_Average ≥ 22 ; 2 ;
GS_Result_Average ≤ 28 and GS_Result_Average ≥ 25 ; 3 ;
GS_Result_Average ≤ 31 and GS_Result_Average ≥ 29 ; 4 ;
GS_Result_Average ≤ 35 and GS_Result_Average ≥ 32 ; 5 ;
GS_Result_Average ≤ 38 and GS_Result_Average ≥ 36 ; 6 ;
GS_Result_Average ≤ 41 and GS_Result_Average ≥ 39 ; 7 ;
GS_Result_Average ≤ 44 and GS_Result_Average ≥ 42 ; 8 ;
GS_Result_Average ≤ 48 and GS_Result_Average ≥ 45 ; 9 ;
GS_Result_Average ≥ 49 ;10 ;
)
として、結果は意図するとおりにできた(と思います)んですが、
「10m歩行」
4.4秒以下 →10点
4.5~5.0秒 → 9点
5.1~5.6秒 → 8点
5.7~6.1秒 → 7点
6.2~7.0秒 → 6点
7.1~7.8秒 → 5点
7.9~8.5秒 → 4点
8.6~9.4秒 → 3点
9.5~11.0秒→ 2点
11.1~秒 → 1点
となったときの計算式が「握力測定」で書いた計算式でもダメで、
上下を逆(1点から計算)にしても、左右を逆(<>を逆)にしても意図する結果になりません。
考え方だけでもいいので、教えていただけると幸いです。
Case関数は条件式の左から評価し、
それが真になった時点で結果を返し、その後の条件式の評価はしません。
ですから、書かれた式は
Case ( GS_Result_Average ≤ 21 ; 1 ;
GS_Result_Average ≤ 24 ; 2 ;
GS_Result_Average ≤ 28 ; 3 ;
GS_Result_Average ≤ 31 ; 4 ;
GS_Result_Average ≤ 35 ; 5 ;
GS_Result_Average ≤ 38 ; 6 ;
GS_Result_Average ≤ 41 ; 7 ;
GS_Result_Average ≤ 44 ; 8 ;
GS_Result_Average ≤ 48 ; 9 ;
10 )
と書けます。
逆からでも
Case ( GS_Result_Average > 48 ; 10 ;
GS_Result_Average > 44 ; 9 ;
GS_Result_Average > 41 ; 8 ;
・・・・・
GS_Result_Average > 21 ; 2 ;
1 )
同様の結果が得られますね。
ご質問も同様にできるでしょう。
Offline
チポ様
ありがとうございます。
and(範囲の指定)を使わなくてもできるんですね、
教えていただいた方法であっさりできました。
誠にありがとうございました。
Pages: 1
[ Generated in 0.007 seconds, 11 queries executed - Memory usage: 507.41 KiB (Peak: 511.95 KiB) ]