ピボット・テーブルのフィルタ処理
ここでは、Business Intelligence アナライザを使用してピボット・テーブルにフィルタを追加する方法について説明します。これによって、ピボット・テーブルでアクセスするレコードのセットが制限されます。
フィルタをピボット・テーブルに適用することは、ダッシュボードでピボット・テーブルのウィジェットにフィルタ・コントロールを追加することとは異なります ("ダッシュボードの作成" を参照)。フィルタ・コントロールにより、別のユーザが後でデータをフィルタ処理できます。独自のフィルタがあるピボット・テーブルを表示するウィジェットに、フィルタ・コントロールを追加できます。
"BI サンプルのアクセス方法" も参照してください。
フィルタについて
フィルタによって、システムで使用するレコードのセットが制限されます。
以下に示すように [フィルタ] ボックスを使用して、ピボット・テーブルにフィルタを追加します。
フィルタは単純なフィルタと高度なフィルタのどちらでも可能であり、フィルタを好きなように組み合わせてピボット・テーブルに追加できます。
単純なフィルタを作成する場合は、ピボット・テーブルの真上のフィルタ・バーにフィルタ項目をドラッグ・アンド・ドロップすることも可能です。
後述の各セクションでは、これらのフィルタの作成方法について詳細に説明します。
フィルタ項目のドラッグ・アンド・ドロップ
フィルタとして使用する個々のメンバをドラッグ・アンド・ドロップできます。そのためには、[フィルタ] ボックスの [フィルタをここにドロップする] またはフィルタ・バーにメンバをドラッグ・アンド・ドロップします。
ピボット・テーブルに対してフィルタ処理が実行され、そのメンバのデータのみが表示されます。[フィルタ] ボックスには関連付けられているレベルの名前が表示され、フィルタ・バーにはレベルの名前およびメンバが表示されます。以下はその例です。
高度なフィルタの追加
高度なフィルタのフィルタ定義を確認するには、そのフィルタの横にある詳細オプションのボタン をクリックします。システムにより以下のような情報を示すダイアログ・ボックスが表示されます。
これが表しているのはフィルタのロジックであり、リテラル構文ではありません。このフィルタでは、以下のいずれかの製品のみが選択されます。
-
バンガロールで販売されるキャンディ製品
-
ヒューストンで販売されるスナック製品
高度なフィルタ・エディタでは、フィルタ式の部分の追加、変更、および削除が簡単にできます。変更されるたびに、変更後の式が表示されます。このドキュメントでは、このツールを詳細には説明せず、簡潔に説明します。
-
[フィルタ] ボックスで詳細オプションのボタン をクリックします。以下のようなダイアログ・ボックスが表示されます。
-
[条件を追加] をクリックします。
このダイアログ・ボックスは以下のようになります。
まず、高度なフィルタ・エディタは、サブジェクト領域で定義された、(アルファベット順で) 最初のレベルを使用します。
-
異なるレベルを使用する場合は、以下の操作を行います。
-
[YearSold] をクリックします。これによって、式のこの部分を編集できます。
-
必要に応じて、検索ボックスに文字列を入力して、[検索] をクリックします。これは、キューブに多くのレベルが存在する場合に役立ちます。
-
左のドロップダウン・リストからレベルを選択します。その後すぐに、式が以下のように更新されます。以下はその例です。
ドロップダウン・リストの末尾にメジャーが含まれている場合があります。その場合、このページで後述する "メジャー値によるベース・レコードのフィルタ処理" を参照してください。
-
-
演算子を IS から IS NOT に変更する場合は、以下の操作を行います。
-
[IS] をクリックします。これによって、式のこの部分を編集できます。
-
左の領域にある [IS NOT] をクリックします。その後すぐに、式が以下のように更新されます。
-
-
レベルのメンバを指定する手順は以下のとおりです。
-
[<値の選択>] をクリックします。これによって、式のこの部分を編集できます。左側の領域は、以下のようになります。
-
左側の領域で、[値の選択] の下にある検索ボタン をクリックして、ダイアログを表示します。
-
そのダイアログにメンバとオプションのセットが表示されます。必要に応じて検索ボックスにテキストを入力し、[Enter] をクリックします。これによって、ダイアログにリストされるメンバのセットが制限されます。
値のリストには、すべての検索可能メジャー (次のセクションを参照) およびすべてのピボット変数 ("ピボット変数の定義と使用" を参照) も含まれます。
-
メンバとオプションのチェック・ボックスにチェックを付けて選択します。
-
ダイアログの右上隅のチェック・マーク・ボタンをクリックします。その後すぐに、式が以下のように更新されます。
以下はその例です。
-
あるいは、[MDX キー] オプションを選択して、MDX キーを入力することもできます。
この高度なフィルタは、単純なフィルタと同等です。通常は、別の条件または他の条件を含む分岐を追加します。
-
-
別の条件を追加する手順は以下のとおりです。
-
[AND] をクリックします。これによって、この項目を編集できます。
-
必要に応じて、左の領域にある [OR] をクリックします。その後すぐに、式が以下のように更新されます。
-
[条件の追加] をクリックします。
以下のようになります。
-
最初の条件を編集したときと同じやり方でこの条件を編集します。
-
-
[OK] をクリックして、ダイアログ・ボックスを閉じます。
あるいは、別の条件または他の条件を含む分岐を追加します。
変更内容は元に戻すことができます。そのためには、[元に戻す] をクリックします。
メジャー値によるベース・レコードのフィルタ処理
サブジェクト領域に検索可能メジャーがある場合は、ピボット・テーブルで使用されるレコードをそのメジャーの値でフィルタ処理できます。そのためには、以下の操作を実行します。
-
[フィルタ] ボックスで詳細オプションのボタン をクリックします。
-
[条件を追加] をクリックします。
このダイアログ・ボックスは以下のようになります。
まず、高度なフィルタ・エディタは、サブジェクト領域で定義された、(アルファベット順で) 最初のレベルを使用します。
-
[Age Group] をクリックします。これによって、式のこの部分を編集できます。
-
左側のドロップダウン・リストをクリックして、リストの末尾までスクロールします。このリストには、メジャーが含まれている場合があります。以下はその例です。
値のリストにはすべてのピボット変数 ("ピボット変数の定義と使用" を参照) も含まれることに注意してください。
-
使用するメジャーをクリックします。
式は以下のように更新されます。
-
演算子をクリックします。既定では等号 (=) です。
エディタには、以下のような一連の演算子が表示されます。
または、検索可能メジャーに文字列値が含まれる場合、エディタには次のような一連の演算子が表示されます: = <> LIKE。
-
比較値をクリックします。この既定値は 0 です。
エディタには、新しい値を入力できるボックスが表示されます。
-
値を入力し、[適用] をクリックします。
文字列値を入力する場合は、一重引用符で囲みます。例 : 'abc'
-
[OK] をクリックして、ダイアログ・ボックスを閉じます。
あるいは、別の条件または他の条件を含む分岐を追加します。
例えば、以下のフィルタを考えてみます。
このフィルタでは、テスト・スコアが 65 以上の患者がすべて選択されます。
名前付きフィルタの定義
名前付きフィルタは、サブジェクト領域と共に保存されます。これは複数のピボット・テーブルおよびダッシュボードのフィルタ・コントロールで使用できます。
名前付きフィルタを定義する手順は以下のとおりです。
-
名前付きフィルタが現在選択されていないことを確認します。
-
[モデル・コンテンツ] ペインで名前付きフィルタのボタン をクリックします。
-
[フィルタ名] に、わかりやすいフィルタ名を入力します。
-
[説明] に、必要に応じて説明を入力します。
ダイアログ・ボックスの残りの部分は、高度なフィルタ・エディタと同じです。
-
このダイアログ・ボックスの残りの詳細は、このページで前述の "高度なフィルタの追加" を参照してください。
操作を完了すると、[モデル・コンテンツ] ペインの [名前付きフィルタ] セクション内にそのフィルタが表示されます。
名前付きフィルタは比較的複雑なので、ダッシュボードで使用する適切な名前付きフィルタを定義すると役立ちます。そうすると、ダッシュボードのユーザはより簡単にデータをフィルタできます。
名前付きフィルタの再定義
名前付きフィルタを再定義する手順は以下のとおりです。
-
[モデル・コンテンツ] ペインで名前付きフィルタを選択します。
-
名前付きフィルタのボタン をクリックします。
-
必要に応じて変更します。
詳細は、このページで前述の "高度なフィルタの追加" を参照してください。
名前付きフィルタの削除
名前付きフィルタを削除する手順は以下のとおりです。
-
[モデル・コンテンツ] ペインで名前付きフィルタを選択します。
-
[X] ボタンをクリックします。
-
[OK] をクリックし、この削除を確定します。
名前付きフィルタの使用
名前付きフィルタを使用するには、[モデル・コンテンツ] ペインから [フィルタ] ボックスにフィルタをドラッグ・アンド・ドロップします。
または、名前付きフィルタをダブルクリックします。これによって、そのフィルタが [フィルタ] ボックスに追加されます。
フィルタの無効化または削除
フィルタを無効にするには、[フィルタ] ボックスでフィルタの名前の左側にあるチェック・ボックスのチェックを外します。
フィルタを削除するには、フィルタの名前の右側にある [X] をクリックします。
Business Intelligence でフィルタを組み合わせる方法
ここでは、システムでフィルタを組み合わせる方法について説明します。
単純なフィルタを複数適用すると、以下のように組み合わされます (ただし、このリストの後の重要な注意点を参照してください)。
-
システムは論理 AND を使用して、ピボット・テーブルの上にあるバーで示される項目すべてを結合します。
フィルタ 意味 好きな色が緑の患者と好きな色が青の患者すべて (0 人の患者) 大豆と小麦の両方にアレルギーがあるすべての患者 好きな色が緑で、アリによる咬傷に対するアレルギーがあるすべての患者 -
このバーでレベルが表示されている場合に、ドロップダウンのそのレベルのメンバを 1 つ以上選択すると、これらのメンバは論理 OR で結合されます。
フィルタ 意味 好きな色が緑か青のすべての患者 大豆、小麦、またはその両方にアレルギーがあるすべての患者 好きな色が緑か青で、かつアリによる咬傷に対するアレルギーがあるすべての患者
高度なフィルタも適用すると、論理 AND によって他のフィルタと組み合わされます。
組み合わされるフィルタの形式に応じて、システムは軸のたたみ込みを実行する場合があります。この語句は、複数のフィルタを組み合わせるプロセスを示します (フィルタはクエリ軸と見なされます)。軸のたたみ込みを実行すると、どのスライサ軸にも NULL の結果がないソース・レコードは複数回カウントされます。これが発生するタイミングの詳細は、"Business Intelligence クエリ・エンジンの仕組み" にある "軸のたたみ込み" を参照してください。
メンバのキーの検索
ここでは、メンバのキー識別子を検索する方法と理由について説明します。
各メンバには、以下の 2 つの識別子があります。
-
名前 (アナライザおよびピボット・テーブル内で表示されます)。例えば、Patients サンプルでは、Doctor レベルのメンバは Vivaldi, Lola という名前を持つ可能性があります。
名前は、一意である必要はありません。
-
キー (表示されることはありません)。多くの場合、これは名前と同じですが、そうでない場合もあります。例えば、Patients サンプルでは、Vivaldi, Lola という名前の医師が 12 というキーを持つこともあり得ます。
キーは、適切に定義されたキューブ内で一意であることが推奨されます (システムは一意であることを強制しませんが、キューブを作成する開発者はその一意性を保証するための対策が可能であり、その対策を講じる必要があります)。
ドラッグ・アンド・ドロップ操作でフィルタを作成するときに、システムは自動的にメンバ名ではなくメンバ・キーを使用します。
フィルタ値を手動で指定する場合は、キーを使用してください。状況としては、以下のようなシナリオが考えられます。
-
ダッシュボードのフィルタ・コントロールの既定値を指定する場合 ("ダッシュボードの作成" を参照)。
-
ダッシュボードの URL を使用してフィルタ・コントロールの初期値を指定する場合 ("InterSystems Business Intelligence の実装" を参照)。
また、ピボット変数のメンバを参照する際は、最善の手段としてキーを使用することをお勧めします。
指定されたメンバのキーを検索するには、以下の手順を実行します。
-
アナライザで、メンバを [フィルタ] ボックスにドラッグ・アンド・ドロップします。
-
ツールバーのクエリ表示ボタン をクリックします。
現在の MDX クエリが以下のように表示されます。
%FILTER 部分でフィルタを指定します。[DocD].[H1].[Doctor].&[32] の部分は、このメンバの完全なメンバ識別子です。このメンバのキーは 32 です。
レベルに同名の複数のメンバが存在するときに、使用するメンバがわからない場合は、以下の方法を試してみてください。
-
各メンバを [行] にドラッグ・アンド・ドロップします。
-
このレベルにプロパティが含まれている場合、そのプロパティを [列] にドラッグ・アンド・ドロップします。プロパティ値はメンバごとに異なるのが一般的です。また、ここでの情報を使用することで、調べるメンバを決定できます。
または、レベルを [列] にドラッグ・アンド・ドロップします。何らかのコンテキストを提供できるレベルを選択してください。
他の場合は、必要なメンバを正しく識別するために、詳細リストの表示が必要になることもあります。