- ベストアンサー
エクセルで、2行おきに1行追加する方法
エクセルで、2行おきに1行追加する方法 行が2000行位あるデータについて、 1行毎では時間がかかるので、 他の方法(マクロでも作業列等)を教えて下さい。 例 行1 A 行2 B 行3 C 行4 D 行5 E 行6 F 行7 G 行8 H 上記2000行のデータを下記のように行追加をしたいのです。 行1 A 行2 B 行追加 行3 C 行4 D 行追加 行5 E 行6 F 行追加 行7 G 行8 H よろしくお願い致します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (6)
- imogasi
- ベストアンサー率27% (4737/17069)
普通はVBAでやりますでしょう。 オートフィル+並べ替えも工夫してできると思う。 ーー 関数なら 例データ シート1にA1:A9・・・・に 1 2 3 4 5 6 7 8 9 ・・・ Sheet2のA1に =IF(MOD(ROW(),3)=0,"",INDEX(Sheet1!$A$1:$A$100,ROW()-INT(ROW()/3))) 下方向に式を複写して 結果 1 2 3 4 5 6 7 8 9 10 まずわかりやすいように1列だけでやっているが、複数列の場合 INDEX関数の列を指定するところへ =IF(MOD(ROW(),3)=0,"",INDEX(Sheet1!$A$1:$D$100,ROW()-INT(ROW()/3),COLUMN())) として Sheet1のデータ 1 11 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 10 20 11 21 12 22 ーーー Sheet2の結果 1 11 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 10 20 のようにできる。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 ごくごく簡単なVBAです Sub test() Dim i As Long i = 1 Do Until Cells(i * 3, 1) = "" Rows(i * 3).Insert (xlDown) i = i + 1 Loop End Sub こんな感じではどうでしょうか?m(__)m
- mu2011
- ベストアンサー率38% (1910/4994)
マクロ例です。 対象シートタブで右クリック→コードの表示→以下のコード貼り付け→F5キー押下(2000行なので少し間が空きます) Sub 行数毎に空白行挿入() Application.ScreenUpdating = False 行数 = 2 Range("A1").Select Do While ActiveCell.Offset(行数).Value <> "" ActiveCell.Offset(行数, 0).Rows("1:1").EntireRow.Select Selection.Insert Shift:=xlDown ActiveCell.Offset(行数 - 1).Select Loop Application.ScreenUpdating = True End Sub
- MackyNo1
- ベストアンサー率53% (1521/2850)
数式などを使用せず、補助列に簡単な文字列を使って直感的なオートフィル操作で空白行を入れるなら、以下のような操作が簡単かもしれません。 2行に1行空白行を挿入するなら、補助列の一番上に「1a」「1b」と入力して、この2つのセルをオートフィルコピー(セルの右下をダブルクリック)します。 その下のセルには「1c」と入力して下方向にオートフィルします。 これでこの列を基準に昇順に並べ替えてみてください。
- saintandre
- ベストアンサー率31% (194/607)
1、一番左に列を一列追加します 2、追加したA列のセルに以下のように値と数式を入れます A1 1 A2 1 A3 =IF(A1=A2,A2+1,A2) A4以降 A3をコピーして貼り付け これで左端に「1 1 2 2 3 3 4 4 5 5...」という並びができます。 3、A列の一番下に「1 2 3 4 5...」と値を入れます (「=A1+1」のような数式を使ってください) 4、A列全体を選んで「コピー」→「形式を選択して貼り付け」で「値」で貼り付けます 5、「並び替え」でA列をキーに昇順で並び替えます 以上です。
- riri1609
- ベストアンサー率36% (199/540)
私がよくする方法です。 仮にA列を追加します。(A列を選択して右クリック⇒挿入) A1に 1 ,A2に 2 を入力 A3に =A1+3 を入力 A3をコピーし、元のデータが入力されている最終行まで貼り付ける(A列には1 2 4 5 7 ・・・と入るはずです) A列の貼り付けた下に3を入力 その下に =(上記で入力したセル)+3 を入力 コピー 必要なだけA列のその下に貼り付け(3 5 8 ・・・となるはず) A列を選択⇒コピー⇒値を貼り付ける 表全体を選択⇒A列を優先し昇順で並べ替え A列を選択⇒削除 文字で書けば長ったらしいですが、一旦やってみればすぐに出来ます。
お礼
簡単でわかり易いご回答をありがとうございました。 とても助かりました。又、何か会ったときにはよろしくお願いいたします。