過去の桐井戸端BBS (桐ver.8)
14503 縦に並んだデータを横に並んだデータに展開したい KAZE 2001/12/14-19:33
いつも勉強させていただいており感謝しています。

次のようなデータを希望するような構造に変換できるでしょうか?

  [A]
  A1
  A2
  A3
  B1
  B2
  B3
  C1
  C2
  C3
  ・
  ・
  ・以下つづく

これを次のように
 [1] [2] [3]
  A1  A2  A3
  B1  B2  B3
  C1  C2  C3
  ・・・以下つづく・・

配列変数というものを使うのかなぁ、ということは何となく分かるのですが、どう使うのかが分かりません。
無知ですみません。
よろしくご教授ください。

                    KAZE

14504 Re:縦データを横データに変換するには? 幅田 2001/12/14-20:14
記事番号14503へのコメント
KAZEさん
こんにちは。

http://www.fuku3.com/~habata/kbbs/kakov8/06493.htm
↑などは参考になりますでしょうか?
14505 Re:縦データを横データに変換するには? 今村 誠 2001/12/15-09:43
記事番号14503へのコメント
KAZEさんこんにちは
>  [A]
>  A1
>  A2
>  A3
>  C1
>  C2
>  C3
>  Z1
>  Z2
>  Z3
>
>これを次のように
> [1] [2] [3]
>  A1  A2  A3
>  C1  C2  C3
>  Z1  Z2  Z3
と規則正しく並んでいるなら、連番項目を足して、書き出して読み込ませるとよいのでは?
メールなどの、予約できる文字列が、A,B,C,……Z
とすれば、区切り文字を指定してAと1を分離して、
転置書き出し後に、読み込み表で横方向に読み込めそうです。


14547 Re:縦データを横データに変換するには? KAZE 2001/12/18-18:39
記事番号14503へのコメント
幅田さん、今村さんご教授有り難うございます。
お礼遅くなりまして申し訳有りません。

もう少しスマートに出来ないかなとこれらを参考に考えます。
インターネット上のテキストデータをエクセルにペーストしてCSVをDB化するという、
極めて原始的に手作業するものですから、せめて、DB化するときは一括処理したいと考えています。

完成したらまたご連絡いたします。
(でも、アイデアが出ない・・・・)

14548 Re:縦データを横データに変換するには? natsu 2001/12/18-20:15
記事番号14503へのコメント
遅レスですが、お役に立てれば

配列変数を使用すれば...

それぞれのマトリックスの要素を配列変数で示すと
変数宣言 固有,文字列{ &A[3] }
変数宣言 固有,文字列{ &B[3] }
変数宣言 固有,文字列{ &C[3] }
変数宣言 固有,文字列{ &Z[3] }
となります

元の表から配列変数に値を代入するわけですが
変換元.tbl
[A]
A1
A2
A3
・・
・・

という表なら

表 "変換元"
繰り返し ( .not #終端行 )
&STR=#部分列([A],1,1)
&実行リターン=#整数(#部分列([A],2,1))
コマンド "代入 &"+&STR+"["+#文字列(&実行リターン)+"]=[A]"
ジャンプ 行番号=次行
繰り返し終了


本来のデータなら、[A]という項目以外に、そのデータ内容を示す項目があるはずですから
「コマンド」コマンドの行を少しアレンジすればOKのはずです
これで、配列変数に要素が代入されたはずです

ところで、配列変数の値を直接桐の表に代入してゆくのは少し面倒なので、テキストファイルにしてしまいます

印字開始 "編集結果.txt"
繰り返し &昭和年=1,3
印字 &A[&昭和年],
印字 _44,
繰り返し終了
印字 
繰り返し &昭和年=1,3
印字 &B[&昭和年],
印字 _44,
繰り返し終了
印字 
繰り返し &昭和年=1,3
印字 &C[&昭和年],
印字 _44,
繰り返し終了
印字 
繰り返し &昭和年=1,3
印字 &Z[&昭和年],
印字 _44,
繰り返し終了
印字 
印字終了

この様な一括処理をアレンジしてみてはいかがでしょうか


14579 Re:縦データを横データに変換するには? xeno 2001/12/23-09:33
記事番号14504へのコメント
こんにちは。
幅田さんのコメントにある、
http://www.fuku3.com/~habata/kbbs/kakov8/06493.htm
で質問をした xeno です。

あれから、ちまちまと一括処理を作っていたのですが、なんとか公開?
してもよさそうなものが出来上がりました。
以下の URL にて紹介していますので、参考にしていだければと思います。
http://www2u.biglobe.ne.jp/~xeno/mtrx.html

ただし、なにぶん簡単な表での検証しか行っていませんので複雑な表では
動作がおかしいかもしれません。

>幅田さん
本当はもっと早くここでご報告すれば良かったのですが、
私の Homepage自体非公開としていた(特定の方向けへのファイル配付場所として利用)のと、
少しずつ改良を加えていったのでいままで紹介が遅くなってしまいました。申し訳ありません。

xeno

14588 転置集計を試してみては 佐田 守弘 2001/12/23-15:30
記事番号14503へのコメント
KAZEさん
少なくとも2つの項目[あ]と[い]を追加した後、
[あ]には、1,1,1,2,2,2,3,3,3, の様な値を入れる
[い]には、1,2,3,1,2,3,1,2,3, の様な値を入れる
を行い、[い]を転置項目にして転置集計してみてはどうでしょうか。

佐田守弘(KS-00119)

戻る