Excelで特定の文字を含む行を抽出したい場面は、データ分析や整理において頻繁に遭遇します。本記事では、初心者の方でも理解しやすいよう、基本的な操作から関数、マクロ、さらには応用的なテクニックまで、具体的な手順と合わせて詳しく解説して行きます。
サンプルデータ
以下のサンプルデータを使って、具体的な抽出方法を説明していきます。

行番号 | 氏名 | 部署 | 売上 |
---|---|---|---|
1 | 田中太郎 | 営業部 | 100 |
2 | 佐藤花子 | 経理部 | 200 |
3 | 鈴木一郎 | 営業部 | 300 |
4 | 山田次郎 | 人事部 | 150 |
5 | 高橋恵子 | 営業部 | 250 |
エクセルで特定の文字を含む行を抽出する基本方法
まずは、Excelの基本機能を使った抽出方法から見ていきましょう。
特定の文字を含む行を抽出する手動操作の手順
- 抽出したい文字列を含む列を選択します。 例えば、「営業部」の行を抽出したい場合は、部署の列を選択します。
- 「ホーム」タブの「編集」グループにある「検索と選択」をクリックし、「検索」を選択します。
- 検索する文字列を入力します。 この場合は「営業部」と入力します。
- 「オプション」をクリックして「セル全体」のチェックを外します。 これにより、セルの一部に「営業部」が含まれる場合でも抽出できます。
- 「すべて検索」をクリックすると、シート内で一致するセルがすべて選択されます。
- Ctrl + A を押して、見つかったセルを含む行全体を選択します。
- 選択した行を右クリックし、「コピー」を選択します。
- 新しいシートまたは任意の場所に貼り付けます。
この方法は、簡単な抽出作業に適していますが、大量のデータや複雑な条件の場合は非効率になる可能性があります。
フィルター機能を活用して特定の行を抽出する方法
Excelのフィルター機能を使えば、より効率的に特定の行を抽出できます。
- データ範囲を選択します。 (A1:D5)
- 「データ」タブの「並べ替えとフィルター」グループにある「フィルター」をクリックします。
- 抽出したい文字列を含む列のフィルターボタンをクリックします。 例えば、「営業部」の行を抽出したい場合は、部署列のフィルターボタンをクリックします。
- 「テキストフィルター」>「指定の値を含む」を選択します。
- 検索する文字列を入力します。 この場合は「営業部」と入力し、「OK」をクリックします。
フィルター機能は、条件に一致する行だけを表示するため、データの確認や編集が容易になります。
Excelの検索機能で文字列を抽出するコツ
Excelの検索機能を効果的に使うには、以下の点に注意しましょう。
- ワイルドカード: アスタリスク (*) やクエスチョンマーク (?) などのワイルドカードを使用することで、より柔軟な検索が可能です。
- 例:「*部」と入力すると、「営業部」「経理部」「人事部」がすべて抽出されます。
- 大文字と小文字の区別: 必要に応じて、「大文字と小文字を区別する」オプションを使用します。
- 検索範囲: シート全体だけでなく、特定の範囲を指定して検索することもできます。
エクセル関数を使った特定の行抽出の方法
Excel関数を使うことで、より複雑な条件で抽出を行うことができます。
複数条件でフィルターを適用して抽出する操作
フィルター機能では、複数の列に条件を設定して抽出することも可能です。
- フィルターボタンをクリックし、「テキストフィルター」や「数値フィルター」など、適切なフィルターを選択します。
- 複数の条件を設定したい場合は、「AND」または「OR」を使用して条件を組み合わせます。
- 例:部署が「営業部」 かつ 売上が200以上の行を抽出したい場合は、AND条件で組み合わせます。
FILTER関数を使った複数条件の行抽出の手順

Excel 365 以降のバージョンでは、FILTER関数が利用できます。
Excel
=FILTER(抽出範囲, 条件1 * 条件2, "該当なし")
- 抽出範囲: 抽出したいデータ範囲を指定します。
- 条件1, 条件2: 抽出条件を指定します。複数の条件を指定する場合は、”*” で結合します。
- “該当なし”: 条件に一致する行がない場合に表示する文字列を指定します。
例: 売上が200以上の行を抽出する。
Excel
=FILTER(A1:D5, D1:D5>=200)
結果:
行番号 | 氏名 | 部署 | 売上 |
---|---|---|---|
2 | 佐藤花子 | 経理部 | 200 |
3 | 鈴木一郎 | 営業部 | 300 |
5 | 高橋恵子 | 営業部 | 250 |
算出過程:
D1:D5>=200
: D列 (売上) の各セルが200以上かどうかを判定し、TRUE (真) または FALSE (偽) の配列を作成します。D1>=200
→ FALSED2>=200
→ TRUED3>=200
→ TRUED4>=200
→ FALSED5>=200
→ TRUE
FILTER(A1:D5, {FALSE; TRUE; TRUE; FALSE; TRUE})
: A1:D5 の範囲から、TRUE に対応する行を抽出します。
Excel練習用サンプルデータ|ダウンロード
以下からExcelの練習用サンプルデータをダウンロードできますので、練習用としてお使いください。
条件に一致する複数項目の行を選択・コピーするポイント
複数条件で抽出する場合は、以下の点に注意しましょう。
- 条件の組み合わせ: AND条件とOR条件を適切に使い分けます。
- 条件式の記述: 正確な条件式を記述することで、意図した結果を得られます。
- FILTER関数の引数: FILTER関数の引数を正しく指定します。
エクセルのマクロで自動的に特定行を抽出する方法
マクロを使えば、複雑な抽出作業を自動化することができます。
マクロの基本設定と特定文字を抽出する流れ
- 「開発」タブを表示します。(表示されていない場合は、「ファイル」>「オプション」>「リボンのユーザー設定」で「開発」にチェックを入れます。)
- 「開発」タブの「Visual Basic」をクリックして、VBAエディターを開きます。
- 「挿入」>「標準モジュール」を選択し、コードを記述します。
VBAコードを利用して抽出を効率化する方法
以下は、特定の文字を含む行を抽出するVBAコードの例です。
VBA
Sub 特定の文字を含む行を抽出()
Dim lastRow As Long
Dim i As Long
Dim targetSheet As Worksheet
' 抽出元のシートを指定
Set targetSheet = ThisWorkbook.Sheets("Sheet1")
' 最終行を取得
lastRow = targetSheet.Cells(Rows.Count, "A").End(xlUp).Row
' 新しいシートを作成
Sheets.Add After:=Sheets(Sheets.Count)
' 抽出処理
For i = 1 To lastRow
If InStr(targetSheet.Cells(i, "A").Value, "抽出したい文字列") > 0 Then
targetSheet.Rows(i).Copy Destination:=Sheets(Sheets.Count).Range("A" & Sheets(Sheets.Count).Cells(Rows.Count, "A").End(xlUp).Row + 1)
End If
Next i
End Sub
複雑な条件でも対応できるマクロ活用術
VBAを使えば、ループ処理や条件分岐などを組み合わせて、より複雑な抽出処理を実装できます。
文字列の部分一致を条件として行を抽出する方法
文字列の一部が一致する行を抽出したい場合は、以下の方法があります。
部分一致でフィルター機能を設定するやり方
フィルター機能で「指定の値を含む」を選択し、検索する文字列の一部を入力します。
- 例:「営」と入力すると、「営業部」を含む行が抽出されます。
LEN関数とLEFT関数を活用した部分一致の抽出方法
LEN関数とLEFT関数を組み合わせることで、文字列の左側から指定した文字数と一致するかどうかを判定できます。
Excel
=IF(LEFT(A1, 3)="ABC", "一致", "不一致")
例: 氏名の姓が「田」で始まる行を抽出する。
Excel
=IF(LEFT(B1, 1)="田", "一致", "不一致")
結果:
行番号 | 氏名 | 部署 | 売上 | 一致/不一致 |
---|---|---|---|---|
1 | 田中太郎 | 営業部 | 100 | 一致 |
2 | 佐藤花子 | 経理部 | 200 | 不一致 |
3 | 鈴木一郎 | 営業部 | 300 | 不一致 |
4 | 山田次郎 | 人事部 | 150 | 不一致 |
5 | 高橋恵子 | 営業部 | 250 | 不一致 |
算出過程:
LEFT(B1, 1)
: B1セル (田中太郎) の文字列の左から1文字 (“田”) を抽出します。LEFT(B1, 1)="田"
: 抽出した文字列 (“田”) が “田” と一致するかどうかを判定し、TRUE または FALSE を返します。IF(TRUE, "一致", "不一致")
: 判定結果が TRUE の場合は “一致”、FALSE の場合は “不一致” を表示します。
置換機能で部分一致のデータを識別する手順
置換機能を使って、部分一致する文字列を特定の記号などに置換することで、フィルターや関数で抽出することができます。
色付けによる条件抽出の便利な手順
セルに色付けをして、視覚的にデータを分類し、抽出することも可能です。
条件付き書式を利用して該当セルを色付けする方法
- 色付けしたいセル範囲を選択します。
- 「ホーム」タブの「スタイル」グループにある「条件付き書式」をクリックします。
- 「新しいルール」を選択し、ルールを設定します。
- 例:売上が200以上のセルを赤色で塗りつぶす。
色付けされたセルを範囲選択し行を抽出するコツ
- 抽出したい列を選択します。
- 「ホーム」タブの「編集」グループにある「検索と選択」>「条件を選択してジャンプ」をクリックします。
- 「セルの書式設定」を選択し、抽出したいセルの色を選択します。
- 「OK」をクリックすると、指定した色のセルが選択されます。
- Ctrl + A を押して、選択したセルを含む行全体を選択します。
マクロを活用して色付け条件で自動抽出する方法
VBAを使えば、色付けされたセルを自動で抽出することも可能です。
別シートに抽出データをコピーする方法
抽出したデータを別のシートにコピーしたい場合は、以下の方法があります。
特定の行データを別シートに手動でコピーする方法
抽出した行を選択し、コピーして別のシートに貼り付けます。
FILTER関数を使って抽出データを別シートに配置する手順
FILTER関数の結果を別のシートに参照させることで、抽出データを配置できます。
VBAを利用した抽出データの自動コピーの手法
VBAを使えば、抽出データを自動で別のシートにコピーすることができます。
エクセルの空白や不要なデータ削除を行う抽出手順
空白セルや不要なデータを削除して、データを整理したい場合は、以下の方法があります。
空白セルをフィルターで選択し削除する基本操作
フィルター機能で空白セルを選択し、削除することができます。
削除後に特定の行を新たに抽出する効率的な方法
不要なデータを削除してから、改めて必要なデータを抽出することで、効率的に作業できます。
特定文字に関連するデータ以外を削除して整理するアイデア
特定の文字列を含む行以外を削除することで、必要なデータだけを残すことができます。
特定の文字列を基にセルの操作を効率化するテクニック
特定の文字列を基に、セルの操作を効率化する方法を紹介します。
MID関数とLEFT関数で文字列を整理する方法
MID関数やLEFT関数を使って、文字列から必要な部分だけを抽出したり、不要な部分を削除したりすることができます。
例: 部署名の2文字目から3文字目を抽出する。
Excel
=MID(C1, 2, 3)
結果:
行番号 | 氏名 | 部署 | 売上 | 部署名 (2-3文字目) |
---|---|---|---|---|
1 | 田中太郎 | 営業部 | 100 | 業部 |
2 | 佐藤花子 | 経理部 | 200 | 理部 |
3 | 鈴木一郎 | 営業部 | 300 | 業部 |
4 | 山田次郎 | 人事部 | 150 | 事部 |
5 | 高橋恵子 | 営業部 | 250 | 業部 |
算出過程:
MID(C1, 2, 3)
: C1セル (営業部) の文字列の2文字目から3文字分 (“業部”) を抽出します。
数式入力で特定の文字を含むセルを操作する効果的手段
数式を使って、特定の文字を含むセルに値を入力したり、書式を変更したりすることができます。
FIND関数を活用した具体的な文字列編集のステップ
FIND関数を使って、文字列中の特定の文字の位置を特定し、その情報を利用して文字列を編集することができます。
この記事では、Excelで特定の文字を含む行を抽出する様々な方法を紹介しました。 状況に応じて適切な方法を選択し、効率的にデータ分析や整理を行いましょう。
コメント