Excelで特定の文字列を含むデータを抽出する計算式の書き方

指定した文字列を含むデータを抽出するExcelの計算式の書き方を教えていただきました。

FILTER関数でワイルドカードは使える?|含む条件の指定

要するに、オートフィルタで「文字列を含む」と指定するのと同じことを関数で行いたいのですが、以前は下の記事のようにもっと複雑な計算式を書いていました。

JDLIBEX出納帳の売掛金入力・買掛金入力(Excelで相手先名称の一部からコードを検索する)

次のような簡単な式で書けます。

=FILTER(A:B,IFERROR(FIND(G1,B:B),0),”該当なし”)

A列にコード、B列に名称が入力されているとして、G1セルに入力した文字列がB列に含まれているデータだけを抽出して表示してくれます。(計算式は1か所にだけ書けばExcelのスピルによって右方向や下方向に展開されます)

こういう書き方ができる、ということに大変驚きました。

ポイントは2つあると思います。

ひとつは、FILTER関数の第一引数も第二引数も配列である、ということ。

もうひとつは、FIND関数の第二引数にセル範囲を指定することができ、その結果は配列で返される、ということです。

=FILTER(A:B,IFERROR(FIND(G1,B:B),0),”該当なし”) の IFERROR(FIND(G1,B:B),0) の部分は、G1セルに入力した文字列が1番目にあれば1、3番目にあれば3、文字列が含まれていなければエラーになるので0が返される配列になっています。

{1;3;0;······}

この配列の値が0でないものをFILTER関数で抽出している、ということになるかと思います。

タイトルとURLをコピーしました