• ベストアンサー

エクセルで、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 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

たとえば2行おきの場合。 添付図: 隣列に,B1に数字の1,B2に数字の2を置いてB1:B2をオートフィルドラッグして連番を記入させます。 その下に,2行おきならまず2を記入,そして4を記入してオートフィルドラッグして2,4,6,8の数字を作ります。 AB列をB列昇順で並べ替えると出来上がりです。 n行置きの場合も同様に,B列下に継ぎ足す数字をnおきの数字に作って操作すれば出来ますね。 また,下に継ぎ足す数字の開始番号を調整すれば,どこから空を挿入するか微調整するのも容易です。

momota914
質問者

お礼

簡単でわかり易いご回答をありがとうございました。 とても助かりました。又、何か会ったときにはよろしくお願いいたします。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.7

普通は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)
回答No.6

こんばんは! 一例です。 ごくごく簡単な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)
回答No.5

マクロ例です。 対象シートタブで右クリック→コードの表示→以下のコード貼り付け→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)
回答No.4

数式などを使用せず、補助列に簡単な文字列を使って直感的なオートフィル操作で空白行を入れるなら、以下のような操作が簡単かもしれません。 2行に1行空白行を挿入するなら、補助列の一番上に「1a」「1b」と入力して、この2つのセルをオートフィルコピー(セルの右下をダブルクリック)します。 その下のセルには「1c」と入力して下方向にオートフィルします。 これでこの列を基準に昇順に並べ替えてみてください。

回答No.3

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)
回答No.2

私がよくする方法です。 仮に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列を選択⇒削除 文字で書けば長ったらしいですが、一旦やってみればすぐに出来ます。

関連するQ&A