今回は、オートフィルターの活用方法について、ご説明します。
利用するのは、「オートフィルター」ではなく、そのそばにある「フィルターオプション」(Excelのバージョン等により、表示に差あり)です。
大量データから必要な情報を抜き出す時、Excelではよく、「フィルター」を使います。
データ・タブの下にある、ロート(漏斗)のアイコンですね。
たとえば、500名の住所録が社内にあるとします。
(この記事で使うExcel住所録は、個人情報テストデータジェネレーターで自動生成された、架空の氏名・住所・企業名の一覧です。)
この中から「井上さんと鈴木さん」だけを抽出するならば、そのように検索条件を設定すれば絞り込みができます。
では、この中から「井上さんと鈴木さん、さらに佐藤さんと山田さんと近藤さん」を抽出するにはどうしたらよいですか?
今回は、このような詳細条件の設定方法について、ご説明します。
利用するのは、「オートフィルター」ではなく、そのそばにある「フィルターオプション」(Excelのバージョン等により、表示に差あり)です。
フィルターの検索条件は、自分で詳細に設定可能です
もちろん、抽出条件が2件しか指定できないオートフィルターを使っても、手間をかければ目的ははたせます。
(1)最初に、「井上さんと鈴木さん」で抽出し、結果(可視セル)だけを別セル(別シート)にコピーした後で、「佐藤さんと山田さん」を抽出して…、という手順です。しかし、面倒くさくないですか?
(2)VBAでプログラムを組んでもよいのですが、これも、基本的には、「条件に合う、合わない」を、1件ずつ検証していく繰り返し処理となります。
このような煩雑さがなく、複雑な検索条件でも思い通りにフィルターをかけてくれるのが、3番目の方法、「フィルターオプション」なのです。
たとえば、年代・性別がまちまちな全国住所録から、首都圏(東京・千葉・神奈川・埼玉)在住の、住宅取得層(仮に30歳以上50歳未満とします)だけを、不動産関係会社が抽出する例をみてみましょう。
この場合、自分で決めた複数条件をきちんとExcel上で指定して、フィルターをかければ、ターゲットの絞り込まれた住所録となります。
自分で決めた検索条件は、Excelの同一シート上で指定します
フィルターオプションを活用するためには、3点設定すべきことがあります。
(1)抽出先
(2)リスト範囲
(3)検索条件範囲
です。
(1)抽出先を「選択範囲内(E)」としておくと、オートフィルター機能と同じように、元の表から対象外データを折りたたんで抽出結果が表示されます。しかし、「指定した範囲(O)」をクリックして「抽出範囲(T)」を指定すれば、元の表はそのままで、別の場所に抽出結果を表示することが可能です。何度も検索条件を追加したり、変更したり、ということを考えれば、別表として抽出結果が表示された方が便利ですよね。
ただし、注意すべきポイントは、「抽出先」を別シートに指定できないことです。そこで、抽出元と同じシート内で、元の表の下部、もしくは上部に指定しておくことをおすすめします(元シートの左右に置いてしまうと、もし他の分析で非表示セルを作ってしまったら、抽出結果の全体像がわからなくなってしまいますので)。
(2)リスト範囲は、抽出する前の表全体の範囲のことです。
(3)今回もっとも重要な指定項目が、この「検索条件範囲」です。これについては、抽出する前の表とは別に、小さな別表を作成して、指定することになります。
今回の抽出条件は、「東京・千葉・埼玉・神奈川在住の30歳以上50歳未満」でした。条件設定には比較演算子が使えますので、「条件リスト」として別表を作成すると、このようになります。
このような条件設定が完了したら、実際にフィルターオプションで、該当するデータを抽出してみましょう。
はい、どうぞ!
ブッブ〜!! 不正解。1レコードも結果は抽出されませんでした。なぜでしょう?
検索条件範囲;ANDはヨコに並列、ORはタテに並列
なぜならば、日本中どこを探しても「東京都でもあり、千葉県でもあり、埼玉県でもあり、神奈川県でもある」住所なんてないからです。前項の【条件リスト】は、次のように書き換えるのが正解です。
これで、目的の「首都圏在住30、40代男女」だけを、500件の住所録から一発で抽出完了しました。
該当するレコードは、59件だったようです。
まとめ
フィルターの複雑な条件設定は「フィルターオプション」におまかせ検索条件範囲の別表を正しく作れれば、マクロ・プログラム要らず
「格差社会だから」なんて言うまでもなく、世の中にはさまざまなスクリーニング(選別、足切り等)があります。仕事が複雑化するにつれて、その条件はどんどん複雑になります。オートフィルターでは、このような複雑な選別・抽出に、完全には対応できません。
プログラミングになれている人ならば、すぐに抽出プログラムを書き上げてしまうかもしれませんが、「フィルターオプション」さえ理解しておけば、コードは不要です。演算子やワイルドカード、AND/OR条件の記述方法だけは覚えておいて、自分オリジナルのスクリーニング要件を、Excel上でいろいろ作ってみましょう!