関連データを瞬時に抽出! #Excel #LifeHacks #Office
表が大きくなるほど「フィルターで毎回探すのが面倒…」ってなりますよね。私はお問い合わせ一覧(会員No・日付・お問い合わせ内容など)を扱うことが多いので、検索欄にキーワードを入れるだけで該当行だけ“瞬時に抽出”できる形にしています。 ■やりたいこと(部分一致で検索→抽出) 例:B1セルに検索したい文字(例:M0569、ログイン、領収書 など)を入力し、一覧表(例:お問い合わせ一覧!A2:C1000)から「その文字を含む行だけ」を別シートに抽出します。 ■基本の考え方:SEARCH→ISNUMBER→FILTER 1) SEARCH関数で「含まれているか」を調べる SEARCH(検索文字列, 対象) は、見つかったら“文字の開始位置(数値)”を返します。見つからないと #VALUE! になります。 例:=SEARCH($B$1, お問い合わせ一覧!B2) ※SEARCHは大文字/小文字を区別しないので、英数字コードの検索にも地味に便利です。 2) ISNUMBERでTRUE/FALSEに変換 SEARCHの結果が数値ならTRUE、エラーならFALSE。 例:=ISNUMBER(SEARCH($B$1, お問い合わせ一覧!B2)) 3) FILTERでTRUEの行だけ抽出 抽出したい表全体を配列にして、含む条件に②を入れます。 例:=FILTER(お問い合わせ一覧!A2:C1000, ISNUMBER(SEARCH($B$1, お問い合わせ一覧!B2:B1000)), "") これで、B列(お問い合わせ内容など)にB1の文字が含まれる行だけが表示されます。最後の "" は「該当なしのとき空欄表示」にするためで、地味に見た目が整います。 ■よくあるつまずきポイント(私がハマった) ・範囲の行数を合わせる: FILTERの第2引数(条件範囲)は、抽出範囲と同じ行数にします(A2:C1000 なら B2:B1000)。 ・数値/文字列の扱い: 会員Noが数字に見えても、先頭ゼロや英数字混在があると比較がズレます。必要なら「表示形式を文字列」に揃えると安定しました。 ・どの列を検索するか決める: 会員Noで探すなら会員No列、内容で探すならお問い合わせ内容列、という感じでSEARCHの“対象範囲”を変えるだけで使い回せます。 ■使い方のコツ(実務向け) 検索欄B1は、最初に「m9」みたいに短く入れて候補を広く出し、そこから「M9638」など具体化すると早いです。フィルターを解除したり並べ替えを戻したりする手間が減って、問い合わせ対応がかなり楽になりました。











































