受講生からの質問は、時として難問をいただく場合が多いのですが、たいていの場合は諦めません。未確認のためこちらの回答であっているか? 不安ではあるものの、このような機能を搭載したシートを、自信を持って作成してみました。

この質問解決作業というのが、講師としては謎解きのようで好きです。

マクロをかじった人であれば、簡単に作成が可能です。フィルタ機能を表に設定せず、別のセルで抽出上限を指定して、指定した表のフィルタリングをするというもの。言葉で表現しようとすると、難しいですね(^^; つまりはこういうこと、以下の表があるとします。

filter01

D列の項目名とある空白セルに「いちご」というキーワードを入れると……

filter02

このように「いちご」だけのデータが自動抽出されるようなことをしたい、という場合です。それではどのような設定をしていくか、見ていきましょう。

フィルター機能、詳細設定より行う

「データ」タブの中に、フィルタの詳細設定ボタンがあります。こちらをクリックします。

filter03_2

フィルターオプションの設定には、リスト範囲=表全体、検索条件範囲=見出しと抽出キーワードを記載するセル、を指定しましょう。

filter04

絶対参照表記($マークつき)となりますが、シートが他にある場合「Sheet1!」というようにシート名がセル番地の先頭に入ることがあります。範囲指定が取れていれば、問題ありません。

これで設定は完了、OKボタンを押します。これがフィルタ実行ボタンとなり、結果はこのとおり抽出されます。

filter02

抽出を解除するときは、フィルター機能と同じ、「フィルターのクリア」ボタンを押せば、抽出した表は元通りになります。

filter05

これで終わりなのですが、再度パイナップルや梨などのキーワードを抽出する際、同様の操作を繰り返さなければならないので、実用的ではないですよね。そこでマクロ機能を使ってみることにします。

マクロ操作で解決! 手順は短いので安心して

上記操作を、マクロとして登録します。ですので、マクロ操作を全く知らない! という方は、上記手順で止まっておいてください。以下、マクロの記録がわかる方向けに記載していきます。手順としては短いので、箇条書きにするとこのとおり。

  1. マクロ記録開始ボタンを押す
  2. 「データ」タブ→詳細設定ボタンを押す
  3. 所定の範囲を決め、OKボタンをクリックする
  4. マクロ記録終了ボタンを押す

たったこれだけです。前述の手順をマクロで記録し、マクロ名は、「フィルタ」とでもして保存しておきましょう。

filter11

こちらは余談ですが、抽出条件を入れるセルにアクティブセルを置いて、リスト設定をしておきましょう。こうしておけば、いちいち入力する必要がなくなりますよね。元の値は、項目の記載されたセルを範囲指定してもOKですし、以下のキャプチャのようにカンマで区切りをつけながら記載してもOKです。

filter06

こうすることで、セルにリスト機能が搭載されました。

filter07

続いて、「開発タブ」より、先ほど作成したマクロを紐づけたコントロールボタンを作成しましょう。

filter08

これで、いちいち「詳細設定」から毎回指定しなくても項目名を指定して、抽出実行ボタンを押せば、表の抽出が複数回可能となります。

filter09

余裕がある人は、抽出解除ボタンもマクロを作成しておいて、コントロールフォームボタンを作成しておくと、なお便利になりそうです。また、複数の抽出条件を指定したい場合は、項目名の左側に項目を追加し、検索条件範囲を広げればいいだけです。

filter10

重要なのは、クライテリアとなる抽出する表の見出しと、抽出対象の表の見出しが完全一致であることです。でないと、うまく抽出されないので、気をつけましょう。

エクセルサンプルファイル(zip型式)