前回の連載で紹介したように、残念ながら「関数FILTER」はワイルドカードに対応していない。せっかく複数件(複数レコード)のデータを抽出できるのに、「完全一致」でしか検索できない・・・、というのは少し不便だ。そこで今回は、関数FILTERで「部分一致」の検索を可能にするテクニックを紹介していこう。
関数FILTERはワイルドカードが使えない・・・
前回の復習も兼ねて、まずは「関数FILTER」の基本的な動作を確認しておこう。
今回も、会員名簿をまとめた表を使って使い方を紹介していこう。この名簿には、ワークシートの16行目から515行目までに計500件のデータが入力されている。
関数FILTERを使って、この表からデータを抽出するときは、以下の図のように関数を記述すればよい。なお、ここではC2セルに入力した「氏名カナ」でデータを検索するように引数を指定している(詳しくは前回の連載を参照)。
まずは「タカハシ ヨシタカ」で検索した例だ。この表には「タカハシ ヨシタカ」さんが2名いるため、以下の図のように2件のデータが取得された。
続いては、「タカハシ」だけで検索した例だ。この場合、データは1件も取得されない。というのも、氏名カナが「タカハシ」だけのデータは1件も存在しないからだ。関数FILTERはキーワードに「完全一致」するデータだけを取得する仕様になっている。
念のため、「*」を追加してワイルドカードの使用を試みた例も紹介しておこう。この場合も結果に変わりはない。関数FILTERはワイルドカードに対応していないため、「前方一致」や「後方一致」の検索は行えない。
このように、VLOOKUPやXLOOKUPでは使用可能なワイルドカードが、関数FILTERでは使用不可となっている。
関数FILTERは複数件(複数レコード)のデータを取得可能で、ルックアップ系の関数にはない利点を有している。その一方で「ワイルドカードを使えない・・・」という弱点もある。今回は、この弱点を克服するテクニックを紹介していこう。