- ベストアンサー
excelの並び替え
A列のみにデータがあるのですが 1つのデータは 15行ごとになっています。 例えば A1 名前1 A2 電話番号1 A3 住所1 ・・・ A15 備考1 A16 名前2 A17 電話番号2 A18 住所2 ・・・A30 備考2 A31 名前3 A32 電話番号3 という風にデータが並んでいます。 それを SHEET2 に移動したいのですが その時に 要らないデータと並びを変えたいデータがあるのですが、どうするのがいいのでしょうか? A列に 名前 B列に 住所 C列に 備考 という風にしたいのです。 ご返答宜しくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
方法1 (1)A列に列を挿入します(データはB列に移ります) (2)A列に上から1,2,3,…と連番を入力します。 (3)A列とB列(連番とデータのすべて)をドラッグし、メニューから 挿入→名前 で範囲名をつける(仮に、meiboとします) (4)Sheet2に移り、次のように式を入力する A2に、=VLOOKUP(ROW(A2)*15-29,meibo,2) B2に、=VLOOKUP(ROW(B2)*15-27,meibo,2) C2に、=VLOOKUP(ROW(C2)*15-15,meibo,2) (5)Sheet2のA2,B2,C2をドラッグしてコピー A3以下の行に必要なだけ貼り付け。 方法2 No.1様のご回答のようにINDIRECTを使います。 Sheet1のシート名を変更していないことが前提です。 Sheet2に A2に、=INDIRECT("Sheet1!A"&(ROW(A2)*15-29)) B2に、=INDIRECT("Sheet1!A"&(ROW(A2)*15-27)) C2に、=INDIRECT("Sheet1!A"&(ROW(A2)*15-15)) これを必要なだけ下の行にコピーします。
その他の回答 (3)
- WWolf
- ベストアンサー率26% (51/192)
ベタなマクロですが Sub test() With Worksheets(1) For i = 0 To 65535 / 15 Worksheets(2).Cells(i + 1, 1).Value = .Cells(i * 15 + 1, 1).Value Worksheets(2).Cells(i + 1, 2).Value = .Cells(i * 15 + 3, 1).Value Worksheets(2).Cells(i + 1, 3).Value = .Cells(i * 15 + 15, 1).Value If .Cells(i + 1, 1).Value = "" Then Exit For End If Next End With End Sub
お礼
素早い返答ありがとうございます。 マクロですね。私のレベルでは難しいかと思っていましたが、 具体的に書いていただいたので 後でやってみようと思います。 ありがとうございました。
- the845t
- ベストアンサー率33% (246/743)
Sheet2で、 A1に =Sheet1!A1 A2に =Sheet1!A16 B1に =Sheet1!A3 B2に =Sheet1!A18 として、オートフィルでドラッグしては? シートの参照については、久しくエクセル使ってないのであいまいですが、 オートフィルでいけるとおもいます。
お礼
オートフィルはやってみたのですが、ダメだったんで。 返答ありがとうございました。
- earthlight
- ベストアンサー率27% (284/1031)
お礼
素早い返答ありがとうございました。 参考になりました。
お礼
具体的な返答ありがとうございました。 まだ途中ですが、早速やっていますが、 出来そうです。 ありがとうございました。