一括処理部品集2‖mlclass.html                            《戻る 玄関へ
 《 複数クラスの度数一覧表を作る 》

【内容】
  同一科目についてクラス(グループ)別に度数処理し、
 複数クラスの一覧表を作成します。
 度数は転置集計を使って求めます。
 教科担任が使えます。

【用例】
 名札 組別度数
    &MESS1=#連結(" クラス別などグループ別に度数処理をおこない" \
        ,"\n度数一覧表を作成します。" \
         ,"\n 対象表・項目や階級幅は任意に設定できます。" \
        ,"\n\n 対象表には項目[組]と[作業用]が必要です。" \
        ,"\n\n 実行しますか?")
    メッセージボックス #連結(&システム名,"グループ別度数一覧表"),&MESS1,アイコン=?,ボタン=5,&選択
      条件 (&選択=7) 分岐 START
   表
   名札 F指定4
   手続き実行 ファイル指定                  @
   手続き実行 表初期化
   代入 &KOUF=1
   手続き実行 項目一覧
   手続き実行 満点
   手続き実行 階級幅設定
   繰り返し
    手続き実行 対象確認
     メニュー2 &変更,1,(14,41),#連結(&システム名,"対象確認 よろしいか")\
     ,"は い,対象ファイルの変更,対象項目の変更,満点の変更,階級幅の変更,中止(MAINMENUへ)"
      条件 (&変更=1) 繰り返し中止
      条件 (&変更=2) 分岐 F指定4
      条件 (&変更=3) 手続き実行 項目一覧
      条件 (&変更=4) 手続き実行 満点
      条件 (&変更=5) 手続き実行 階級幅設定
      条件 (&変更=6) 分岐 START
   繰り返し終了
   絞り込み &項目名A<>#未定義                       A
   置換 [作業用]=#INT(#項目属性(&KOUA,0)/&階級幅)*&階級幅
   絞り込み解除
   手続き実行 組項目                               B
   並べ替え {[作業用]降順,&組項目名A 昇順}
   絞り込み [作業用]<>#未定義
   転置集計 {[作業用]},&組項目名A,[作業用],集計種別=件数,グループ値並べ替え=降順 \
         ,転置項目名並べ替え=昇順,表番号=2
   表形式編集         /* トレースが確認できたらこの行の先頭に*を付けてください。
   手続き実行 書き出し表                            C
   書き出し 表,&書出表
   表
   表 &書出表,表番号=2
   &項数=#項目数,&項数1=&項数
   繰り返し &計数=2,&項数1
     絞り込み &計数=0
     置換 &計数=#未定義
     絞り込み解除
   繰り返し終了
   項目属性変更2 変更,[作業用],{"階級値"}
   項目属性変更2 変更,[件数],{"度数合計"}
   項目属性変更2 挿入,[階級値],{"階級","文字列",4}
   置換 [階級]=#全角(#STR([階級値]))
   ジャンプ 行番号=終端
   行挿入 [階級]="人 数"
   行挿入 [階級]="得点合計"
   行挿入 [階級]="平均点"
   行挿入 [階級]="最高点"
   行挿入 [階級]="最低点"
   表形式編集         /* トレースが確認できたらこの行の先頭に*を付けてください。
   手続き実行 組連続集計                           D
 手続き終了
 */////////////////////////////////////*
 名札 組項目                                     B
  繰り返し
   &組項目名A=#未定義
   &項目名1=#未定義,&項目名2=#未定義,&KEN=""
   &項目数=#項目数,&計数=1
   繰り返し &計数=1,&項目数
   &項目名1=#文字置換(&項目名1,&計数,#項目属性(&計数,1))
  繰り返し終了
   &項目名1=#連結(&項目名1,",中 止")
   &項目名2="↓↑でスクロールします。"
   メニュー3 &KOUB,&KOUB,(05,31)-(20,80),#連結("転置項目とするグループ項目を選んでください。") \
           ,&項目名1,&項目名2
     条件 (&KOUB=<&項目数) &組項目名A=#対応文字列(&項目名1,&KOUB)
     条件 (&KOUB>&項目数) 分岐 START
   代入 &件数=""
  繰り返し
   条件 (&TOPM<3 .or &TOPM>3) &MESS1=#連結("グループ項目名=[",&組項目名A,"]" \
             ,"\n\n よろしいか?")
   条件 (&TOPM<3 .or &TOPM>3) メッセージボックス #連結(&システム名,"グループ項目の確認"\                    ,&MESS1,アイコン=?,ボタン=4,&選択
   条件 (&選択=6) 手続き終了
   条件 (&選択=7) 繰り返し中止
   条件 (&選択=2) 分岐 START
  繰り返し終了
 手続き終了

 名札 書き出し表                                  C
  繰り返し
   キー入力 (15,51),プロンプト=#連結("作成する度数一覧表のファイル名(.TBLは不要)を入力してください。"),\
            モード=半角,上書き=する,初期値=&TBL4,終了状態=&ESC,&TBL4
       &書出表=#連結(&TBL4+".TBL")
   メニュー2 &POP1,1,(14,51),#連結(”作成する度数一覧表名:",&書出表," よろしいか?”)\
                ,"は い,訂正する,中止(MAINMENUへ)"
     条件 (&POP1=1) 繰り返し中止
     条件 (&POP1=3) 分岐 START
  繰り返し終了
 手続き終了
 ******************
 名札 組連続集計                                  D
  手続き実行 組番号
  表
  表 &TBL1,表番号=1
  表 &書出表,表番号=2
  &計数=1
  繰り返し &計数=1,&実組数                           (B)
    &TCG=#数値(#対応文字列(&受検組,&計数))
    編集表 1
    条件 (#絞り込み状態>0) 絞り込み解除 *
    絞り込み &組項目名A=&TCG
    条件 (&選択件数>0) 手続き実行 平均他入力            (C)
  繰り返し終了
  手続き実行 平均他全入力                            (D)
 手続き終了
 ******************
 名札 組番号
  代入 &受検組="",&KEN="",&選択件数="",&受検組名="",&組番号="",&組名=""
  表  &TBL1,表番号=1
  並べ替え {&組項目名A 昇順}
  絞り込み &組項目名A {>0}
  条件 (&選択件数<1) 確認 #連結(&システム名,"レコードがありません。作業を中止します。")
  条件 (&選択件数<1) 分岐 組別度数
  絞り込み 単一化={&組項目名A}
  代入 &実組数=&選択件数
  ジャンプ 行番号=先頭
  &計数=1
  繰り返し &計数=1,&実組数
     &組番号=#STR(#項目属性(&KOUB,0))
     &組名=#連結(#全角(&組番号)+"組")                  (A)
     &受検組=#文字置換(&受検組,&計数,&組番号)
     &受検組名=#文字置換(&受検組名,&計数,&組名)
   ジャンプ 行番号=+1
  繰り返し終了
   条件 (#絞り込み状態>0) 絞り込み解除 *
   代入 &選択件数=""
 手続き終了
 ******************
 名札 平均他入力                                 (C)
   &有効件数="",&平均値="",&最大値="",&最小値="",&合計値=""
   項目集計 &KOUA
   &M=&計数+2
   編集表 2
   ジャンプ 行番号=最終
    行訂正 &M=&最小値
   ジャンプ 行番号=-1
    行訂正 &M=&最大値
   ジャンプ 行番号=-1
    行訂正 &M=#四捨五入(&平均値,1)
   ジャンプ 行番号=-1
    行訂正 &M=&合計値
   ジャンプ 行番号=-1
    行訂正 &M=&有効件数
   &修正名=#対応文字列(&受検組名,&計数)
   &項名2=#項目属性(&M,1)
   項目属性変更2 変更,&項名2,{&修正名}
 手続き終了
 ******************
 名札 平均他全入力                                 (D)
   &有効件数="",&平均値="",&最大値="",&最小値="",&合計値=""
   編集表 1
   条件 (#絞り込み状態>0) 絞り込み解除 *
   絞り込み &組項目名A>0
   項目集計 &KOUA
   編集表 2
   ジャンプ 行番号=最終
    行訂正 [度数合計]=&最小値
   ジャンプ 行番号=-1
    行訂正 [度数合計]=&最大値
   ジャンプ 行番号=-1
    行訂正 [度数合計]=#四捨五入(&平均値,1)
   ジャンプ 行番号=-1
    行訂正 [度数合計]=&合計値
   ジャンプ 行番号=-1
    行訂正 [度数合計]=&有効件数
   項目属性変更2 削除,[階級値]
   表形式編集 ガイド="度数一覧表です。印刷条件を設定して(/3L)印刷してください。終了:/Q"
 手続き終了

【解説】
 @ 手続き実行の「ファイル指定」では、対象ファイルを選びます。
   同じく「項目一覧」では、対象項目を選びます。
   同じく「満点」では、対象項目の満点を入力します。
   同じく「階級幅設定」では、階級幅(刻み)を設定します。
   ここでは省略していますが、部品集2の12,13などを参照してください。
 A 対象レコードを絞り込み次の前処理をします。
   度数処理対象表の対象項目の値を階級幅に応じて前処理をして[作業用]の
   項目に入れます。階級幅が5点なら、素点93点は90点に、素点49点は45点
   になります。
 B 手続き実行の「組項目」では、対象ファイルの項目をメニューとして表示し度数処理する
   グループの項目(普通は[組])を選びます。
   [作業用]とグループ項目を使って並べ替えます。
   グループ項目を[作業用](縦の集計条件)、転置項目を[組](横の集計条件)にして
   件数を求めます。これで組別に各階級の件数(度数分布)が得られます。
 C 作成された転置表(度数分布表)をファイル名を付けて一旦書き出します。
   書き出した表を使って、以下の加工をおこないます。
   ・度数表の項目数を知り、度数が0(ゼロ)を消去します。
   ・度数表の項目名を変更したり、項目を挿入します。
   ・文字型として挿入した[階級]を使って平均点などを入力する行を挿入しておきます。
 D 手続き実行の「組連続集計」では、度数分布表をさらに加工します。
   ・手続き実行の組番号で、[組]のデータから実クラス数を知り、度数分布表
    の項目名変更の為の文字列などを用意します。(A)
   ・元の対象表を使い、クラス別にレコードを絞り込んで素点合計値や平均値など
    を知ります。これらの値は度数分布表の該当クラスの”得点合計”などの行に
    入力します。クラス番号を使ってクラスの項目名も変更します。
   ・元の対象表を使い、全クラスのレコードから素点合計値や平均値など
    を知ります。これらの値は度数分布表の項目[度数合計]を利用し
    ”得点合計”などの行に入力します。その後項目[階級値]を削除します。
 (注)桐v8sp5を使用する以前のものです。

【参考】
 製品案内のページから「教務部補佐」、メニューの4)で処理画面が見れます。

                      END of FILE  戻る 玄関へ