過去の桐井戸端BBS (桐ver.9)
31194 フォームのコマンドボタンで偏差値を算出したい 中村 進 2006/02/19-18:24
始めまして、桐V9初心者です。
フォームのコマンドボタンでtblの”国語偏差値”という項目に偏差値を
算出したいのですができるでしょうか。 よろしくお願いします。
31195 Re:フォームのコマンドボタンで偏差値を 今村 誠 2006/02/19-21:19
記事番号31194へのコメント
中村 進さんこんにちは
>フォームのコマンドボタンでtblの”国語偏差値”という項目に偏差値を
>算出したいのですができるでしょうか。 よろしくお願いします。

やる気があればできると思います。
偏差値のことを調べてみました。

受験者数がn人で、それぞれの得点がx1、x2、…、xn
だったとすると、その平均点Xは、
       x1、x2、…、xn(得点の合計)
X(平均点)=───────────────
        n(受験した人数)
で計算されます。このとき、標準偏差σは
.      _________________________
標準    /(x1-X)*(x1-X)+(x2-X)*(x2-X)+………+(xN-X)*(xN-X) 
 σ = _. / ────────────────────────
偏差  \/   n(受験した人数) ↑(得点−平均点)の2乗の総和

各受験者の得点を、全体の平均値が50標準偏差が10になるように
修正したもの、すなわち偏差値Tは

    10×(個人の得点−平均点)
 T =───────────+50
(偏差値)   σ(標準偏差)

平均点や標準偏差は項集計や行集計で簡単に求められるので
偏差値の式を個人の成績に応じて行訂正するか置換すれば
良いのではないでしょうか?

今まで偏差値を求めたやり方を、順序通り絞り込みから
項集計や行集計をして、置換までを履歴にとって、
ボタンの手続きに割り付けたら良いと思います。
31196 Re:フォームのコマンドボタンで偏差値を アックン 2006/02/20-11:33
記事番号31194へのコメント
中村 進さん、こんにちは。
見本をアップしました。v9-2006(V9-2004 sp3対応)

・偏差値を求める式
 (個人の国語点数-平均)/標準偏差*10+50

・平均と標準偏差は、項目集計するだけで自動的に組み込み変数に値が入ります。( &平均 , &標準偏差 )
コマンドボタンの機能名には「項目集計」がないので、イベント処理にします。

・上記の式を項目計算式にすると、組み込み変数 &標準偏差 がたまたま 0 の
ときに点数を入力しようとすると、ゼロ除算が発生してエラーになります。
そこで、項目集計した後なら &標準偏差 が 0 でなくなりますから、
イベント処理で置換することにします。

もしイベントに不慣れでも、以下の手順通りにすれば出来ますから、
やってみてください。不明な点は気軽に聞いてください。誰かがわかりやすく回答します。

・編集対象表の定義
項目名    データ型
国語点数   数値
国語偏差値  数値

・フォームの定義
1)フォームを定義で開きます。
2)桐メニュー 書式→定義画面の設定
→イベント定義を起動する をチェック
→詳細プロパティを使用する もチェック
→OK(ボタン)

3)フォームオブジェクトの周囲の余白部分(ワークエリアと呼びます)を右クリック→オブジェクトの属性
イベント(タブ)→イベントファイル名(C):偏差値(←ここに実際のイベントファイル名を書きます。)

4)コマンドボタンの定義
コマンドボタンを右クリック→オブジェクトの属性
→コマンドボタン(タブ)
機能名    機能名パラメータリスト
ここには何も書きません。何か書いていたら、消してください。
機能名は なし を選ぶと消えます。

→イベント(タブ)→イベント(E):マウス左クリック をチェック。
→マウス左クリックの文字の上でダブルクリック
→イベントファイル(偏差値.kev)が自動的に作成されて、定義画面が開きます。

なお、マウス左クリックのチェックマークが、マウス左クリックイベントのON/OFFスイッチになります。
もしフォーム編集画面でコマンドボタンを左クリックして反応がないときは、
ここのチェックマークが入っているか確認してください。)

・イベントの定義 (拡張子が kev のファイルです。)
**-------------
名札 メイン (←桐が自動的に作成する行です。)
        (←桐が自動的に作成する行です。)
*       (←桐が自動的に作成する行です。)
        (←桐が自動的に作成する行です。)
手続き定義開始 コマンドボタン_xx::マウス左クリック・・略(←桐が自動的に作成する行です。)

**------- ↓次の行からコピーしてください。
* 絞り込み [国語点数]<>""
/* ↑未定義のセルを除いて計算する場合は、先頭の * を消します。 */

項目集計 [国語点数]
/* 平均と標準偏差を組み込み変数:&平均値 &標準偏差に入れます。 */

 置換 [国語偏差値]=""
 置換 [国語偏差値]=#四捨五入(([国語点数]-&平均値)/&標準偏差*10+50,2)
/* 項目[国語偏差値]に偏差値を入れます。 */

* 解除 1
/* ↑未定義のセルを除いて計算する場合は、先頭の * を消します。 */
**------- ↑上の行までコピーしてください。

手続き定義終了(←桐が自動的に作成する行です。)
**-------------

補足
・端数処理
実際の端数処理をどうするか私は知らないので、小数3桁を四捨五入しています。

・値を何も入力してないセルの扱い
その行も計算したいとき
 表のファイル属性→未定義項目値処理→ ゼロ の場合、0 として扱います。

計算から除きたいとき
 イベントファイル(kev)の下記2行の先頭の * マークを消します。

* 絞り込み [国語点数]<>""
* 解除 1

アックン(=^・^=)
31200 Re:フォームのコマンドボタンで偏差値を 中村 進 2006/02/20-18:08
記事番号31196へのコメント
アックンさん

>見本をアップしました。v9-2006(V9-2004 sp3対応)
>
>・偏差値を求める式
> (個人の国語点数-平均)/標準偏差*10+50
>
>・平均と標準偏差は、項目集計するだけで自動的に組み込み変数に値が入りま
>す。( &平均 , &標準偏差 )
>コマンドボタンの機能名には「項目集計」がないので、イベント処理にします。

☆コマンドボタンで項目集計ができないのですね。
了解です。
初めてですがイベント処理に挑戦します。
できましたらまた報告します。ありがとうございました。
31205 偏差値について 佐田 守弘 2006/02/22-20:56
記事番号31194へのコメント
中村 進さん
偏差値の計算式は既にアックンさんが書かれている通りですが、
果たしてこの方法での計算で、目的に適合するかどうかについてコメントさせて頂きます。

疑問点は、1つの学校あるいは塾の中で偏差値を取っても、それがどういった意味があるかです。

偏差値の是非はともかくとして、入試での合格の可能性判断として、偏差値が
使われているわけですが、この場合の母集団は同学年の受験対象の生徒全員に
なるのではないかと思います。

仮に成績優秀な生徒が集まっている学校や塾では、全体としての成績が高く
なりますから、これを母集団として偏差値を計算したのでは、偏差値は低く
算出されます。逆に成績がさほど高くない集団で計算すると、高くなります。

要するに、受験の評価尺度として使われる偏差値の計算では、同じ試験を
全国の生徒(不可能なら無作為に抽出した母集団)の成績値の平均点と
標準偏差値を使わなければならないわけです。

もし対象となる生徒(1つの学校や塾)での試験で全国に対する偏差値を
計算しようとしたら、何らかの補正を加えないと意味のある偏差値にはなら
ないのではないかと思うのですが。

佐田守弘(KS-00119)

戻る