- ベストアンサー
エクセル 列でグループ分けされたものを行に振り分け
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
VBAでこういう方法もある。 Range("a2:L6").Item(i) といった、(VBAでは)セル範囲の何番目のセルというのを取り出せるので、 行と列番号の算出(計算)問題でしかない。Z型的にセルを取り出せる。 ーー 変換前後が、長方形的で、規則性のある(=繰り返しである)表の組み換えはこういう方式は役に立つ。VBAコード数が極く少なくて済む。 ーー データがA2:L12セルにあるとして 標準モジュールに書きコピペして実行(F5キー) Sub test01() For i = 1 To 12 * 5 r = Int((i - 1) / 3) + 1 + 20 c = ((i - 1) Mod 3) + 1 Cells(r, c) = Range("a2:L6").Item(i) Next i End Sub 結果はA21以下に、3列のデータになる。 (注)r = Int((i - 1) / 3) + 1 + 20 の⁺20の部分は、データ数によっては、調整必要。
その他の回答 (3)
- bunjii
- ベストアンサー率43% (3589/8249)
- msMike
- ベストアンサー率20% (364/1805)
Sheet2!A1: =OFFSET(Sheet1!$A$1,(ROW(A1)-1)/4,MOD(COLUMN(A1)-1+(ROW(A1)-1)*3,12))
- watabe007
- ベストアンサー率62% (476/760)
マクロで行うので有れば Sub Test() Dim i As Long, j As Long, k As Long For i = 1 To Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row For j = 1 To 84 Step 21 k = k + 1 Worksheets("Sheet2").Cells(k, 1).Resize(, 21).Value = Worksheets("Sheet1").Cells(i, j).Resize(, 21).Value Next Next End Sub