過去の桐井戸端BBS (桐ver.8)
6493 文字列を転置表示(?)させたい xeno 2000/06/17-14:38
はじめまして、xeno と申します。
桐 ver.5から使っていますが、レコード(データ)の並び替えで困っています。

以下の左の様に[行][項目][データ]という項目を持つ表を右の様にマトリックスに
展開することは可能でしょうか?
(プロポーショナルフォントだと位置がズレて表示されるかも知れません。)
実際は行と項目はそれぞれ50個くらいあります。また、同じ[行][項目]の組合わせに対して、
データは1つしか登録していませんが、虫喰いになっています。
(ただし、マトリックスが正しく作れるようダミーの行と項目は登録済み)

|行|項目|データ|
|1|A |あ  |     |A|B|
|1|B |い  |    1|あ|い|
|2|A |う  |    2|う|え|
|2|B |え  |

桐5および桐8sp5で試しましたが、転置集計を使うとマトリックスにはなるのですが、
項目値をそのまま表示することが出来ず、設定した集計項目で自動的に集計されてしまうのです。
(集計項目の設定は省略できない)

いかにも過去にありそうな質問なので過去ログも目を通しましたが、
この様な質問が見つからなかったため、こちらに書込みさせていただきました。
なんらかのヒントを頂ければ幸いです。宜しくお願い致します。

6497 Re:転置表示(?)させたい(再投稿) 幅田 2000/06/18-00:30
記事番号6494へのコメント
xenoさん、こんばんは

>|行|項目|データ|
>|1|A |あ  |     |A|B|
>|1|B |い  |    1|あ|い|
>|2|A |う  |    2|う|え|
>|2|B |え  |

実際の項目と行が50くらいあるというので、的をはずしているかもしれませんが、
上記の例題だけでやってみます。

1.一番元の表を「元表.TBL」というファイル名にし、それとは別に
あらかじめ次のような枠組みだけでデータは空の表を用意しておきます。

項目名は、数値型[行]、数値型[A]、数値型[B]、文字列型[A.]、文字列型[B.]

さらに
[A.]の項目計算式には
#表引き([A],=,"元表",[データCD],[データ])
[B.]の項目計算式には
#表引き([B],=,"元表",[データCD],[データ])

を設定しておきます。


2.そして、一番元の表(元表.TBLとします)にデータCDという項目(数値型)を追加し、
それぞれ、「あ」「い」「う」「え」に対応するコードのようなものを数値で設定します。

|行|項目|データ|データCD
|1|A |あ  | 1
|1|B |い  | 2
|2|A |う  | 3
|2|B |え  | 4

2.この表でグループ項目を[行]、転置項目を[項目]、集計項目を[データCD]として
転置集計を実行すると

行|A|B|合計
1|1|2|3
2|3|4|7

となりますね。

転置集計した結果のデータを1.で用意しておいた表に追加で書き出します。
その後、1.の表を開いて再計算をすると、(書き出されただけでは、項目計算式の
項目が計算されないため)下記のようになります。


行|A|B|A.|B.|
1|1|2|あ |い |
2|3|4|う |え |

この表から、[行][A.][B.]の項目の部分だけを取り出すと

行|A.|B.|
1|あ |い |
2|う |え |

となり、一応xenoさんのご希望の表に近いものができあがりましたが、いかがですか?

前に言いましたが、項目が50もあると簡単な訳にはいかないようですが。
また、的をはずしている可能性も大?

転置集計はあくまで数値を集計するためのものなのですが、文字列も展開できるように
なればいろいろ応用範囲が広がりますね。
6500 うまくできました xeno 2000/06/18-17:42
記事番号6497へのコメント
幅田さん、こんにちは。

マトリックス表示したいテーブルファイルの入っているPCが会社にあるため、
テスト的に行3種・項目12種のテーブルをつくり、教えていただいたとおりやってみると、
望んだもの
が出来上がりました。
(昨日は職場にふらりと出向いて考えていたのですが、煮詰まったためこちらへ質問させて頂いたのです。
今日は閉まっていて入れませんでした。)

> 転置集計はあくまで数値を集計するためのものなのですが、文字列も展開できるように
> なればいろいろ応用範囲が広がりますね。

そうなんです。実際に試すと、文字列型項目を集計項目に指定すると文字数を返すようなのですが、
わざわざ文字数を数えなくてもそのまま文字列を展開してくれたらいいのにと思います

転置集計では転置項目のデータ型がすべて数値になってしまうので難しいのかもしれませんが、
普通の行集計には計算式に[項目値]を指定できることですし。

特に、今回は項目と列の値は数字とアルファベットで構成されているため、その組合せをコードとして
表引きできるようになれば非常に楽になるのですが。

とにかく、助かりました。ありがとうございました。

6506 「書き出し 転置」はどうでしょう 悲しげ 2000/06/19-15:54
記事番号6500へのコメント
私も最近知ったのですが、おそらくはv7から「書き出し 転置」なる処理が追加されています。
私はまだ使ったことがありませんけど、「編集対象表の行と列を転置した表を新規作成します」とありますから、
今回のケースで使えるかどうか、試してみて下さい。
6515 Re:「書き出し 転置」はどうでしょう ケント 2000/06/19-21:10
記事番号6506へのコメント
こんにちは 突然ですが、割り込み情報〜

#6493のコメントを読んで、私も「書き出し 転置」を試してみたのですが、「書き出し 転置」には、
転置集計には有るグループ化の指定がない為、どうもうまく行きませんでした。

1回絞り込んでから「書き出し 転置」して、補集合を「書き出し 転置」してとも思ったのですが、
同名ファイルの書き出しの場合、"上書き"か"中止"しかなく"追加"がない為、
「併合」も使わないといけないし..。

と、ここであきらめてしまいました。(・・ゞ...(あきらめるな!!)

「転置集計」の方はそのままで、「書き出し 転置」の機能充実を望みたいところです。
6549 Re:「書き出し 転置」はどうでしょう xeno 2000/06/20-22:03
記事番号6515へのコメント
悲しげさん、ケントさん、ご教示ありがとうございます。

私もさっそくやってみたのですが、この[書き出し]−[転置]というのは単純に列と行を入れ替えるのに近いようで、
ちょうど表の編集画面で左右に分割して表示させる項目一覧の列を増やした時の様になるみたいですね。
こちらの方が私が最初に付けたタイトルの「転置表示」というのにふさわしいかも知れません。

私がやりたかったのはマトリックスに展開(?)するというもので、ちょっと望んだ結果とは違いましたが、
この機能があることを教えて頂いたのは棚からぼたもちといった感じです。
というのも、実際この様な処理を実現して欲しいとK3にリクエストをだそうと思っていたからです。
本来であれば、転置書き出しではなく、転置表示としてボタン一つで表示を切換えられると便利だと思うのですが。
(表示形式の1種として「表示できるだけ」というのが現実的かな)

今回は幅田さんからいただいたアイディアを使ってなんとか処理しましたが、
一括処理を使って汎用的な処理が組めないか、思索中です。

戻る