目次
このチュートリアルでは、フィルタリングやVBAコードを使って、Excelで1行おきに削除する方法を説明します。 また、3行目、4行目、その他N行目を削除する方法についても学びます。
例えば、偶数週のデータ(2、4、6、8行目など)を残して、奇数週のデータ(3、5、7行目など)を別のシートに移動したい場合、Excelワークシートの代替行を削除する必要がある場合が多くあります。
一般に、Excelで1行おきに削除するには、行を交互に選択する必要があります。 行を選択したら、[Select]キーで1ストロークし、[Select]キーを押します。 削除 この記事では、Excelで1行おきやN行おきに素早く選択・削除するためのテクニックを紹介します。
Excelでフィルタリングして1行おきに削除する方法
要するに、Excelで1行おきに消すには、まず代替行をフィルタリングし、それを選択して一気に消すという方法が一般的です。 詳しい手順は以下の通りです。
- 最初のセルに0、2番目のセルに1を入力し、最初の2つのセルをコピーして、データのある最後のセルまで列の下に貼り付けると、すぐに実行できます。
または、この計算式を使うこともできます。
=MOD(ROW(),2)です。
ROW関数が現在の行番号を返し、MOD関数がそれを2で割って、整数に丸めた余りを返すという、この式のロジックは非常にシンプルです。
その結果、偶数列はすべて0(余りなく均等に2で割るため)、奇数列はすべて1ということになります。
関連項目: お礼状例:面接用、奨学金用、推薦状用など。 - 偶数行、奇数行のどちらを削除するかによって、1または0をフィルタリングします。
これを行うには、Helper列の任意のセルを選択し、そのセルから データ tab> ソートとフィルター をクリックします。 フィルター ボタンをクリックすると、すべてのヘッダーセルにドロップダウンフィルターの矢印が表示されます。 Helper列の矢印ボタンをクリックし、いずれかのボックスにチェックを入れます。
- 偶数行を削除する場合は0
- 奇数列を削除する場合は1
この例では、値が「0」の行を削除するため、フィルタリングを行います。
- すべての「1」行が非表示になったので、表示されている「0」行をすべて選択し、選択範囲を右クリックし 行の削除 :
- 上記の手順で、空のテーブルができましたが、「1」の行はまだ残っていますので、ご心配なく。 再び見えるようにするには、オートフィルタを解除するために フィルター ボタンをもう一度押してください。
- C列の数式は残りの行で再計算されますが、もう必要ありません。 これで、ヘルパー列を安全に削除できます。
その結果、ワークシートには偶数週だけが残り、奇数週は消えてしまったのです。
ヒント:行を完全に削除するのではなく、他の行をどこかに移動させたい場合は、まずフィルタリングした行をコピーして新しい場所にペーストし、その後フィルタリングした行を削除します。
VBAでExcelの代替行を削除する方法
Excelのワークシートの行を1つ1つ削除するようなつまらない作業に時間を取られたくない場合は、以下のVBAマクロで処理を自動化することができます。
Sub Delete_Alternate_Rows_Excel() Dim SourceRange As Range Set SourceRange = Application.Selection Set SourceRange = Application.InputBox( "Range:" , "Select range" , SourceRange.Address, Type :=8) If SourceRange.Rows.Count>= 2 Then Dim FirstCell As Range Dim RowIndex As Integer Application.ScreenUpdating = False For RowIndex = SourceRange.Rows.Count - (SourceRange.Rows.Count Mod 2) To 1Step -2 Set FirstCell = SourceRange.Cells(RowIndex, 1) FirstCell.EntireRow.Delete Next Application.ScreenUpdating = True End If End SubExcelでマクロを使って1行おきに削除する方法
Visual Basic Editor を使って、通常の方法でワークシートにマクロを挿入します。
- Alt + F11キーを押して、Visual Basic for Applicationsのウィンドウを開きます。
- 上部のメニューバーで インサート > モジュール に、上記のマクロを貼り付けます。 モジュール
- F5キーを押して、マクロを実行します。
- ダイアログが表示され、範囲を選択するよう促されます。 テーブルを選択し、OKをクリックします。
完了!選択した範囲内の他のすべての行が削除されます。
ExcelでN行目ごとに削除する方法
このタスクでは、1つおきに行を削除するために使用したフィルタリング手法を拡張します。 違いは、フィルタリングのベースとなる数式にあります。
MOD(ROW()-) m , n )どこで
- m は、データのある最初のセルの行番号から1を引いた値です。
- n は削除したいN行目
例えば、2行目から始まるデータを3行目ごとに削除したいとします。 そこで、計算式の中で n は3に等しく、かつ m は1(2行目から1を引いた値)に相当します。
=mod(row() - 1, 3)
もし、データが3行目から始まっているとしたら m は2(3行目から1を引いた数)となり、以下同様です。 この補正は、1行目から順に番号をつけるために必要です。
この式は、相対する行数を3で割って、割り算後の余りを返すものです。 この場合、3行目の数字はすべて3で割って余りがないため(3、6、9など)、3行目ごとに0が返されます。
そして今度は、すでにおなじみの手順で、「0」行をフィルタリングします。
- 表中の任意のセルを選択し フィルター ボタンをクリックします。 データ
- Helper列をフィルタリングして、"0 "値のみを表示する。
- 表示されているすべての「0」行を選択し、右クリックし、「0」を選択します。 行の削除 をクリックすると、コンテキストメニューが表示されます。
- フィルタを解除し、Helper列を削除します。
同様に、Excelでは4行目、5行目、その他N行目ごとに削除することができます。
ヒント:無関係なデータを含む行を削除する必要がある場合、次のチュートリアルが役に立ちます:セルの値に基づいて行を削除する方法。
お読みいただきありがとうございました。来週も当ブログをよろしくお願いします。