Excelで特定の値が含まれる行を削除する3つの方法【検索・フィルター・VBA】
Excelでデータを扱っていると、条件に合致する行を削除したい場面は非常に多くあります。特に「セルに特定の値が含まれている行をまとめて削除したい」というニーズは頻繁に発生します。状況に応じて最適なアプローチは異なりますが、この記事では、具体例と図解付きで使える3つの効果的なテクニックをわかりやすく解説します。
練習用ワークブックのダウンロード
本記事で使用しているExcelファイルをダウンロードして、実際に操作しながら学習することをおすすめします。
特定の値を含む行を削除する3つの方法
このチュートリアルでは、サンプルとして「個人情報」データベースを使用して、各方法の手順を説明していきます。

それでは、ひとつずつ方法を見ていきましょう。
方法1:「検索と置換」を使って特定のテキストを含む行を削除する
例えば、「名前」列に入力されている「Mr.」で始まるレコードをすべて削除したい場合は、以下の手順で操作します。
🔗 手順:
❶ Ctrl + F キーを押して「検索と置換」ダイアログボックスを開きます。
❷ 「検索する文字列」ボックスに「Mr.」と入力します。
❸ 「すべて検索」をクリックします。
❹ 表示された検索結果のいずれか1件をクリックして選択し、Ctrl + A を押してすべての検索結果を選択します。
❺ すべての検索結果を選択できたら、「閉じる」をクリックします。

❻ Ctrl + -(マイナス)キーを押して「削除」ダイアログボックスを開きます。
❼ 「上方向にシフト」を選択して「OK」をクリックします。

これで完了です。
関連記事:Excelで行を削除する7つの方法
方法2:オートフィルターを使って特定のテキスト/数値を含む行を削除する
2.1 特定のテキストを含む行を削除する
この方法では、Excelのオートフィルター機能を使って、「名前」列で「Ms. Liesel」で始まるレコードをすべて削除します。
🔗 手順:
❶ データ表全体を選択します。
❷ リボンの「データ」▶「並べ替えとフィルター」▶「フィルター」をクリックします。

❸ 「名前」列見出しの右側にあるドロップダウン矢印をクリックします。
❹ 「テキストフィルター」▶「先頭が…」を選択します。

すると、「オートフィルターのオプション」というダイアログボックスが画面に表示されます。
❺ 「先頭が」の入力欄に「Ms. Liesel」と入力して「OK」をクリックします。

❻ 続けて Ctrl + -(マイナス)キーを押すと、下の画像のような確認ダイアログが表示されます。
❼ 「OK」ボタンをクリックすれば完了です。

2.2 特定の数値を含む行を削除する
今度は、オートフィルター機能を使って、「年齢」列の値が23より大きいレコードをすべて削除する方法を紹介します。
🔗 手順:
❶ 「年齢」列内の任意のセルを選択します。
❷ 「データ」▶「並べ替えとフィルター」▶「フィルター」をクリックします。

❸ 「年齢」列見出しのドロップダウン矢印をクリックします。
❹ 「数値フィルター」▶「指定の値より大きい」を選択します。

❺ 「次の値より大きい」の入力欄に「23」と入力して「OK」をクリックします。

❻ Ctrl + -(マイナス)キーを押してフィルターで抽出された行をすべて削除し、表示されたダイアログボックスで「OK」をクリックします。

これで完了です。
関連記事:Excel VBAでフィルターして行を削除する方法(2通り)
あわせて読みたい記事:
- Excelで数式を使って複数行を削除する方法(5通り)
- Excelで複数行を一度に削除する方法(5通り)
- Excel VBAで非表示の行を削除する方法(詳細解説)
- 数式に影響を与えずに行を削除する2つの方法
- マクロで0を含む行を削除する方法(4通り)
方法3:VBAコードを使って特定のテキスト/数値を含む行を削除する
このセクションでは、VBAマクロを使って、特定のテキストや数値が含まれる行を自動的に削除する方法を解説します。大量のデータを扱う場合に特に便利な手法です。
3.1 特定のテキストを含む行を削除する
この方法では、「名前」列などにテキストが入力されている行を判定して削除するマクロを紹介します。
🔗 手順:
❶ Alt + F11 キーを押してVBAエディター(VBE)を開きます。

❷ メニューの「挿入」▶「標準モジュール」を選択して、新しいモジュールを開きます。

❸ 以下のコードをコピーします:
Sub DeleteRowsContainingtext()
Dim A As Worksheet
Dim B As Integer
Dim Step As Long
Set A = Worksheets("VBA")
For B = A.Range("B5:C14").Rows.Count To 1 Step -1
If Application.WorksheetFunction.IsText(Cells(B + 2, 2)) = True Then
A.Cells(B + 2, 2).EntireRow.Delete
End If
Next
End Sub
❹ コードをVBAエディターに貼り付け、Ctrl + S で保存します。

❺ 「VBA」という名前のワークシートに戻り、Alt + F8 キーを押します。
❻ マクロ一覧から「DeleteRowsContainingtext()」を選択して「実行」をクリックします。

これで完了です。
3.2 特定の数値を含む行を削除する
続いて、「年齢」列に特定の数値(17)が含まれている行を削除するマクロを紹介します。
🔗 手順:
❶ Alt + F11 キーを押してVBAエディターを開きます。
❷ 「挿入」▶「標準モジュール」を選択して、新しいモジュールを開きます。
❸ 以下のコードをコピーします:
Sub DeleteRowsContainingNumbers()
Dim A As Long
Dim B As Long
A = 1000
For B = A To 1 Step -1
If Cells(B, 3).Value = "17" Then
Rows(B).Delete
End If
Next
End Sub
❹ コードをVBAエディターに貼り付け、Ctrl + S で保存します。

❺ 「VBA (2)」ワークシートに戻り、Alt + F8 キーを押します。
❻ マクロ一覧から「DeleteRowsContainingNumbers()」を選択して「実行」をクリックします。

これで完了です。
関連記事:Excel VBAで特定のデータを含む行を削除する(9つの事例)
覚えておきたいポイント
📌 Ctrl + F:「検索と置換」ダイアログボックスを開くショートカットキーです。
📌 Ctrl + -(マイナス):行やセルを削除するためのショートカットキーです。
📌 Alt + F11:VBAエディターのウィンドウを開くショートカットキーです。
まとめ
今回は、Excelでセルに特定の値が含まれている行を削除する3つの方法を紹介しました。「検索と置換」「オートフィルター」「VBAマクロ」と、それぞれ特徴が異なるので、データ量や用途に応じて使い分けるのがおすすめです。記事に添付された練習用ワークブックをダウンロードして、ぜひすべての方法を実際に試してみてください。ご不明な点があれば、下のコメント欄からお気軽にお問い合わせください。できるだけ早く回答いたします。
関連記事
- Excelで複数行を削除する方法
- 条件に一致する複数行をExcelで削除する方法
- Excelで選択した行だけを削除する方法
- Excelで1行おきに行を削除する方法
- Excel VBA:空白セルを含む行を削除する完全ガイド
-
Excelでテーブルを使わずに行の色を交互に変更する5つの方法
データを見やすく整理したいとき、テーブルを作成せずにExcelで行の色を交互に変更することができます。この記事では、テーブルを使わずに行の色を交互に設定する方法を詳しく解説します。 テーブルなしで行の色を交互に変更する5つの方法 ここでは、テーブルを使わずに行の色を交互に変更する5つの方法を紹介します。理解しやすいよう、製品・売上・利益・ステータスの4列からなるサンプルデータを使用します。 方法1:塗りつぶしの色機能を使う 塗りつぶしの色機能を使えば、テーブルなしで行の色を交互に変更できます。ただし、完全に手作業となるため、データ量が多い場合は時間がかかる点に注意しましょう。手順は以下の通り
-
Excelで行の階層(アウトライン)を追加する方法【2つの簡単な手順を解説】
行の階層(Row Hierarchy)は、互いに関連する複数の行データを見やすく整理したいときに非常に便利な機能です。Excelでは、この階層を作成することで、詳細データを折りたたんだり展開したりでき、大量のデータでも読みやすくなります。本記事では、Excelで行の階層を追加する2つの簡単な方法を、手順を追ってわかりやすく解説します。記事中のExcelファイルをダウンロードすれば、読みながら実際に操作を練習することも可能です。Excelで行の階層を追加する2つの方法以下のサンプルデータには、店舗(Store)・製品(Product)・売上(Sales)の3つの列があります。ここではSUM関数を