• ベストアンサー

エクセルで、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/7940)
回答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/17068)
回答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

  • Excelで、行の組み換えについて

    A列からG列までデータが入っているリストがあるのですが、 例えば、1行目から50行目までと、51行目から100行目までを交互に組み入れるには どのようにすればよいでしょうか。   A B C D E F G 1 2 3 ・ ・ ・ 51 52 53 ・ ・ ・ といったものを、   A B C D E F G 1 51 2 52 3 53 ・ ・ ・ のようにしたいのですが、一気に操作できる方法があれば 教えていただきたく、よろしくお願いいたします。

  • Excelで複数行を1行にするマクロについて

    Excel2000で3行を繰り返し、1つの行にまとめていくマクロの書き方についてご教授ください。 例えば下記のような並びの時、 A B C D E F G H I ..... マクロを使って、 A B C D E F G H I ...... のようにしたいと考えています。

  • エクセルで、データのある行だけを抽出したい。

    エクセルのSheet1にデータが入っており、セルが空白でない行のデータのみを、Sheet2に抽出したいと思っています。 Sheet2にあらかじめ関数を入れておく方法にしたいため、関数について教えてください。 タイムテーブルで予定を管理するような表で、A~Hまでにデータが入っています。 予定を入れる際にはE列には必ず入力をするため、E列が空白でない行のみを抽出したいです。 A|B|C|D|E|F|G|H 月|日|時間|… 11|22|10:00|… 11|22|10:30|… 時間枠は10:00~17:00の30分刻みで、1日15行使用するので、1年で5475行まで使用します。 1行目はタイトル行なので、データは2行目から入力しています。 フィルタオプションで抽出する方法や、それをマクロで登録しておく方法は分かったのですが、あとから予定を追加することがあるため、マクロを実行する度にデータが置き換わると困ってしまいます。 また、抽出したSheet2のI列以降には備考などを入力したいため、やはり後から列がずれると困るため、A~H列に関数を入れておく方法で実行したいと思います。 よろしくお願いいたします。

  • エクセルにて複数セルの並び替え

    こんにちは、エクセルについて教えてください。列はA~Hまで、行は1~200行ほどに値が入っています。 例えばValueが以下のようだとします。 A1 B1 C1 D1 E1 F1 G1 H1 A2 B2 C2 D2 E2 F2 G2 H2 ... これらのValueを、別のSheetに以下のように並び替えたいのですが、 A1 B1 C1 D1 E1 F1 G1 H1 A2 B2 C2 D2 E2 F2 G2 H2 A3 B3 ...と、これがA200~H200の行分まで。なのでPaste後は800行になります。どうにかマクロか何かで簡単に 出来ないかと思い、どなたかご教授いただければと思います、よろしくお願いします!

  • エクセル:複数セルからの参照

    お世話になります。 A,B,C列にデータが入っています。 D,E,F列に参照のためのデータがあります。 A,B,C列はそれぞれD,E,F列に対応しています。 A,B,C列と同じ並びのデータが入っている行をD,E,F列から探し、その隣のG列の値をH列に返す。 D,E,F列の並びが重複する行はありません。 A,D列は場所の名前、B,C,E,F列には数字が入っている。 例) A1に事務室 B1に20 C1に3 が入っているとする。 D/E/F列が 事務室/20/3 の並びになっているのが10行目の場合、H1にG10のセルの値を返す。 この場合、H列にはどんな計算式を入れておけばよいのでしょうか? A,B,C列と同じ並びのデータがD,E,F列で見つからない場合は空白をH列に返す。 ちなみにD/E/F列が 事務室/20/3 の並びになっている行は10行目しかないです。 よろしくお願いします。

  • Excel 2007 1列のデータを1行にしたい

    いつもお世話になっています. 早速質問なんですが A B C D E F G 1 あ 2 い 3 う 4 え 5 お 6 か のような あ~か を A B C D E F G 1 あ い う え お か 2  3  4  5  6  みたいにしたいのですがやり方が分かりません. 2*2以上のデータを入れ替える方法はWeb上にあるのですが,1列のみを1行に変換する方法が載ってません.誰か教えてください.宜しくお願い致します.

  • excel  複数行をまとめる 一括変換

    データ整理で困っております。 皆様のお知恵を拝借したくお願いいたします。 EXCELシートで次のようなデータがあります。   A B C D E F G H I J K 1 1 あ い 2  う え 3  お か 4  き く 5  け こ 列はA,B,Cのみにデータがあります。 行は1~5にあります。 A1は連番で数字があります。 この5行のデータが400近くあります。(約2,000行) このシートが10ほど存在します。 これらのシートを次のように1行に変換したいのです。   A B C D E F G H I J K 1 1 あ い う え お か き く け こ 2  3  4  5  行2~5はブランクのままでもかまいません。 何卒よろしくお願いいたします。

  • エクセル マクロでセルを自動移動

    例1のようになっているエクセル表があります。 データは右方向、下方向へ増えます。 Cの列以降は4つ単位でしかデータは増えません。 それを例2の表のように列A,Bのデータはそのままに Cの列以降の4つのセルを区切りに下の行に移動して、 空白の列まで言ったらA2の行以降を最後の行まで繰り返しするという マクロを書くことは可能でしょうか。 出来ましたらそのマクロを教えてください。 例1 A1 B1 C1 D1 E1 F1 G1 H1 I1 J1 K1 L1 M1 N1 A2 B2 C2 D2 E2 F2 G2 H2 I2 J2 A3 B3 C3 D3 E3 F3 G3 H3 I3 J3 K3 L3 M3 N3 例2 A1 B1 C1 D1 E1 F1 A1 B1 G1 H1 I1 J1 A1 B1 K1 L1 M1 N1 A2 B2 C2 D2 E2 F2 A2 B2 G2 H2 I2 J2 A3 B3 C3 D3 E3 F3 A3 B3 G3 H3 I3 J3 A3 B3 K3 L3 M3 N3

  • 簡単にコピーする方法

    A、C、E、F列に3行目から250行目程度データが入っています。 H~J列のよう縦方向に順番にコピーする簡単な方法を教えて下さい。 但し、6行目の様に各スペース行を設ける。 また、結果が1000行となってしまっても良いです。 マクロ使用でも構いません。   A  B   C  D   E   F    G   H   I   J  1 2 3 ss    3-6      m   7        m      7 4 sz    1-8       g   6        ss 5                            3-6 6 7                             g      6 8                             sz 9                            1-8 . . . .

  • 行を追加した時の、値の合計範囲

    行を追加するマクロがあり、実行すると「合計」行の1行上に行が追加されます。 行が追加された分「合計」のある行が下がっていくんですが、その関数が変動してくれなくて困っています。    A   B   C   D   E   F   G   H   I 1    商品の基本データ ・    ・ ・    ・ 14   商品の基本データ 15 16     日付  入庫  出庫               本日在庫  17 2012/04/01  100                     100 18 2012/04/05  50                      150 19 2012/05/03      100                 50 20 2012/05/04  300                     350 21    ・         150                 200 22    ・          50                 150 23    ・      200                     350 24    ・          10                  340 (ここに行が挿入されていく) 25 合計       (1)   (2)                340(=(1)-(2)) (1)=IF(COUNT($C$17:$C24)=0,"",SUM($C$17:$C24)) (2)=IF(COUNT($D$17:$D24)=0,"",SUM($D$17:$D24)) 現在こんな感じで式を入れています。$C24と$D24が$C25...、$D25...等動いていってくれるといいんですが・・。 他にもSUMPRODUCTやOFFSETなど色々試しましたが、上手くいきません。 行が増えていく(セル参照範囲が変わってくれない)、C:CやD:Dとして設定できない、データが連続していない、などが原因だと思っています。 A列には何もありません。 E~H列は他にもデータが入っています。 マクロで、B17からHの合計の1行上までを日付でソートすることがあります。 合計行の上に空白行C25を入れ、合計行C26にSUM(C17:C25)とし、 挿入する位置を空白行C25の上とすれば、SUMは挿入行を抱えていってくれるんですが、 この場合空白の行25を高さ0の不可視にさせなければならず、利用する側としては21・22・23・24・26と、25が飛んでいるのが気になるものと思います。 できればそういう疑問を持たせることなく可動させたいです。 因みにVBAでWorksheet_ChangeやWorksheet_Selectionhangeなどは既に使用しているので、 マクロで自動で合計値を入力することはできないと思います。 ボタンで動かすマクロでなら出来そうですが、合計を逐一表示するのにマクロボタンを設置するのもどうかと思うので・・。 いくらネットで探しても方法が見つからなかったので、何方かご教授宜しくお願い致します。

専門家に質問してみよう