[Office Master] | ||||||||||||
Excelで柔軟なデータ・フィルタリングを行う
|
||||||||||||
|
解説 |
Excelは便利なアプリケーションで、1つのワークシートには縦方向で最大6万5536行までのデータを格納することができる。ただし、実際にディスプレイに表示できる情報量には限度があり、すべての情報(セル)を参照するには大量のスクロールを余儀なくされることも少なくないはずだ。
このような大量データの操作に対する解として、Excelは「フィルタ」機能を提供している。フィルタとは、条件を指定することによって、該当する情報のみを絞り込んで表示させる仕組みのことだ。実際には、「オートフィルタ」と「フィルタオプションの設定」という2種類の機能名称で提供している。
オートフィルタ機能を利用すると、表形式でまとまった一連のデータの見出し部分がプルダウン・リストボックスに変化し、選択肢から絞り込みの対象としたいデータを選ぶことによって絞り込み表示を実現できる。
- サンプル・ファイルのダウンロード
(注:今回のサンプル・ファイルfy2003_1q_log.xlsをダウンロードするには、上のリンクを右クリックして、fy2003_1q_log.xlsというファイル名で保存してください)
オートフィルタ機能は単純な絞り込みには便利だが、「項目をまたがったOR条件」などの複雑な絞り込み条件には対応していない。そのような場合は、フィルタオプションの設定機能を利用するとよい。
本稿では、オートフィルタ機能よりも柔軟なフィルタリングを実現できるフィルタオプションの設定について解説する。
操作方法 |
手順1―抽出条件を指定するための表を作成する
まず、抽出条件を指定する部分を表の形でワークシート上に作成する。
抽出条件の表は、見出し部分に「条件を設定する項目見出し名」を、そしてその下には条件を記述する。条件は複数行に記述することが可能で、同一行に記述した内容はAND条件(すべての条件が一致)、別の行に記述した内容は行単位でOR条件(いずれかの条件が一致)として解釈される。条件には、数値項目見出しの下の場合は「>」「>=」「<」「<=」「<>」といった比較演算子を用いて比較対象となる数値を指定することができる。文字項目見出しの下の場合は、以下の表に示すワイルドカード文字を組み合わせて指定することができる。
入力する文字列 | 説明 |
?(疑問符) | 任意の1文字を検索する場合に利用。例:「フェ?ズ」と入力すると、「フェーズ」や「フェイズ」に一致する |
*(アスタリスク) | 任意の文字数を検索する場合に利用。例:「Office*」と入力すると、「Office 2003」や「Office XP」に一致する |
~(チルダ)(?、*、~の前に入力) | 疑問符、アスタリスク、チルダそのものを検索したい場合に、文字をエスケープするために利用。例:「SQL~*Net」と入力すると、「SQL*Net」に一致する |
文字項目見出し条件で利用できるワイルドカード文字 | |
ワイルドカード文字を使うと、部分一致する文字列を検索することができる。 |
例えば、以下のような表を作成したとする。
抽出条件の表の記述例 |
タイトルや対象年月、アクセス数を指定して条件を作成する。ここでは2つの条件を指定している。 |
この場合、「サーバサイド」で始まるページ・タイトルで2003年6月に1000件以上のアクセスがあったログと、ページ・タイトルを問わず、2003年5月に800件以上のアクセスがあったログを表示する指定を意味する。
抽出条件表を作成する場所については、抽出対象のデータのあるワークシート上でもよいし、別のワークシート上でも構わない。ただし、同じワークシートに作成する場合は、抽出対象データ領域より上もしくは下の余白セルに設定する(左右の余白に設定すると、フィルタリングを実行するとともに、抽出条件の表も一緒に非表示になってしまう可能性がある)。
抽出条件の表を別ワークシートに設定した場合、フィルタリングを実行するたびに、後述する[フィルタオプションの設定]ダイアログ上の範囲設定を行う必要がある。同一ワークシートに設定すれば、[フィルタオプションの設定]ダイアログ上の設定は前回の内容をそのまま利用できる。
逆に、同一ワークシート内に抽出条件の表を記述すると、ディスプレイ上、肝心のデータ部分を表示できるスペースがその分狭くなる。
どちらを選択すべきかはデータ量やフィルタ設定を実行する頻度との兼ね合いで決まるため、一概にはいえない。本稿では、対象となるデータの列数が少ないことに着目し、抽出対象データと同一ワークシートの、データより下のセル位置に抽出条件表を作成することにする。対象となるデータの列数が少なくディスプレイの右側に空きスペースがあるため、同一ワークシートを別ウィンドウで開き、左右に並べて表示させることにする(Excelシートやセルをディスプレイ上に効率的に表示する手法は、Windows TIPS「Excelのシートやセルを利用しやすいように表示する」参照)。
手順2―抽出対象データ領域そのものをフィルタリング表示する
まず、抽出した結果をどこに表示させるかを決める。抽出対象データ領域そのものをフィルタリング表示させたい場合は、データ領域のいずれかのセルを選択する。抽出対象データのあるワークシートはそのままにして、別のワークシート上に抽出結果を表示させたい場合は、抽出先ワークシートを選択する。その後、[データ]メニューから[フィルタ]−[フィルタ オプションの設定]を選択して[フィルタ オプションの設定]ダイアログを表示させる。
|
「抽出先」には、抽出対象データ領域そのものをフィルタリング表示させたい場合はを、抽出対象データ領域以外の場所(同一ワークシートの余白または別のワークシート)に抽出結果を表示させたい場合はを選択する。の「リスト範囲」には抽出対象データ領域のセル範囲を、の「検索条件範囲」には抽出条件の表のセル範囲をそれぞれ指定する。
の「抽出範囲」のオプションは、別のワークシートに抽出結果を表示する場合にのみ有効である。抽出対象データ領域のセルを選択したうえで[フィルタ オプションの設定]ダイアログを開いた場合は、このオプションは入力できない。別のワークシートに抽出結果を表示する場合に、このオプションをどのように設定すればよいかについては手順3にて説明する。
[フィルタ オプションの設定]ダイアログ上の設定が完了したら、[OK]ボタンをクリックすることでフィルタリングの処理が実行される。繰り返しになるが、抽出条件の表を別ワークシートに設定すると、フィルタリングを実行するたびに、毎回[フィルタオプションの設定]ダイアログ上のセル範囲設定を行う必要がある。同一ワークシートに抽出条件表を設定した場合は、[フィルタオプションの設定]ダイアログ上の設定は前回の設定内容が初期値として残るため、前回の内容をそのまま利用することができる。
[フィルタ オプションの設定]によりフィルタ実行した例 | |||
「サイトアクセスログ(2003年度1Q)」というデータ表に対し、「サーバサイド」で始まるページ・タイトルで、2003年6月に1000件以上のアクセスがあったログと、ページ・タイトルを問わず、2003年5月に800件以上のアクセスがあったログのみを表示するようフィルタ実行したところ。 | |||
|
フィルタリング状態を解除してすべてのデータを表示させたい場合は、[データ]メニューから[フィルタ]−[すべて表示]を選択する。
手順3―抽出対象データ領域以外の場所にフィルタリング結果を表示させる方法
抽出対象データ領域以外の場所に抽出結果を表示させる場合は、抽出対象データのうち、表示させたい見出し項目のみを出力することが可能である(もちろん、すべての見出し項目をそのまま出力することも可能)。
すべての見出し項目をそのまま出力したい場合は、[フィルタ オプションの設定]ダイアログの「抽出範囲」欄に、出力開始位置としたいセルを指定する。新しいワークシートのセル「B2」を基点としてフィルタリングした結果を出力したい場合の例を以下に紹介する。
|
上記設定の場合の検索結果は次のとおり。
別ワークシート上への出力 | ||||||
「抽出結果@」というワークシート上へ抽出した場合の例。先ほどの例と同じ結果が、別のワークシート上へ出力されている。 | ||||||
|
なお、別ワークシートへフィルタリング結果を出力したい場合は、出力先のワークシートをアクティブにした(開いた)状態で[データ]メニューから[フィルタ]−[フィルタ オプションの設定]を選択して[フィルタ オプションの設定]ダイアログを開く必要がある。そうしないと、[抽出データを作業中のシート以外へコピーすることはできません。]というエラーが表示されることがあるので注意が必要だ。抽出元シートをアクティブにするのではなく、抽出先のシートをアクティブにしてからメニューを実行していただきたい。
必要な見出し項目のみを出力する方法
次に、必要な見出し項目のみを出力したい場合について紹介する。この場合は、新しいワークシート上に出力したい見出し項目名をあらかじめ記述しておく。ここで記述する見出し項目名は、抽出対象データの見出し項目名と完全に一致させる必要がある。さもないとフィルタリング処理がエラーになるので要注意だ(抽出対象データの見出し項目名をそのままコピー&ペーストする方法が、一番問題が起きにくいだろう)。本稿では、サンプル・データのうち「ページタイトル」と「対象年月」という見出し部分のみを出力した例を次に紹介する。
抽出先シートの例 | |||
抽出する先のワークシートには、出力したい見出し項目名をあらかじめ用意しておく。 | |||
|
[フィルタ オプションの設定]では、抽出範囲として、上の見出しの部分を選択しておく。
|
見出しを指定して抽出した例 | |||
指定された見出しの項目のみが抽出される。先ほどの例と違って、アクセス数は表示されていない。 | |||
|
関連記事 | ||
Windows TIPS:Excelのシートやセルを利用しやすいように表示する(Windows Server Insider) | ||
この記事と関連性の高い別の記事
- WindowsでExcelと外部データベースとを連携させる(TIPS)
- Wiresharkで特定の相手との通信だけを表示させる(TIPS)
- Excelワークシートで重複データを検出する(TIPS)
- Wiresharkで特定のプロトコルだけを表示させる(TIPS)
- ソルバー機能による人員配分シミュレーション(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|