並列ステートを使用した比較分析
比較分析を実行したい場合は、Qlik Sense で並列ステートを使用できます。並列ステートを使用して、同じ軸について異なる選択をし、選択内容を単一のビジュアライゼーションで比較したり、2 つ以上のビジュアライゼーションを横に並べて比較したりすることができます。
ビジュアライゼーションにおける並列ステートは、次の 2 とおりの方法で使用できます。
- ビジュアライゼーションへのステートの適用。これにより、ビジュアライゼーションの選択をステートの選択に接続します。
- メジャーの set 数式におけるステートの使用。これは、ステートが異なるメジャー値の比較に有用です。
並列ステートの作成
新規の並列ステートは、[マスター アイテム] の [並列ステート] で作成できます。
- [新規作成] を選択します。
-
作成するステートの名前を指定します。名前の付け方に以下の制限があります。
- ステート名に、$、0、または 1 を使用しないでください。
- $ または $_ から始まり、その後に数字が続くステート名 (例: $3) を使用しないでください。
- ブックマーク名としてすでに存在する名前をステート名として使用しないでください。
これで、比較分析に使用できる新規の並列ステートが作成されました。通常、2 つのステートを比較するため、別の新規ステートを作成します。
シートおよびビジュアライゼーションへの並列ステートの適用
ステートは、ビジュアライゼーションまたはシートに適用できます。シートにステートを適用する場合、特定のビジュアライゼーションに別のステートを適用する場合を除き、シート上のすべてのビジュアライゼーションがステートを継承します。ビジュアライゼーションにステートを適用すると、そのビジュアライゼーションにはステートでの選択が反映されます。選択内容はステートに適用され、同じステートが適用されている他のビジュアライゼーションに反映されます。
並列ステートを適用するもっとも簡単な方法は、シートまたはビジュアライゼーション上に並列ステートをドロップし、[状態を適用] を選択するという方法です。
並列ステートは、プロパティ パネルの [ステート] 設定を使用して適用することもできます。
- シートの場合は、[並列ステート] の下にこの設定があります。
- ビジュアライゼーションの場合は、[スタイル] > [並列ステート] の順に進むと設定があります。
以下のステートを選択できます。
- [マスター アイテム] で定義された並列ステート。
- <継承済み> (使用されているシートについてステートが定義されている場合)。
- <既定の状態> (並列ステートが適用されていないステート)。
ビジュアライゼーションにおける並列ステートの使用
ステートのビジュアライゼーションへの適用に加え、メジャーの set 数式において並列ステートを使用することもできます。これは、異なる軸選択を横に並べてメジャー値を比較する場合に有用です。
並列ステートは、識別子として set 数式内で設定できます。ビジュアライゼーションで、たとえば、Group1 というステートを持つ棒グラフで、メジャー Sum(Sales) を使用したい場合、メジャーとして次の式を使用します。
Sum({Group1}Sales)
Group2 という別のステートと比較するには、Sum({Group2}Sales) という数式で別のメジャーを作成できます。
棒グラフには、Group1 の選択に対応する売上高と Group2 の売上高が横に並んで表示されます。
set 数式の詳細については、「set 分析」を参照してください。
並列ステートの選択に関する情報の入手
選択バーで、別のステートの選択内容を表示できます。
詳細については、「選択による探索」を参照してください。
ビジュアライゼーションのラベルまたはタイトルにおいて、並列ステートの選択内容と選択の数に関する情報を使用したい場合があります。state_name パラメーターを持つ次のチャート関数を使用して、指定したステート名に関連付けられている選択を返すことができます。
-
GetCurrentSelections() は、現在のすべての選択を返します。
-
GetFieldSelections() は、項目の現在の選択内容を返します。
-
GetSelectedCount() は、項目内で選択された値の数を返します。
並列ステートの変数の展開
変数を展開するときに使用するステートを指定できます。特定のステートの変更は、別のステートで展開される変数値には影響しません。ステートを指定しない場合、変数は既定のステートで展開されます。
名前が MyState のステート、vMyVar の名前の変数がある場合:
- $(vMyVar) は、既定のステートで変数を展開します。
- $({MyState} vMyVar) は、MyState のステートで変数を展開します。
制限事項
ビジュアライゼーションのステートを <inherited> 以外の値に設定した場合、マスター アイテムにビジュアライゼーションを追加することはできません。
比較分析の例
この例では、販売地域についての異なる選択に関して、製品ラインの売上数を比較できます。地域は、単一の地域や複数地域の組み合わせなど、比較する地域を動的に選択できると有用です。
データセットおよびアプリ
この例を実際になぞるには、Qlik Sense チュートリアル - アプリの構築 をダウンロードしてデータセットを取得する必要があります。チュートリアルを完了したら、作成したアプリを使用できます。そうでなければ、アプリを作成し、Tutorials source フォルダ内の 6 個のデータ ファイルすべてを追加し、データ マネージャーの自動推奨機能を使用してデータ ファイルを関連付ける必要があります。
並列ステートの作成
たとえば、2 つの並列ステートが必要だとします。[マスター アイテム] > [並列ステート] の順に進み、
- Group 1 という新しいステートを作成します。
- Group 2 という新しいステートを作成します。
これで、この例で必要となる 2 つの並列ステートを作成しました。
選択のためのフィルター パネルの作成
次の手順を実行します。
- 項目 Region を含むフィルター パネルを追加します。
- フィルター パネルのラベルを編集して、 =StateName() にします。ステートはフィルター パネルには表示されないため、このようにすると別々のステートであることを伝えやすくなります。StateName() 関数は、関数に適用されているステートを返します。
- ステート Group 1 をフィルター パネルにドロップし、[状態を適用] を選択します。
- 項目 Region を含むもう 1 つのフィルター パネルを追加します。
- 2 つめのフィルター パネルのラベルを編集して、 =StateName() にします。
- ステート Group 2 を 2 つめのフィルター パネルにドロップし、[状態を適用] を選択します。
これで、2 つのステートそれぞれの選択を制御するために使用する、2 つのフィルター パネルが作成されました。Group 1 フィルター パネルで選択を行うと、同じ選択内容がステート Group 1 に適用され、このステートに接続されているすべてのビジュアライゼーションに反映されます。
分析用の棒グラフの作成
次の手順を実行します。
-
Group1Sales という名前でマスター アイテム メジャーを作成します。
[数式] を Sum({[Group 1]}[Sales]) に設定します。
この数式は、ステート Group 1 内のすべての選択について売上高を合計します。
[数式のラベル] を 'Sales '&GetCurrentSelections(chr(13)&chr(10), '=', ',' ,9,'Group 1') に設定します。
既定のラベルの代わりに、数式のラベルを使用して、チャート内のラベルとしてステートの現在の選択条件を表示することができます。
-
Group2Sales という名前でもう 1 つのマスター アイテム メジャーを作成します。
[数式] を Sum({[Group 2]}[Sales]) に設定します。
[数式のラベル] を 'Sales '&GetCurrentSelections(chr(13)&chr(10), '=', ',' ,9,'Group 2') に設定します。
- 棒グラフをシートに追加します。
- 項目 [Product Line] (製品ライン) を軸に設定します。
- メジャー Group1Sales および Group2Sales を追加します。
フィルター パネルで選択した 2 つの地域グループについて、製品ライン別に売上高を表示する棒グラフが作成されました。フィルター パネルのうちの 1 つで新たに選択を行うと、その選択に基づいて、対応するメジャー値が変化します。
探索
Group 1 および Group 2 で選択を行い、地域の組み合わせを選択した結果が棒グラフに表示されるようになります。