エクセルで「営業」などの特定の文字を含む行をまとめて取り出すには、FILTER関数とISNUMBER・SEARCH関数を組み合わせます。下の例では、部署がB列、取り出す表がA~C列です。
対応:Microsoft 365・Excel 2021・Excel 2024

| やりたいこと | 使う方法 |
|---|---|
| 元データを変えたら抽出結果も更新したい | FILTER+ISNUMBER+SEARCH |
| 別シートに一覧を作りたい | 抽出先に、元シートを参照するFILTER式を入力 |
| Excel 2019・2016で抽出したい | テキストフィルターの「指定の値を含む」 |
| セルの中の文字だけ切り出したい | 文字列の抽出方法(LEFT・MID・RIGHTなど) |
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
練習用の表(A1:C6)と、式を入れるセル
練習ファイルの「Sheet1」には、次の表がA1:C6に入っています。1行目は見出し、データは2~6行目です。
| Excelの行 | A列:氏名 | B列:部署 | C列:売上 |
|---|---|---|---|
| 2 | 田中太郎 | 営業部 | 100 |
| 3 | 佐藤花子 | 経理部 | 200 |
| 4 | 鈴木一郎 | 営業部 | 300 |
| 5 | 山田次郎 | 人事部 | 150 |
| 6 | 高橋恵子 | 営業部 | 250 |
黄色いセルを変更すると抽出結果が変わります。「Sheet1」は同じシートでの抽出、「抽出結果」は別シートへの抽出です。判定の途中経過が分かるように、サンプルでは補助列で1(該当)・0(非該当)を表示しています。
サンプルのSheet1では、E2が検索文字、D2:D6が各行の判定、E5:G7が抽出結果です。E5の式は=FILTER(A2:C6,D2:D6,"該当なし")です。D2には次の式を入れて6行目までコピーしています。検索文字を空にすると判定はすべて0になり、「該当なし」と表示されます。
--はTRUE・FALSEを1・0に変換します。このあと紹介する補助列なしの式も、同じE5セルへ置き換えて試せます。FILTER関数で特定の文字を含む行をすべて抽出する
| 氏名 | 部署 | 売上 |
|---|---|---|
| 田中太郎 | 営業部 | 100 |
| 鈴木一郎 | 営業部 | 300 |
| 高橋恵子 | 営業部 | 250 |
数式の読み方
SEARCH("営業",B2:B6) ISNUMBER(...)FILTER(A2:C6,...,"該当なし") 検索する文字をセル入力で切り替える
E2に「営業」と入力し、E5を次の式に変えると、E2の文字を書き換えるだけで検索できます。E2が空白のときは案内を表示します。
E2に「経理」と入れると佐藤花子さんの1行が表示されます。SEARCHは英字の大文字・小文字を区別しません。また、*と?はワイルドカードです。記号そのものを探す場合は~*、~?と指定します。
特定の文字を含む「セル」だけを抽出する(1列だけ取り出す)
行ではなく、部署名のような「セルの値」だけを一覧にしたいときは、FILTERの取り出す範囲を1列(B2:B6)にします。条件の部分は、行ごと抽出する式と同じです。
文字の一部分だけを取り出したい(「ABC-123」から「123」だけ、など)ときは、文字列の抽出方法(LEFT・MID・RIGHTなど)をご覧ください。
別シートに抽出結果を自動表示する
サンプルの「抽出結果」シートでは、B1が検索文字、A3:C3が見出し、A4が結果を表示するセルです。E4:E8で元データの各行を判定し、A4の=FILTER('Sheet1'!A2:C6,E4:E8,"該当なし")で抽出しています。
E4には次の判定式を入れ、E8までコピーしています。

補助列を使わず1つの式で書く場合は、A4を次の式に置き換えます。自分で作る場合も、同じセル位置ならそのまま使えます。
'Sheet1'!は元データのあるシートを表します。B1は抽出結果シートの検索文字です。Sheet1の部署や売上を変更すると抽出結果にも反映されます(計算方法が「自動」の場合)。
シート名が違う場合はSheet1を実際の名前に変えます。数式入力中に元シートをクリックして範囲を選ぶと、シート名の入力間違いを防げます。
A2:C6とB2:B6の終端を同じ行まで広げてください。行追加が多い表では、元データをExcelテーブルにして構造化参照を使う方法もあります。複数条件で行を抽出する
サンプルのA16にはAND条件、E16にはOR条件の式があります。I列・J列で「営業を含む」「経理を含む」をそれぞれ判定しています。下の本文では補助列なしで書く式を示します。

▶ Sheet1のAND・OR(A16・E16)を試す / 補助列なしの式を試す
「営業を含む」かつ「売上200以上」(AND条件)
条件を*でつなぐと、両方を満たす行だけが対象になります。この表では鈴木一郎さん(300)と高橋恵子さん(250)の2行です。
「営業」または「経理」を含む(OR条件)
条件を+でつなぎ、1つ以上満たす行を取り出します。この表では人事部を除く4行が対象です。1行が両方の条件を満たしても、その行が二重に出ることはありません。
部署名が「営業部」と完全に一致する行だけ
「営業一課」などを含めたくない場合はこちらです。複数条件の考え方はFILTER関数の複数条件による抽出でも解説しています。
Excel 2019・2016ではテキストフィルターを使う
抽出できない・エラーになるときの確認点
| 症状 | 確認すること |
|---|---|
| #NAME?、または_xlfn.が表示される | FILTERに対応しているExcelか確認。2019・2016ではテキストフィルターを使用。 |
| #SPILL! | 結果を広げる先に値や結合セルがないか確認。式はExcelテーブルの外に入力。 |
| #VALUE! | 抽出範囲と条件範囲の行数をそろえる。A2:C6ならB2:B6を指定。 |
| 該当なし | 検索文字、検索対象の列、全角・半角や余分な空白を確認。 |
| 検索文字を消すと全件出る | 空文字をSEARCHに渡さないよう、セル入力の例のIFを使用。 |
| 追加した行が表示されない | すべての対象範囲を、新しい最終行まで広げる。 |
よくある質問
英字の大文字と小文字を区別できますか?
できます。SEARCHをFINDに変更します。たとえばISNUMBER(FIND("ABC",B2:B6))なら大文字のABCを含む行が対象です。
抽出した結果を編集できますか?
FILTERの結果は元データと数式から決まります。結果の途中のセルを直接書き換えるのではなく、元データを編集します。固定の一覧として編集したい場合は、結果をコピーして別の場所へ「値」で貼り付けます。
セルの一部分だけを取り出す方法とは違いますか?
この記事は条件に合う「行」を取り出す方法です。「ABC-123から123だけを取り出す」といった用途は、特定の文字より後ろを抽出する方法をご覧ください。
解説を読んだら、サンプルで試してみましょう

コメント