• ベストアンサー

エクセルのデータ並び替え

列(A)に1000個あるデータを、4列X250行に自動的に並び替える方法はありますか? つまり A   A B C D B   E F G H C ⇒ I J K L D   M N O P E   ・ ・ ・ ・ ・ ・ ・ と、並べかえたいのですが、いい方法はありませんでしょうか?

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

本当に並べ替えるならVBAが必要ですが、表示だけでよければ関数で可能です。 元のデータがA1セルから始まっているとして、以下の式を適当なセルに貼り付けて、右方向に3つコピーします。後は下方向にもコピーしてください。なおデータの開始セルがA1ではないときには「$A$1」の1箇所だけを変更してください。 =OFFSET($A$1,INT((ROW(A1)-1)*4)+COLUMN(A1)-1,0) 表示した結果をコピーし「編集」→「形式を選択して貼り付け」→「値」で貼り付ければ、値に変換できます。

cocoa908
質問者

お礼

簡単にできました。 これまで時間を掛けてコピペしてたのがなんだったのか・・ ありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

関数ではすぐ回答が出るでしょう。 VBAでやってみます。 Sub test01() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("Sheet2") Set sh2 = Worksheets("Sheet3") '---- For i = 1 To 1000 For j = 1 To 4 x = (i - 1) * 4 + j If x > 1000 Then End sh2.Cells(i, j) = sh1.Cells(x, "A") Next j Next i End Sub Sheet2のでーたをSheet3へ再編成する場合の例。 標準モジュールに貼り付けて実行。

cocoa908
質問者

お礼

ありがとうございます。早速使ってみます!!!

  • kigoshi
  • ベストアンサー率46% (120/260)
回答No.2

Sheet1に元データがあり、Sheet2に4列X250行を作るとします。 1)Sheet2のA1セルに  =INDEX(Sheet1!$A:$A,(ROW()-1)*4+COLUMN(),1)  をいれて、D1セルまでコピー。 2)A1:D1を選択し、A250:D250までコピー。 3)A:D列を選択し、[Ctrl]+[C]。 4)[編集]→[形式を選択して貼り付け]→[値]にチェック、[OK] で、いかがでしょうか。

cocoa908
質問者

お礼

ありがとうございました。 見事できました。 大変助かりました。

関連するQ&A

専門家に質問してみよう