目次

成績処理

 教育機関や検査機関では、試験の成績を評価
 しなければならないことがあります。

 成績処理こそ時間をかけずに、spredsheetで
 スマートに作業を終えるべきと考えます。

 以下は、自分が担当したある教育機関での
 試験結果を入れたテキストファイルの内容。

2501   6  9  8  3  6  6  6  6
2502   1  2  2  1  1  3  7  5
2503   7  3  4  2  9  3  3  6
2504   1  1  9  3  2  4  2  1
2505   9  4  1 10  3  4  2  1
2506   1  9  3 10  3  7  3 10
2507   7  2  1  4  9  4  5  2
2508   4  4  4  8  9  9  3  5
2509   8  4  4 10  9  3  8  5
2510   1  6  8 10  3  4 10  9
2511   8  1  7  9  3  3  9  7
2512   6  9 10  8  1  2  5  4
2513   8  2  8  4  8  1  1  3
2514   4 10  5  2  8  7  1  3
2515   3  1  6  9  2  5  8  8
2516   6  3  2  1 10  7  3  5
2517   1  9  2  2  1  8  9  3
2518   9  2  3  8  9  9  9  5
2519   4 10  7  2  1  1  5  9
2520   9  1  3  8  1  9  5 10

 テキストファイルの内容をワークシートに
 取り込んでみれば、以下。



 B列、C列は、不要なので全体を削除。



 項目を区切る文字は、次のように指定。



 歯抜け状態では、見難いので編集。



 B列からI列の1列分の加算を関数sumで
 まとめて、総計を計算。



 項目名を入れて、太字で見やすくします。



 平均点は、仮の平均点を決めておいて
 差分を求め、差分の総計を人数で割り
 結果を仮の平均点に加えます。



 この処理は、次のような数式の変形をして
 いるのと等価。




 コンピュータのビット数が小さいときには
 仮の平均を求めて、その値から差分を計算
 後、差分の総和を求めることが必須でした。
 加算によるオーバーフローを避けて、精度
 を上げる工夫が必要だったのです。

 平均は満点の半分から、どれだけ離れているか
 を計算しているので、受験者の集団として見た
 特性の一部を表現しています。

 平均がわかると標準偏差の計算は、組み込まれて
 いる関数を利用して、求められますが、定義から
 計算してみます。

 標準偏差は、分散の平方根。

 分散は、得点と平均の差を平方した値を
 積算してデータ数で割った値。

 マクロを利用して、標準偏差を求めます。
 M列で差分の平方を求めて、その和を計算し
 平方根にしていきます。



 分散から標準偏差を求めるマクロは、以下。

Sub revar()
  Dim objS As Object

  Dim i As Byte
  Dim xsum As Integer
  Dim fsv As Double

  ' set object pointer
  objS = ThisComponent.CurrentController.ActiveSheet

  xsum = 0
  FOR i=0 TO 19
     xsum = xsum + objS.getCellByPosition(12,i).Value
  NEXT i
  fsv = xsum / 20.0
  ' variant
  objS.getCellByPosition(12,21).Value = fsv 
  '
  objS.getCellByPosition(12,23).Value = fsv^0.5 
End Sub


目次

inserted by FC2 system