- ベストアンサー
エクセルのデータ並び替え
列(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 ・ ・ ・ ・ ・ ・ ・ と、並べかえたいのですが、いい方法はありませんでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
本当に並べ替えるならVBAが必要ですが、表示だけでよければ関数で可能です。 元のデータがA1セルから始まっているとして、以下の式を適当なセルに貼り付けて、右方向に3つコピーします。後は下方向にもコピーしてください。なおデータの開始セルがA1ではないときには「$A$1」の1箇所だけを変更してください。 =OFFSET($A$1,INT((ROW(A1)-1)*4)+COLUMN(A1)-1,0) 表示した結果をコピーし「編集」→「形式を選択して貼り付け」→「値」で貼り付ければ、値に変換できます。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
関数ではすぐ回答が出るでしょう。 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へ再編成する場合の例。 標準モジュールに貼り付けて実行。
お礼
ありがとうございます。早速使ってみます!!!
- kigoshi
- ベストアンサー率46% (120/260)
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] で、いかがでしょうか。
お礼
ありがとうございました。 見事できました。 大変助かりました。
お礼
簡単にできました。 これまで時間を掛けてコピペしてたのがなんだったのか・・ ありがとうございました。