- ベストアンサー
Excelのセルにおける変則的なコピー
VBAを使わずにこんなことができますか? いい方法があれば教えて下さい。 言葉でしか伝えられませんが、これでやりたいことがわかっていただけますでしょうか? 1.[Sheet1]のA列~E列に数値が入力されているとします。 2.これを[Sheet2]に1行を2行に分割しながら貼り付けたいんです。 ・[Sheet1]A1~C1を[Sheet2]A1~C1へ、[Sheet1]D1~E1を[Sheet2]B2~C2へ。 ・[Sheet1]A2~C2を[Sheet2]A3~C3へ、[Sheet1]D2~E2を[Sheet2]D4~C4へ。 ・[Sheet1]A3~C3を[Sheet2]A5~C5へ、[Sheet1]D3~E3を[Sheet2]B6~C6へ。 ・ ・ ・ イメージはこんな感じです。 実際にはA列からDC列まで100行程あるものを、4行ずつに分割したいんです。 2列に分ける方法の応用でできると思っているのですが、いかがでしょうか? どうかよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
sheet2に以下の方法は如何でしょうか。 1.A1に=OFFSET(Sheet1!$A$1,ROW()/2,COLUMN()-1)とし、C1までコピー 2.b2に=OFFSET(Sheet1!$A$1,ROW()/2-1,COLUMN()+1)とし、C2までコピー 3.A1:C2範囲をドラッグし、下方向にコピーして下さい 4.後は、出来上がった範囲をコピーし、形式選択し貼り付けの値のみで貼り付けして下さい。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
#2でよいのかも知れませんが 元データ Sheet1のA1:F6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 とする。 Sheet2のA1に =IF(MOD(ROW(),2)=1,OFFSET(Sheet1!$A$1,(ROW()+1)/2-1,COLUMN()-1),OFFSET(Sheet1!$A$1,(ROW()+1)/2-1,COLUMN()+2)) と入れてC1まで式を複写。 A1:C1を範囲指定して、A1:C1を下方向に複写。 結果 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ちょっと内容が違うかも知れません。すみません。 =IF(MOD(ROW(),2)=1,OFFSET(Sheet1!$A$1,(ROW()+1)/2-1,COLUMN()-1),IF(COLUMN()=1,"",OFFSET(Sheet1!$A$1,(ROW()+1)/2-1,COLUMN()+1))) にするとA1:C7は 1 2 3 4 5 7 8 9 10 11 13 14 15 16 17 19 20 21
お礼
方法としては#2を利用させていただきます。 ただし、今後の参考にこの方法も分析させていただきました。 すごいと思います。 本当にありがとうございました。
- maruru01
- ベストアンサー率51% (1179/2272)
こんにちは。maruru01です。 仮にデータがA~P列まで100行あって、 A~D列、E~H列、I~L列、M~P列ごとに行を分割させるとします。 全データをそのままSheet2にコピーして、Sheet2上で下記の操作をします。 まず、E~H列をコピーして、A101(A列最下行のすぐ下の行)に貼り付けます。 次に、I~L列をコピーして、A201(さらに最下行のすぐ下)に貼り付けます。 同様に、M~P列もコピーして貼り付けます。 そうしたら、E~P列は不要なので削除 ここで、作業列に2列使用します。 (仮にE列とF列を作業列とします。) E列の1行目から、 「1、2、3・・・100、1、2、3・・・100・・・」 と、1~100を繰り返してデータ最下行(400行目)まで入力します。 F列の1行目から、 「1、1、1・・・1、2、2、2・・・2・・・」 と、100行ごとにインクリメントしていってデータ最下行(400行目)まで入力します。 そうしたら、A~F列(データ列+作業列)で並べ替えを、 E列を第1キー、F列を第2キーにして行います。 終了したら作業列(EF列)は削除します。
お礼
さっそくありがとうございました。 確かにこれでもできました。
お礼
ありがとうございます。 この方法がイメージした形のようです。 助かりました^^