Excel。住所から横浜市のデータだけを抽出して別表をつくりたい
<FILTER+IFERROR+FIND関数>
住所から横浜市が含まれているデータを行全体で抽出したい。
抽出したデータの別表をつくりたいということなんですね。
住所には、都道府県から入力されているので、横浜市を含むという「*横浜市*」のようなワイルドカードをつかう方法があります。
また、オートフィルターで、横浜市を含むという条件で抽出する方法もあります。
今回は、FILTER関数をつかって、処理してみましょう。
FILTER関数は、抽出して別表をつくることができる関数です。
=FILTER(A2:D11,IFERROR(FIND(D13,D2:D11)>0,0),"")
と、A15に設定するだけで、横浜市を含むデータを抽出することができます。
FILTER関数は、スピル機能対応の関数なので、オートフィルで数式をコピーする必要はありません。
今回は、D13に条件を入力することで、その条件に合致するデータを抽出するようにしましたが、D13に用意しない場合には、
=FILTER(A2:D11,IFERROR(FIND("横浜市",D2:D11)>0,0),"")
というように数式を設定してもOKです。
では、数式を確認してみましょう。
FILTER関数よりも、先に、FILTER関数内の引数にある数式を確認しましょう。
FIND関数をつかっています。
これは、セル内に、横浜市という文字列があるかないかを処理しています。
左から何文字目に登場するかという数値を返してくれます。
神奈川県横浜市 ですから、5文字目に横浜市がありますので、5を返してくれるというわけです。
ただ、FIND関数の欠点は、該当のデータがなかった場合、#VALUE!というエラーが発生してしまうことです。
エラーがあると、最終的にFILTER関数をつかってデータを抽出したくても、#VALUE!というエラーが表示されてしまうので、FIND関数の時点でエラーを処理する必要があります。
そのため、IFERROR関数をつかって、エラーを表示しないようにします。
その場合、空白とせず、0にします。
よって、FILTER内の引数は、「IFERROR(FIND("横浜市",D2:D11),0)」となるわけです。
では、FILTER関数を確認します。
最初の引数は、「配列」。
範囲なので、A2:D11と設定します。
スピル機能がありますから、絶対参照にする必要はありません。
2つ目の引数は、「含む」。
条件です。
ここで、先ほど確認した、「IFERROR(FIND(D13,D2:D11)>0)」を設定します。
「>0」としたのは、0よりおおきければ、該当の文字が含まれていることを意味しています。
このためIFERROR関数で空白ではなく、0にしたわけです。
3つ目の引数は、「空の場合」。該当データがなかった場合は、「””」空白にします。
FILTER+IFERROR+FIND関数を組み合わせることで、関数だけで、該当する含むデータを抽出して、手早く別表にすることができます。

















