- ベストアンサー
Excelで仮に5000行あるデータを横並びにする方法
Excelで6000行あるデータを60行間隔で横に並べることはできるのでしょうか?いろいろな人に聞いたのですが、それは手でするしかないといわれてしまいました。分かる人がいらっしゃいましたら教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
次のような前提の下に、考えました。 "Sheet1"に6000行のデータ 範囲:"A1:A6000" このデータを"Sheet2"に転写、但し Sheet2.Range("A1:A60") <--- Sheet1.Range("A1:A60") Sheet2.Range("B1:B60") <--- Sheet1.Range("A61:A120") Sheet2.Range("C1:C60") <--- Sheet1.Range("A121:A180") Sheet2.Range("D1:D60") <--- Sheet1.Range("A181:A240") ------------------------------------------- Sub Macro1() Dim myArray As Variant myArray = Worksheets("Sheet1").Range("A1:A6000").Value Worksheets("Sheet2").Select For i = 1 To 6000 Cells((i - 1) Mod 60 + 1, 1 + Int((i - 1) / 60)).Select Cells((i - 1) Mod 60 + 1, 1 + Int((i - 1) / 60)).Value = myArray(i, 1) Next End Sub 考え方:バリアント変数にセル範囲を代入することで、メモリ上に配列を 構成できます。シート1上のデータをメモリに持ってきて、シート2に移動し あとは、for nextで吐き出すだけ。 この時、変数iによって、行、列をうまくコントロールします。 行:(i - 1) Mod 60 + 1 ---- 60で割ったあまり 列:1 + Int((i - 1) / 60)-- 60で割った時の商
その他の回答 (3)
- ka-kichi
- ベストアンサー率59% (22/37)
列数の制限をすっかり忘れていました。(^^ゞ 列は100列ではなく100セットですよね? 元の表が2列あれば、100セットで200列が必要になります。 一般的に、表とは、まとまっていないと価値は激減してしまうものだと思います。 Accessなどに移行した方がいいかもしれませんね。 分類してシートに分けるという方法もないわけではないと思いますが…。
- koko88okok
- ベストアンサー率58% (3839/6543)
> Excelで6000行あるデータを60行間隔で横に並べることはできるのでしょうか? Excel2003の最大列数は「256」列です。 Excel2007の最大列数は「16,384」列だそうです。 6000行あるデータを60行間隔で横に並べると、何列が必要ですか? 「Excel2007の仕様」 http://www.relief.jp/itnote/archives/001844.php 「Excelの仕様・上限・制限値」 http://www.relief.jp/itnote/archives/000579.php
補足
列は100列になると思います。
- ka-kichi
- ベストアンサー率59% (22/37)
60行で分割して、横に配置する。ということでしょうか? たとえば5列の表の場合、1行目から6,000行目までの表を、60行目、120行目、180行目・・・で切り分け、6列目~10列目、11列目~16列目・・・ということでしょうか? それから、参考までにExcelのバージョンをお知らせください。
補足
説明不足で申し訳ありません。 そのように、6000行あるデータを60行に分割していって、 横に配置したいのです。 ちなみにバージョンはExcel2003です。 よろしくお願いします。
お礼
ありがとうございました。