データを扱う時のいろいろな操作 2

■ Excel豆知識42





今回はフィルタオプションについて説明してみようと思います。

個人的には一般操作で利用することはあまりありませんが、VBAを使う時にはよく利用していま
す。 ということは、普段に使うにはちょっと設定が面倒・・・ってことかもしれません。(^^ゞ
でも、オートフィルタ以上に抽出条件を複雑に設定することも出来るので、利用価値は結構ある
と思います。

最初はいろいろなエラーが出て、なかなかうまく設定することが出来ませんでした。
なので、はじめに 設定の際に出るエラーについてご紹介しながら、フィルタオプションの操作の
コツのようなものも書いてみたいと思います。

Excel2007からは、「詳細設定」ボタンでフィルタオプションのダイアログボックスを出すように変わりましたので、
その図も併置しました。

42-1 フィルタオプション
下図はExcelのヘルプで「フィルタオプション」について書かれた部分です。
Excelでリストからデータを抽出する処理に「オートフィルタ」と「フィルタオプション」の
2つの方法があります。
(オートフィルタについては「Excel豆知識21」:オートフィルタを参照してください。)

フィルタオプションとは詳細な検索条件を指定してデータを抽出する場合に使用するものです。
Excelのヘルプから「フィルタについて」
[図04201]
検索条件は上記ヘルプの「詳細な検索条件の例」にあるようにいろいろな指定方法があります。
また、抽出先がリスト範囲と同じ場所か違う場所か、同じシートか違うシートかによって操作
方法が違います。

なので、まずは抽出先による操作方法の違いを順にご紹介し、
その後に検索条件のいろいろな指定方法について、ということにしたいと思います。

また、フィルタオプションはオートフィルタと違って、毎回設定をしなくてはならないことが
面倒です。なので、設定をマクロのボタンに登録するやり方を最後にやってみたいと思います。

<はじめに>
フィルタオプションの設定をする時に、「リスト範囲」「検索条件範囲」「抽出先」の3つが それぞれどのシートにあるかで操作方法に違いが出ますので、 下図の「データ」「抽出条件」「抽出」シートのどこにあるかを明示しながら説明を進めてい きたいと思います。
豆知識42のシート構成
[図04202]
「フィルタオプションの設定」ダイアログボックスを出す操作は共通です。

(1)Excel2007以降では、「データ」-「詳細設定」をクリックすると「フィルターオプショ
ンの設定」ダイアログボックスが出てきます。
「データ」-「詳細設定」-「フィルタオプションの設定」
[図04203_2010]
Excel2003までは、「データ」-「フィルタ」-「フィルタオプションの設定」をクリックすると
ダイアログボックスが出てきます。
「データ」-「フィルタ」-「フィルタオプションの設定」
[図04203]


どこのセルを選択した状態でこの操作を行うかで、エラーが出たりすることがありますので、
次にそのエラーについて説明します。

この段階で出るエラーメッセージには次のようなものがあります。

これは下図のように1行だけのデータのあるセルまたはそれに隣接するセルを選択した状態で
フィルタオプションの設定をしようとすると出ます。
フィルタオプション設定時のエラーメッセージ
[図04204]


これは下図のようにExcelがリストとして認識できないデータのあるセルまたはそれに隣接
するセルを選択した状態でフィルタオプションの設定をしようとすると出ます。
フィルタオプション設定時のエラーメッセージ
[図04205]


下図のようにリストの中の項目を含まないデータ部分の複数のセルを選択した状態でフィル
タオプションを設定しようとしても出ます。
フィルタオプション設定時のエラーメッセージ
[図04206]
ここでヘルプをクリックすると下図のような説明が出ます。
ここにあるような設定で入力してあればExcelがリストとして認識できるということで、この
ようなデータのあるセルをひとつ選択してフィルタオプションの設定をすればエラーにはなり
ません。
Excelのヘルプ:ワークシートでのデータ入力のガイドライン
[図04207]


なお、うっかり列見出しに同じ項目名を使うと正しい抽出が出来なくなりますので、もし同
じ場合は何か文字を追加してそれぞれの列に固有の列見出しがつくようにしてください。
ほかのシステムからCSVで取り出したデータで同じ項目名が複数使われているものがあって、
なぜフィルタオプションがうまく動かないのか気付くまでだいぶ時間がかかったことがあり
ます。(^^ゞ
列見出しは固有のものを使うこと
[図04207.1]
エラーについてはここまでです。

下図の1のようにリストやその他のデータに接しない空白セルを選択した状態、または、下図
の2’のようにリストと認識されるデータのある範囲の中の1つのセルまたは範囲全体を
選択した状態でフィルタオプションの設定をするとダイアログボックスが表示されます。
そして、2’の場合は自動的に選択セルが含まれるリスト範囲全体が「リスト範囲」とし
て認識されます。
リストやその他のデータに接しない空白セルを選択した状態で設定
[図04208]
リストと認識されるデータのある範囲の中の1つのセルまたは範囲全体を選択した状態で設定
[図04209]
リストと認識されるデータのある範囲の中の1つのセルまたは範囲全体を選択した状態で設定
[図04210]



(2)「フィルタオプションの設定」ダイアログボックス

最初に表示されるダイアログボックスは下図の状態です。「抽出先」は「選択範囲内」に
チェックが入っており、「抽出範囲」はグレーアウトして選択できない状態になっています。
「フィルタオプションの設定」ダイアログボックス
[図04211]


「指定した範囲」にチェックを入れると「抽出範囲」のボックスに入力できるようになり
ますが、フィルタオプションの設定ダイアログボックスを出す操作を始めたシート以外の
シート範囲を選択すると下のAのようなエラーメッセージが出ます。
「フィルタオプションの設定」ダイアログボックスとエラーメッセージ
[図04212]


ページTOPへ