この記事ではエクセルで1行おきに2行挿入する方法について解説していきます。
ポイントは、以下の3つです。
・予めラベルをつけて並び替える方法
・関数を使う方法
・マクロを使う方法
エクセル操作は1つ1つ追っていけば必ずうまくできるため、ぜひ本記事を参考にスキルアップにつなげてくださいませ♪あなたならできます(^^)/
エクセルで1行おきに2行挿入する方法【並び替え】
それでは以下のサンプルを用いて予めラベルをつけて並び替える方法を確認していきます。
まず、元データの隣の列に商品名の個数に応じたアルファベットを、abcde…と規則的につけていきます。
さらに、今回では1行ごとに2行挿入していく(1項目あたり計3行)ために、a~eのラベルを3回分繰り返します。
この時、a~eまでの範囲すべて選択の上、オートフィルにかけるといいです(セルの右下にカーソルを合わせ、下にドラッグしコピー)。
最後にB列でソートをかけましょう。
具体的には、先頭セル(B2)を選択の上、ツールバーのデータタブ、昇順(AZ↓マーク)をクリックしましょう。
結果として、1行おきに2行空白行が挿入された状態になります。1つずつ丁寧に理解することがポイント♪
適宜B列を削除したり、格子を入れたりしてみてくださいませ。
この方法は元データを編集せず簡単に加工できるため、手っ取り早く1行おきに2行挿入したい場合におすすめです。あなたならできます(^^)/
エクセルで1行おきに2行挿入(関数)
続いては関数を使って1行おきに2行挿入する方法を確認していきます。
まず、B2セルに以下の数式を入力します。
数式の解説をしますね。
・ROW()-ROW($B$2)で、B2セルを基準とした相対的な行番号を取得
・MOD(ROW()-ROW($B$2),3)で、その相対的な行番号を3で割った余りを計算
・余りが0の場合、INDIRECT関数でA列の対応する行の値を返す
– (ROW()-ROW($B$2))/3で、B2セルを基準に何セット目かを計算
– ROW($A$2)を足すことで、A列の何行目かを計算
・それ以外(余りが0でない)の場合は空白を返す
INDIRECTという関数は、文字列で指定されたセル参照を返す関数です。
ここでは、A列の対応する行番号を文字列で組み立てて、INDIRECTに渡すことで、目的のセルの値を取得しています。
数式は少し複雑ですが、1つずつ理解していけば必ず使いこなせるはずです。
ENTERで処理を確定させます。
次に、B2セルの右下にカーソルを合わせてドラッグし、数式をB列全体にオートフィルします。
すると、1行おきに2行空白行が挿入された状態になります。
関数を使う利点は、元データを直接参照できるため、元データに変更があった場合も自動で反映されることです。
エクセルで1行おきに2行挿入(マクロ)
続いてはマクロを使って1行おきに2行挿入する方法を確認していきます。
以下のコードをVBE画面に貼り付けましょう(Alt+F11)。
このマクロの処理の流れは以下の通りです。
1. `lastRow`変数にA列の最終行番号を取得
2. `For`ループで最終行から2行目まで、1行ずつ逆順に処理
– `ws.Rows(i + 1).Resize(2).Insert Shift:=xlDown`で、i行目の下に2行の空白行を挿入
このマクロを実行すると、以下のような処理が行われます。
1. A列の最終行から2行目まで、1行ずつ逆順に処理される
2. 処理対象の行の下に2行の空白行が挿入される
結果として、A2セルはそのままの位置に残り、A3セルの内容はA5セルに移動、A4セルの内容はA8セルに移動するような形で、1行おきに2行の空白行が挿入された状態になります。
このマクロは、先ほどのマクロよりもシンプルで、A列のデータを直接操作せずに空白行のみを挿入しています。
そのため、元のデータの位置が変わることを考慮する必要がありますが、データ自体は変更されないので安心です。
マクロを実行する前に、必ずデータのバックアップを取っておくことをおすすめします。
そうすれば、もしマクロの実行結果が意図したものと違った場合でも、元のデータに戻すことができます。
エクセルのマクロは、少し練習が必要かもしれませんが、使いこなせるようになれば、業務の効率化に大きく役立つはずです。
ぜひ、挑戦してみてください!
まとめ エクセルで1つ飛ばしで2行挿入(飛び飛び:マクロ:並び替え:関数:)する方法
この記事では、エクセルで1行おきに2行挿入(並び替え:関数:マクロ)する方法について解説しました。
エクセルに扱いになれ、快適な生活を送っていきましょう♪