Excelで部分一致するデータを抽出する方法|FILTER・FIND・INDEX+SMALL

Excelで部分一致するデータを抽出する方法|FILTER・FIND・INDEX+SMALL

「埼玉県を含む」など、部分一致の条件を満たすデータを抽出するなら、Excel2021/365ではFILTER関数の引数[含む]にIFERROR関数、Excel2019/2016ではIF関数の引数[論理式]にCOUNTIF関数で条件式を入力して抽出する数式を作成しましょう。

目的

日付/部分一致抽出

使用する関数

FILTER関数、IFERROR関数、FIND関数、IF関数、COUNTIF関数、ROW関数、INDEX関数、SMALL関数

目次

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

例題1|住所に「埼玉県」を含む会員を、FILTERで抽出する

  1. データを求めるセル(A6セル)を選択し、「=FILTER(」と入力する。
  2. [配列]…抽出する表のセル範囲を選択する。
  3. [含む]…IFERROR関数で「住所」内からA3セルの「東京都」を含む住所を検索し、あれば表内の位置を、なければ「0」を返す数式を入力する。
  4. [空の場合]…省略して、「Enter」キーで数式を確定する。
A6に入力:住所に文字を含む行を、すべて取り出す
数式=FILTER(A10:C12,IFERROR(FIND(A3,B10:B12),0)>=1)
ひとことで住所にA3の文字を含む会員を、まとめて取り出す
A10:C12
取り出す範囲です
FIND(A3,B10:B12)
住所の中に、A3の文字が見つかる位置です。見つからないとエラーです
0
見つからない行は 0 にして、条件(1以上)から外します
補足結果は A6:C7 に広がります(スピル)。Microsoft 365・Excel 2021以降で使えます。
使用するExcel関数

FILTER関数、IFERROR関数、FIND関数、IF関数、COUNTIF関数、ROW関数、INDEX関数、SMALL関数

数式の解説

「=FILTER(A10:C12,IFERROR(FIND(A3,B10:B12),0)>=1)」の数式は、A3セルの「埼玉県」を含む住所を表の「住所」から検索し、ある場合の位置を条件にデータを抽出する。結果、「埼玉県」を含むデータだけが抽出される。

Excelデータダウンロード

以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample1.xlsx

例題2|FILTERが使えない場合は、INDEX+SMALLで抽出する

  1. D列のセルを選択し、「=IF(」と入力する。
  2. COUNTIF関数で、「住所」の一部がA3セルの「埼玉県」である場合の条件式、条件を満たす場合に表示する「ROW(A1)」、満たさない場合に表示する空白[””]を入力したら、「Enter」キーで数式を確定する。
  3. 数式を必要な分だけ複写して、INDEX関数の引数[列番号]を抽出する列番号にそれぞれ変更する。
  4. 抽出する表の左上のセル(A6セル)を選択し、IFERROR関数、INDEX関数、SMALL関数、ROW関数を使って数式を作成して抽出する。
A6に入力(C7までコピー):一致した行を、順に取り出す
数式=IFERROR(INDEX($A$10:$C$12,SMALL($D$10:$D$12,ROW(A1)),1),"")
ひとことで補助列の番号を小さい順に取り出して、その行の値を返す
$A$10:$C$12
取り出す元の表です
$D$10:$D$12
一致した行に付けた、位置の番号(補助列)です
ROW(A1)
何番目の一致かです。下へコピーすると、1・2・3…と変わります
補足FILTERが使えないExcelでも使える方法です。
使用するExcel関数

FILTER関数、IFERROR関数、FIND関数、IF関数、COUNTIF関数、ROW関数、INDEX関数、SMALL関数

数式の解説

「COUNTIF(B10,“*”&$A$3&“*”)」の数式は、A3セルの「埼玉県」を含む「住所」の個数を求める。

IF関数の引数[論理式]に組み合わせることで、B10セルの「住所」の中にA3セルの「埼玉県」を含む場合は表内の番目を求め、違う場合は空白[””]を求める。数式をコピーすることで、条件「埼玉県」を含むデータの行にだけ表内の番目が付けられる。

D列に作成した表内の番目を使い、IFERROR関数、INDEX関数、SMALL関数、ROW関数を使って数式を作成して抽出することで、「埼玉県」を含むデータが抽出される。

Excelデータダウンロード

以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample2.xlsx

応用1|電話番号の先頭の文字で、会員を絞り込む

Excelデータダウンロード

以下のリンクを右クリックし、Excelデータをダウンロードください
Excel-sample3.xlsx

特定の文字を含む行を抽出する方法の全体像(フィルター機能・関数・マクロ)は、こちらの記事で解説しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次