過去の桐井戸端BBS (桐ver.9)
25635 横に展開したデータを縦に直して集計したい 斎藤 2004/03/27-00:02
昨日質問させていただき、無事解決した斎藤です。

別のところでまたつまづいてしまったので、再度質問させてください。

アンケートは2万数千件、会社コードが150件、質問数が180問あります。
質問のうち点数をつけられているものが120件ほどあるのですが、
会社別の報告書を作る際に偏差値を出し、偏差値50以上の項目と50以下の項目をリストアップして
偏差値を表示しなくてはなりません。

そこで、

会社コード  答1  答2  答3・・・答128
----------------------------------------^^-------
会社コード1 偏差値 偏差値 偏差値・・・偏差値

と並んでいるデータを

会社コード  回答No. 偏差値
-----------------------------
会社コード1 答1  偏差値
会社コード1 答2  偏差値
 ・
 ・
 ・
会社コード1 答128 偏差値
 ・
 ・
 ・
会社コード150 答128 偏差値

というふうに並べ替えたいのです。
何かいい方法はありますでしょうか。
宜しくお願いします。
25639 一括処理でしょうか 佐田 守弘 2004/03/27-10:07
記事番号25635へのコメント
斎藤さん
縦のものを横に展開するには、転置集計でできますが、
横に展開したものを縦に直すのは、一括処理で行う方法しかすぐには思いつかないですね。

この横に展開されている会社コード、答1〜答128がある表を「表1」とし、
別に[会社コード][答]の項目の表を作って「表2」とします。
正式な項目名等が解りませんから、使える一括処理は書けませんが、
概ね、次の様な形でしょうか。

=====================================
繰り返し (.not #終端行)
 繰り返し &答番=2,129
  代入 &会社コード=[会社コード]
  代入 &答=#項目属性(&答番,0)
  編集表 表2
  行追加 [会社コード]=&会社コード,[答]=&答
 繰り返し終了
 ジャンプ 行番号=+1
繰り返し終了
=====================================

なお、答1〜答128についての繰り返しは、ここでは2番目〜129番目まで連続してならんでいるとの前提で考えました。
これらがどういった順番で並んでいるか、あるいは連番号付の項目名であるのかといった事によって、方法を考える必要があります。

佐田守弘(KS-00119)
25689 Re:一括処理でしょうか 斎藤 2004/03/30-12:17
記事番号25639へのコメント
佐田先生、ありがとうござました。
お礼を申し上げるのが遅くなり、すみませんでした。

やはり一括処理しかないのですね・・・
答の項目名は連番ではないので、書いていただいた一括処理を参考に何とか
自分で考えようと思って頑張っていますが、なかなかうまくいきません。
今まで一括処理をつかったことはなく、履歴をいじったくらいなので苦労していますが
レベルアップのためにも何とか頑張ってみようと思います。

本当にありがとうございました。

齋藤

戻る