Excelで複数キーワードのどれかを含むデータを抽出する方法|FILTER・MMULT

複数の部分一致の条件を指定するには、条件式が条件ごとに必要になりますが、Excel2021/365なら、FILTER関数の引数[含む]にMMULT関数を組み合わせて数式を作成することで、スピーディーに抽出できます。

目的

日付/部分一致抽出

使用する関数

FILTER関数、MMULT関数、IFERROR関数、FIND関数、TRANSPOSE関数、ROW関数

目次

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

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

例題1|複数の都道府県のどれかを含む会員を、FILTERとMMULTで抽出する

  1. データを求めるセル(A7セル)を選択し、「=FILTER(」と入力する。
  2. [配列]…抽出する表のセル範囲を選択する。
  3. [含む]…「MMULT(」と入力する。
  4. [配列1]…IFERROR関数で行の配列に入れ替えたA3セル~A4セルの都道府県を含む住所が表の「住所」にある場合にその位置を返し、ない場合は「0」を返す数式を入力する。
  5. [配列2]…ROW関数で列の配列を入力する。
  6. FILTER関数の[空の場合]…省略して、「Enter」キーで数式を確定する。
A7に入力:条件のどれかを含む行を取り出す
数式=FILTER(A11:C13,MMULT(IFERROR(FIND(TRANSPOSE(A3:A4),B11:B13),0),ROW(A3:A4))
ひとことで2つの都道府県のどちらかを、住所に含む会員を取り出す
A11:C13
取り出す範囲です
TRANSPOSE(A3:A4)
縦に並んだ条件を、横に並べ替えて、FINDで、各住所と見比べます
ROW(A3:A4)
条件ごとの結果に掛けて足し合わせます。どれかが見つかった行は、0より大きくなります
補足条件のセルが空だと、すべての行が残ります。結果は A7:C8 に広がります(スピル)。
使用するExcel関数

FILTER関数、MMULT関数、IFERROR関数、FIND関数、TRANSPOSE関数、ROW関数

数式の解説

「IFERROR(FIND(TRANSPOSE(A3:A4),B11:B13),0)」の数式は、TRANSPOSE関数で行の配列に入れ替えたA3セル~A4セルの都道府県を含む住所が表の「住所」にある場合にその位置を返し、ない場合は「0」を返す。

MMULT関数の引数[配列1]に組み合わせ、[配列2]に列の配列の「ROW(A3:A4)」を組み合わせることで、行列の積が返され、FILTER関数の引数[含む]にA3セル~A4セルの都道府県を条件として指定することができる。

Excelデータダウンロード

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

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

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

この記事を書いた人

コメント

コメントする

目次