Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

ピボット・テーブルのフィルタ処理

この章では、アナライザを使用してピボット・テーブルにフィルタを追加する方法について説明します。これによって、ピボット・テーブルでアクセスするレコードのセットが制限されます。以下のトピックについて説明します。

Note:

フィルタをピボット・テーブルに適用することは、ダッシュボードでピボット・テーブルのウィジェットにフィルタ・コントロールを追加することとは異なります ("DeepSee ダッシュボードの作成" を参照)。フィルタ・コントロールにより、別のユーザが後でデータをフィルタ処理できます。独自のフィルタがあるピボット・テーブルを表示するウィジェットに、フィルタ・コントロールを追加できます。

フィルタについて

フィルタによって、システムで使用するレコードのセットが制限されます。

以下に示すように [フィルタ] ボックスを使用して、ピボット・テーブルにフィルタを追加します。

generated description: filters box

フィルタは単純なフィルタ高度なフィルタのどちらでも可能であり、フィルタを好きなように組み合わせてピボット・テーブルに追加できます。

単純なフィルタを作成する場合は、ピボット・テーブルの真上のフィルタ・バーにフィルタ項目をドラッグ・アンド・ドロップすることも可能です。

generated description: filter alt drop

後述の各セクションでは、これらのフィルタの作成方法について詳細に説明します。

フィルタ項目のドラッグ・アンド・ドロップ

フィルタとして使用する個々のメンバをドラッグ・アンド・ドロップできます。そのためには、[フィルタ] ボックスの [フィルタをここにドロップする] またはフィルタ・バーにメンバをドラッグ・アンド・ドロップします。

ピボット・テーブルに対してフィルタ処理が実行され、そのメンバのデータのみが表示されます。[フィルタ] ボックスには関連付けられているレベルの名前が表示され、フィルタ・バーにはレベルの名前およびメンバが表示されます。以下はその例です。

generated description: filter info

ドロップダウン・メニューの作成と使用

[フィルタ] ボックスまたはフィルタ・バーにレベルをドラッグ・アンド・ドロップすると、システムで表示されるフィルタ用ドロップダウン・メニューを使用できます。このセクションでは、詳細について説明します。(式ピボット変数も同じように使用できます。このドキュメント内で後述の “式ピボット変数の定義と使用” を参照してください。)

例えば、Year レベルをドラッグ・アンド・ドロップすると、これがアナライザで表示される場合があります (他の操作内容によって異なります)。

generated description: pivot with filter dropdown

このコントロールを使用して、Favorite Color レベルのメンバを選択できます。検索ボタン generated description: button search をクリックすると、以下のように表示されます。

generated description: filter year init state

ここでは次の操作を実行できます。

  • [すべて] を選択して、このレベルのメンバをすべて表示します (つまり、このレベルではフィルタ処理しません)。

  • メンバを 1 つ以上選択します。これらのメンバのデータのみを使用するように、ピボット・テーブルがフィルタ処理されます。

    複数のメンバを選択するには、Ctrl を押す必要があります。

  • 1 つ以上のメンバを選択し、[メンバを除外] を選択します。選択したメンバを除くすべてのメンバのデータを使用するように、ピボット・テーブルがフィルタ処理されます。

  • [範囲] をクリックして、含めるメンバの範囲を指定します。[範囲] をクリックすると、このコントロールは以下のように変化します。

    generated description: filter year range

    各ドロップダウン・リストで、メンバを選択します。タイム・レベルの場合、メンバのリストに [NOW] が含まれますが、これは常に現在の日付を示します。

その他のオプションについては、"DeepSee エンド・ユーザ・ガイド" の “ダッシュボードの使用法” の章の “データのフィルタ処理” を参照してください。

操作を完了したら、チェック・マーク・ボタンをクリックして、選択内容を受け入れます。または、[X] ボタンをクリックして、変更内容を破棄します。

Note:

フィルタ・コントロールはピボット・ビルダ領域の一部ですが、ピボット・プレビュー領域の一部ではありません。これは、以下の 2 つを意味しています。

  • ピボット・テーブルを保存すると、アナライザによりフィルタ・コントロールの選択内容が保存されます。ピボット・テーブルを次回開くと、アナライザにより保存時のフィルタ・コントロールが再表示されます。

  • ダッシュボードで表示されるピボット・テーブルは、保存時にフィルタ処理されますが、フィルタ・コントロールは含みません (ダッシュボードのユーザにフィルタを提供するには、別のメカニズムを使用します)。

高度なフィルタの追加

高度なフィルタのフィルタ定義を確認するには、そのフィルタの横にある詳細オプションのボタン generated description: button advancedfilter reconfigure をクリックします。DeepSee では以下のような情報を示すダイアログ・ボックスが表示されます。

generated description: advancedfilter example

これが表しているのはフィルタのロジックであり、リテラル構文ではありません。このフィルタでは、以下のいずれかの製品のみが選択されます。

  • バンガロールで販売されるキャンディ製品

  • ヒューストンで販売されるスナック製品

高度なフィルタ・エディタでは、フィルタ式の部分の追加、変更、および削除が簡単にできます。変更されるたびに、変更後の式が表示されます。このドキュメントでは、このツールを詳細には説明せず、簡潔に説明します。

  1. [フィルタ] ボックスで詳細オプションのボタン generated description: button advanced options をクリックします。以下のようなダイアログ・ボックスが表示されます。

    generated description: advancedfilter editor

  2. [条件の追加] をクリックします。

    このダイアログ・ボックスは以下のようになります。

    generated description: advancedfilter editor step2

    まず、高度なフィルタ・エディタは、サブジェクト領域で定義された、(アルファベット順で) 最初のレベルを使用します。

  3. 異なるレベルを使用する場合は、以下の操作を行います。

    1. [YearSold] をクリックします。これによって、式のこの部分を編集できます。

    2. 必要に応じて、検索ボックスに文字列を入力して、[検索] をクリックします。これは、キューブに多くのレベルが存在する場合に役立ちます。

    3. 左のドロップダウン・リストからレベルを選択します。その後すぐに、式が以下のように更新されます。以下はその例です。

      generated description: advancedfilter editor step4

      ドロップダウン・リストの末尾にメジャーが含まれている場合があります。その場合、この章で後述する “メジャー値によるベース・レコードのフィルタ処理” を参照してください。

  4. 演算子を IS から IS NOT に変更する場合は、以下の操作を行います。

    1. [IS] をクリックします。これによって、式のこの部分を編集できます。

    2. 左の領域にある [IS NOT] をクリックします。その後すぐに、式が以下のように更新されます。

  5. レベルのメンバを指定する手順は以下のとおりです。

    1. [<値の選択>] をクリックします。これによって、式のこの部分を編集できます。左側の領域は、以下のようになります。

      generated description: advancedfilter editor step5

    2. 左側の領域で、[値の選択] の下にある検索ボタン generated description: button search をクリックして、ダイアログを表示します。

    3. そのダイアログにメンバとオプションのセットが表示されます。必要に応じて検索ボックスにテキストを入力し、[Enter] をクリックします。これによって、ダイアログにリストされるメンバのセットが制限されます。

      値のリストには、すべての検索可能メジャー (次のセクションを参照) およびすべてのピボット変数 (このドキュメントで後述の “ピボット変数の定義と使用” を参照) も含まれます。

    4. メンバとオプションのチェック・ボックスにチェックを付けて選択します。

    5. ダイアログの右上隅のチェック・マーク・ボタンをクリックします。その後すぐに、式が以下のように更新されます。

      以下はその例です。

      generated description: advancedfilter editor step6

    6. あるいは、[MDX キー] オプションを選択して、MDX キーを入力することもできます。

    この高度なフィルタは、単純なフィルタと同等です。通常は、別の条件または他の条件を含む分岐を追加します。

  6. 別の条件を追加する手順は以下のとおりです。

    1. [AND] をクリックします。これによって、この項目を編集できます。

    2. 必要に応じて、左の領域にある [OR] をクリックします。その後すぐに、式が以下のように更新されます。

    3. [条件の追加] をクリックします。

      以下のようになります。

      generated description: advancedfilter editor step7

    4. 最初の条件を編集したときと同じやり方でこの条件を編集します。

  7. [OK] をクリックして、ダイアログ・ボックスを閉じます。

    あるいは、別の条件または他の条件を含む分岐を追加します。

変更内容は元に戻すことができます。そのためには、[元に戻す] をクリックします。

メジャー値によるベース・レコードのフィルタ処理

サブジェクト領域に検索可能メジャーがある場合は、ピボット・テーブルで使用されるレコードをそのメジャーの値でフィルタ処理できます。そのためには、以下の操作を実行します。

  1. [フィルタ] ボックスで詳細オプションのボタン generated description: button advanced options をクリックします。

  2. [条件の追加] をクリックします。

    このダイアログ・ボックスは以下のようになります。

    generated description: advancedfilter editor step2 age

    まず、高度なフィルタ・エディタは、サブジェクト領域で定義された、(アルファベット順で) 最初のレベルを使用します。

  3. [Age Group] をクリックします。これによって、式のこの部分を編集できます。

  4. 左側のドロップダウン・リストをクリックして、リストの末尾までスクロールします。このリストには、メジャーが含まれている場合があります。以下はその例です。

    generated description: searchable measure in list

    値のリストにはすべてのピボット変数 (このドキュメントで後述の “ピボット変数の定義と使用” を参照) も含まれることに注意してください。

  5. 使用するメジャーをクリックします。

    式は以下のように更新されます。

    generated description: searchable measure selected

  6. 演算子をクリックします。既定では等号 (=) です。

    エディタには、以下のような一連の演算子が表示されます。

    generated description: searchable measure choose operator

    または、検索可能メジャーに文字列値が含まれる場合、エディタには次のような一連の演算子が表示されます: = <> LIKE

  7. 比較値をクリックします。この既定値は 0 です。

    エディタには、新しい値を入力できるボックスが表示されます。

  8. 値を入力し、[適用] をクリックします。

    文字列値を入力する場合は、一重引用符で囲みます。例 : 'abc'

  9. [OK] をクリックして、ダイアログ・ボックスを閉じます。

    あるいは、別の条件または他の条件を含む分岐を追加します。

例えば、以下のフィルタを考えてみます。

generated description: searchable measure example filter

このフィルタでは、テスト・スコアが 65 以上の患者がすべて選択されます。

名前付きフィルタの定義

名前付きフィルタは、サブジェクト領域と共に保存されます。これは複数のピボット・テーブルおよびダッシュボードのフィルタ・コントロールで使用できます。

名前付きフィルタを定義する手順は以下のとおりです。

  1. 名前付きフィルタが現在選択されていないことを確認します。

  2. [モデル・コンテンツ] ペインで名前付きフィルタのボタン generated description: button named filter をクリックします。

  3. [フィルタ名] に、わかりやすいフィルタ名を入力します。

  4. [説明] に、必要に応じて説明を入力します。

    ダイアログ・ボックスの残りの部分は、高度なフィルタ・エディタと同じです。

  5. このダイアログ・ボックスの残りの詳細は、この章内で前述の “高度なフィルタの追加” を参照してください。

操作を完了すると、[モデル・コンテンツ] ペインの [名前付きフィルタ] セクション内にそのフィルタが表示されます。

generated description: modelcont namedfilters

名前付きフィルタは比較的複雑なので、ダッシュボードで使用する適切な名前付きフィルタを定義すると役立ちます。そうすると、ダッシュボードのユーザはより簡単にデータをフィルタできます。

名前付きフィルタの再定義

名前付きフィルタを再定義する手順は以下のとおりです。

  1. [モデル・コンテンツ] ペインで名前付きフィルタを選択します。

  2. 名前付きフィルタのボタン generated description: button named filter をクリックします。

  3. 必要に応じて変更します。

    詳細は、この章で前述の “高度なフィルタの追加” を参照してください。

ピボット変数の削除

名前付きフィルタを削除する手順は以下のとおりです。

  1. [モデル・コンテンツ] ペインで名前付きフィルタを選択します。

  2. [X] ボタンをクリックします。

  3. [OK] をクリックし、この削除を確定します。

名前付きフィルタの使用

名前付きフィルタを使用するには、[モデル・コンテンツ] ペインから [フィルタ] ボックスにフィルタをドラッグ・アンド・ドロップします。

または、名前付きフィルタをダブルクリックします。これによって、そのフィルタが [フィルタ] ボックスに追加されます。

フィルタの無効化または削除

フィルタを無効にするには、[フィルタ] ボックスでフィルタの名前の左側にあるチェック・ボックスのチェックを外します。

generated description: filter disabling

フィルタを削除するには、フィルタの名前の右側にある [X] をクリックします。

DeepSee でフィルタを組み合わせる方法

ここでは、システムでフィルタを組み合わせる方法について説明します。

単純なフィルタを複数適用すると、以下のように組み合わされます (ただし、このリストの後の重要な注意点を参照してください)。

  • DeepSee では論理 AND を使用して、ピボット・テーブルの上にあるバーで示される項目すべてを結合します。

    フィルタ 意味
    generated description: filter meaning1
    好きな色が緑の患者と好きな色が青の患者すべて (0 人の患者)
    generated description: filter meaning3
    大豆と小麦の両方にアレルギーがあるすべての患者
    generated description: filter meaning5
    好きな色が緑で、アリによる咬傷に対するアレルギーがあるすべての患者
  • このバーでレベルが表示されている場合に、ドロップダウンのそのレベルのメンバを 1 つ以上選択すると、これらのメンバは論理 OR で結合されます。

    フィルタ 意味
    generated description: filter meaning2
    好きな色が緑か青のすべての患者
    generated description: filter meaning4
    大豆、小麦、またはその両方にアレルギーがあるすべての患者
    generated description: filter meaning6
    好きな色が緑か青で、かつアリによる咬傷に対するアレルギーがあるすべての患者

高度なフィルタも適用すると、論理 AND によって他のフィルタと組み合わされます。

Important:

組み合わされるフィルタの形式に応じて、DeepSee は軸のたたみ込みを実行する場合があります。この語句は、複数のフィルタを組み合わせるプロセスを示します (フィルタはクエリ軸と見なされます)。軸のたたみ込みを実行すると、どのスライサ軸にも NULL の結果がないソース・レコードは複数回カウントされます。これが発生するタイミングに関する詳細は、"DeepSee 実装ガイド" の付録 “DeepSee クエリ・エンジンの仕組み” にある “軸のたたみ込み” を参照してください。

メンバのキーの検索

ここでは、メンバのキー識別子を検索する方法と理由について説明します。

各メンバには、以下の 2 つの識別子があります。

  • 名前 (アナライザおよびピボット・テーブル内で表示されます)。例えば、Patients サンプルでは、Doctor レベルのメンバは Vivaldi, Lola という名前を持つ可能性があります。

    名前は、一意である必要はありません。

  • キー (表示されることはありません)。多くの場合、これは名前と同じですが、そうでない場合もあります。例えば、Patients サンプルでは、Vivaldi, Lola という名前の医師が 12 というキーを持つこともあり得ます。

    キーは、適切に定義されたキューブ内で一意であることが推奨されます (DeepSee では一意であることを強制してはいませんが、キューブを作成する開発者はその一意性を保証する手順を取ることができ、そうする必要があります)。

    ドラッグ・アンド・ドロップ操作でフィルタを作成する場合、DeepSee では自動的にメンバ名ではなくメンバ・キーが使用されます。

フィルタ値を手動で指定する場合は、キーを使用してください。状況としては、以下のようなシナリオが考えられます。

また、ピボット変数のメンバを参照する際は、最善の手段としてキーを使用することをお勧めします。

指定されたメンバのキーを検索するには、以下の手順を実行します。

  1. アナライザで、メンバを [フィルタ] ボックスにドラッグ・アンド・ドロップします。

  2. ツールバーのクエリ表示ボタン generated description: button query text をクリックします。

    現在の MDX クエリが以下のように表示されます。

    generated description: member key seeing

    %FILTER 部分でフィルタを指定します。[DocD].[H1].[Doctor].&[32] の部分は、このメンバの完全なメンバ識別子です。このメンバのキーは 32 です。

レベルに同名の複数のメンバが存在するときに、使用するメンバがわからない場合は、以下の方法を試してみてください。

  1. 各メンバを [行] にドラッグ・アンド・ドロップします。

  2. このレベルにプロパティが含まれている場合、そのプロパティを [列] にドラッグ・アンド・ドロップします。プロパティ値はメンバごとに異なるのが一般的です。また、ここでの情報を使用することで、調べるメンバを決定できます。

    または、レベルを [列] にドラッグ・アンド・ドロップします。何らかのコンテキストを提供できるレベルを選択してください。SAMPLES では、Doctor Group を列として表示できます。画面の例を示します。

    generated description: member disambiguation

    このピボット・テーブルによると、最初の Sam Presley はどの医者グループにも含まれていませんが、2 番目の Sam Presley は医者グループ II に含まれています。この情報を使用して、調べるメンバを決定できます。

    他の場合は、必要なメンバを正しく識別するために、詳細リストの表示が必要になることもあります。

FeedbackOpens in a new tab