• ベストアンサー

Excelで仮に5000行あるデータを横並びにする方法

Excelで6000行あるデータを60行間隔で横に並べることはできるのでしょうか?いろいろな人に聞いたのですが、それは手でするしかないといわれてしまいました。分かる人がいらっしゃいましたら教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
noname#95859
noname#95859
回答No.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で割った時の商

joho962002
質問者

お礼

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

その他の回答 (3)

  • ka-kichi
  • ベストアンサー率59% (22/37)
回答No.3

列数の制限をすっかり忘れていました。(^^ゞ 列は100列ではなく100セットですよね? 元の表が2列あれば、100セットで200列が必要になります。 一般的に、表とは、まとまっていないと価値は激減してしまうものだと思います。 Accessなどに移行した方がいいかもしれませんね。 分類してシートに分けるという方法もないわけではないと思いますが…。

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.2

> 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

joho962002
質問者

補足

列は100列になると思います。

  • ka-kichi
  • ベストアンサー率59% (22/37)
回答No.1

60行で分割して、横に配置する。ということでしょうか? たとえば5列の表の場合、1行目から6,000行目までの表を、60行目、120行目、180行目・・・で切り分け、6列目~10列目、11列目~16列目・・・ということでしょうか? それから、参考までにExcelのバージョンをお知らせください。

joho962002
質問者

補足

説明不足で申し訳ありません。 そのように、6000行あるデータを60行に分割していって、 横に配置したいのです。 ちなみにバージョンはExcel2003です。 よろしくお願いします。

関連するQ&A

専門家に質問してみよう