Excelで簡単にキーワード検索がしたい<データの抽出>

概要

 エクセルの表でキーワードの入った行列のみを表示させたい時、データタブにあるフィルターという機能を使って表示させることができる。しかし、表をいじられるとまずい場合がある。(しかも修正を忘れた状態で保存されたり…。)なので一部の人だけが管理し、かつ他の方が安心して検索できるように一例を挙げてみたい。

 特徴

今回使用したのは"Advanced Filter"というフィルタオプションである。

  • 元データのある表を書き換えないため、データが誤記入されるのを防ぐ
  • 通常のフィルター抽出を行うと、元のデータに戻すのにチェックを外さなければならない。一方で別表で検索シートを作成すると、ひと手間がなくなる。
  • AND検索、OR検索にくせがある。

Advanced Filterを用いて検索を行う

 まず"Advanced Filter"が何なのかを説明する。これはフィルターのオプション設定をVBAで操作するというものである。面白いのは、通常転記を行うとあるワークシートの選択範囲に上書きされてしまうので、例えば残っていたデータに新しいデータがかぶってしまうことがあり混乱することがある。しかし、このフィルターは上書きはしないのでそのような心配は無用である。

 

検索に必要なもの

  • ラベル Ex.オレンジ(果物)、にんじん(野菜) 等の果物、野菜にあたる名称
  • キーワード(検索用)*1
  • 別シートに表を作成する
  • マクロを実行させるボタンの作成 ※開発タブでフォームコントロールを挿入、もしくは図形にマクロを登録させる

注意点

・キーワード検索の単語の配置の仕方

 この検索ではOR検索かAND検索を指定することができる。要するにいろんなオレンジの種類があった時、AND検索であれば「300円以上で小サイズのオレンジ」をキーワードに設定してやればひっかかる。一方でOR検索であれば「300円以上のオレンジもしくは小サイズのオレンジ」がひっかかる。ここでポイントなのはキーワードの配置である。AND検索の場合は一行に配置されたラベルに対して、検索ワードは一列に並べなければならないが、OR検索の場合は一行ずれて配置しなければならない。つまり、AND検索で2行2列必要なところOR検索では3行2列必要になる。

f:id:JedenTag:20191117003105p:plain

図1 ワード検索の配置の仕方(例)

 

f:id:JedenTag:20191117005243p:plain

図1 検索フォーム例

f:id:JedenTag:20191117011108p:plain

図2 「草タイプ」検索後の状態

最後に

 上記の図1、2を基本動作としてもっと複雑な抽出を行うことができる。今回は同じシート内で行っているが、別シートでも同じようにできる。なので誤ってデータを消してしまった…ということが防げ、とても便利な機能である。



 

*1:※データ規則の入力でリストを作成すると良い