- 締切済み
複数シートのデータを行列を入れ替えて統合したい
現在1ブックに30シートが入っています。 30シートすべて同じフォーマットで A B 項目名1 データ1 項目名2 データ2 … のように複数行2列の内容です。 この30シート分のデータを行列を入れ替えて1シートに統合し A項目名1 B項目名2 C項目名3 シート1のデータ1 シート1データ2 シート1のデータ3 シート2のデータ1 シート2データ2 シート2のデータ3 … シート30のデータ1 シート30データ2 シート30のデータ3 のようにしたいのです。何ブックもあり、手動では時間がかかるため VBAで処理できたらと思います。 どのようにすればよいか教えていただければ助かります。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
データは256行でおさまっているのでしょうか? ちょっとめんどくさいですが、 1.シート1の項目名列のでーたを選択して、コピー 2.纏めるシートを開いて、「機能を選択して貼り付け」から、「行列を入れ替えで貼り付け」をクリック。 これを30シート分繰り返す。 或いは、 纏めるシートのA1に =INDEX(Sheet1!$A:$A,COLUMN(),1) として横にコピー 纏めるシートのA2に =INDEX(Sheet1!$B:$B,COLUMN(),1) あとはこれの繰り返しでシート名を変更していく。 シート名がSheet1~Sheet30なら、 =INDIRECT("Sheet"&ROW()&"!B"&COLUMN()) でもいけます。
- zawax
- ベストアンサー率50% (3/6)
行列入れ替えはPasteで、TransposeオプションつければOKですね。 あとは全シートを舐めるループの中で、Copy、Pasteを繰り返せば よいでしょう。 項目数が可変の場合は、最大行はどこかを書いておくか、 Selection.Endで取ってくるなり工夫しましょう。
補足
早速の回答ありがとうございます。項目数は固定です。 お構いなければソース全体を記述していただけないでしょうか。