この記事では、エクセルで1行おきに削除(1つ飛ばし:マクロ:並び替え:関数:)する方法について解説していきます。
ポイントは、以下の3つです。
・予めラベルをつけて並び替える方法
・関数を使う方法
・マクロを使う方法
それでは詳しく見ていきましょう!
エクセルで1行おきに削除する方法【並び替え】
まずはエクセルで1行おきに削除する方法として、予めラベルをつけて並び替える方法を確認していきます。
まず、元データの隣の列に2つのアルファベットをab…と規則的につけていきます。
この時、a,bのセルを選択の上、オートフィルにかけるといいです(セルの右下にカーソルを合わせ、下にドラッグしコピー)。
次にB列でソートをかけましょう。
具体的には、先頭セル(B2)を選択の上、ツールバーのデータタブ、昇順(AZ↓マーク)をクリックしましょう。
aとつけた商品が上に、bとつけた商品が下に並び替えられます。
最後にbとつけた商品の行を削除します。
1行おきに削除されました。
適宜B列を削除したり、格子を入れたりしてみてくださいませ。
この方法は元データを編集せず簡単に加工できるため、手っ取り早く1行おきに削除したい場合におすすめです。
エクセルで1行おきに削除する方法(関数)
続いては関数を使って1行おきに2行挿入する方法を確認していきます。
まず、B2セルに以下の数式を入力します。
・MOD(ROW(),2)で、その行番号を2で割った余りを計算
・余りが0の場合、A2セルの値を返す
・それ以外(余りが1)の場合は空白を返す
ENTERで処理を確定させます。
次に、B2セルの右下にカーソルを合わせてドラッグし、数式をB列全体にオートフィルします。
すると、1行おきに削除された状態になります。
関数を使う利点は、元データを直接参照できるため、元データに変更があった場合も自動で反映されることです。
エクセルで1行おきに削除する方法(マクロ)
続いてはマクロを使って1行おきに削除する方法を確認していきます
。
以下のコードをVBE画面に貼り付けましょう(Alt+F11)。
Sub DeleteEveryOtherRow()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Set ws = ActiveSheet
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
For i = lastRow -1 To 2 Step -2
ws.Rows(i).Delete
Next i
End Sub
このマクロの処理の流れは以下の通りです。
1. lastRow変数にA列の最終行番号を取得
2. Forループで最終行の1つ前の行から2行目まで、2行ずつ逆順に処理
– ws.Rows(i).Deleteで、i行目を削除
このマクロを実行すると、以下のような処理が行われます。
1. A列の最終行の1つ前の行から2行目まで、2行ずつ逆順に処理される
2. 処理対象の行が削除される
結果として、1行おきに行が削除された状態になります。
マクロを実行する前に、必ずデータのバックアップを取っておくことをおすすめします。
そうすれば、もしマクロの実行結果が意図したものと違った場合でも、元のデータに戻すことができます。
エクセルのマクロは、少し練習が必要かもしれませんが、使いこなせるようになれば、業務の効率化に大きく役立つはずです。
ぜひ、挑戦してみてください!
まとめ エクセルで1つ飛ばしで削除(飛び飛び:マクロ:並び替え:関数:)する方法
この記事では、エクセルで1行おきに削除(並び替え:関数:マクロ)する方法について解説しました。
エクセル操作に慣れ、快適な生活を送っていきましょう♪
コメント