Qlik Training Blog

ビジュアライゼーション・分析

Trellis container(トレリス コンテナ)チャートを作ってみよう!

公開日:
更新日:
ビジュアライゼーション・分析
#Qlik Sense
#Qlik Cloud
#開発者
#可視化・分析

「同じチャートを年ごとにたくさん並べて表示したい…」「製品ごとの売上推移を比較したい…」このように
思ったことはないでしょうか?こんなとき、Trellis containerが便利です。今回は、Trellis containerの作成方法をご紹介します!

<表示イメージ>

目次

※本記事は「2023年04月時点のSaaS」で作成しています。

Trellis containerとは

複数のグラフを格子状に並べて表示できるチャートです。デフォルトでは、Y軸の目盛りが統一されるため、全体への影響度が確認しやすくなるというメリットがあります。

以下のデータを例にTrellis containerを作成してみましょう。

▼データ例

商品

売上

2021

りんご

54800

2022

りんご

40300

2023

りんご

56400

2021

みかん

39800

2022

みかん

42800

2023

みかん

37900

2021

もも

80300

2022

もも

71100

2023

もも

89800

2021

ぶどう

99800

2022

ぶどう

77900

2023

ぶどう

93700

2021

ばなな

11900

2022

ばなな

26700

2023

ばなな

9600

棒グラフをTrellis containerとして表示する方法

Trellis containerで使用するチャート(今回は棒グラフ)は、[マスター アイテム]の[ビジュアライゼーション]として先に登録しておきます。それでは、「年」ごとの『Sum(売上)』棒グラフを、Trellis containerを使って「商品」ごとに表示してみましょう!

▼作成手順

  1. シートを編集モードで開きます。

  2. SaaSの場合は、シートの右上にある[詳細オプション]をオンにします。

3) 「年」ごとの『Sum(売上)』棒グラフを作成します。※軸:年、メジャー:Sum(売上)を設定しています。

4) 棒グラフを右クリックして、[マスターアイテムに追加]を選択すると[マスター アイテムに追加]画面が表示されるので、任意の名前(例:棒グラフ)を設定し[追加]をクリックします。

5) [アセット]から[カスタム オブジェクト]-[Qlik Visualization bundle]-[Trellis container]を選択し、
  ドラッグ&ドロップでシート上の空白のエリアに追加します。

6) [軸を追加]をクリックしてTrellis containerで表示したい項目を選択します。
  ※今回は「商品」ごとに表示するので「商品」を選択します。

7) [Add master visualization]をクリックすると、[マスター アイテム]に登録した[ビジュアライゼーション]が表示されるので、先ほど登録した「棒グラフ」を選択します。Trellis containerが表示されます!

▼TIPS:表示する列の数を変更してみよう!
 ・[プロパティ]-[スタイル]-[Trellis options]の[Number of columns]でTrellis containerの列の数を設定できます。
 ・[Maximum number of charts]では、表示可能なチャートの最大数を設定できます。

<表示イメージ>
[Number of columns]を「3」とすると、表示が3列になります。

Advanced modeについて

「マスター アイテムに登録するチャートはうまく表示できているけど、Trellis containerに設定すると意図した集計結果が表示されない…」このような経験はありませんか?

Trellis containerでは、表示内容を分割するために、数式内でSET分析の自動埋め込みが行われます。基準線を設定している…、メジャーにSET分析を使用している…、メジャーの[修飾子]-[累計](プロパティの設定)を使用している…、マスター アイテムに登録するメジャーの数式が複雑…などの場合、自動埋め込みの動作で、メジャーの適切な箇所にSET分析が埋め込まれないときや、メジャー以外の設定箇所に自動埋め込みが反映されないときがあります。このようなときは、[Advanced mode]を使用して、数式内のどこにSET分析を埋め込むかを定義しましょう。

▼Advanced modeを使用したときの記述方法と置換後の値

記述方法

置換後の値

$(vDim)

Dimension Name

$(vDimValue)

Dimension Value

$(vDimSet)

,[Dimension Name]={'Dimension Value'}

$(vDimSetFull)

{<[Dimension Name]={'Dimension Value'}>}

※「Dimension Name」は軸に設定した項目名、「Dimension Value」は軸に設定した項目の値として置換されます。

▼記述例
「Dimension Name=商品」「Dimension Value=ばなな」と置き換えが行われるとすると、以下のように置換されます。

置換前の数式

置換後の数式

Sum({<$(vDim)={'$(vDimValue)'}>}[売上])

Sum({<商品={'ばなな'}>}[売上])

Sum({<支店={'東京'}$(vDimSet)>}[売上])

Sum({<支店={'東京'},商品={'ばなな'}>}[売上])

Sum($(vDimSetFull)[売上])

Sum({<商品={'ばなな'}>}[売上])

今回は、基準線を使用する場合、累積表示(プロパティ設定)の場合の動作について、確認していきましょう。
 

基準線を使用する場合

[マスターアイテム]に登録する棒グラフ(「年」ごとの『Sum(売上)』)に、基準線を追加します。

▼作成手順

  1. シートを編集モードで開きます。

  2. 「年」ごとの『Sum(売上)』棒グラフを作成します。

※軸:年、メジャー:Sum(売上)を設定しています。
3) [拡張機能]-[基準線]で[基準線を追加]をクリックして基準線を設定します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ラベル   :平均
基準線の数式:Avg(Aggr(Sum($(vDimSetFull)[売上]),年))

◇数式解説
 - $(vDimSetFull)
  Trellis container内では『{<[Dimension Name]={'Dimension Value'}>}』のように置換されます。
  つまり、Advanced modeを使用すると『Avg(Aggr(Sum({<[商品]={'ばなな'}>} [売上]),年))』
  のような数式となり、Trellis containerで「商品」ごとにチャートが表示されます。

 - Aggr(Sum([売上]),年)
  Aggr関数を使用して「年」ごとの『Sum(売上)』を求めています。

 - Avg(Aggr(Sum([売上]),年))
  Avg関数を使用して「年」ごとの『Sum(売上)』の平均を求めています。   
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

4) 棒グラフを右クリックして、[マスターアイテムに追加]を選択すると[マスター アイテムに追加]画面が表示
  されるので、任意の名前(例:基準線棒グラフ)を設定し[追加]をクリックします。

5) [アセット]から[カスタム オブジェクト]-[Qlik Visualization bundle]-[Trellis container]を選択し、
  ドラッグ&ドロップでシート上の空白のエリアに追加します。

6) [軸を追加]をクリックしてTrellis containerで表示したい項目を選択します。
  ※今回は「商品」ごとに表示するので「商品」を選択します。

7) [Add master visualization]をクリックし、先ほど登録した「棒グラフ」を選択します。
  Trellis containerが表示されます。
  ※この状態では、[Advanced mode]がオンになっていないので、基準線が正しく表示されていません。

8) Trellis containerの[プロパティ]-[スタイル]-[Trellis options]-[Advanced mode]をオンにします。
  Trellis containerで正しく基準線を表示することができました!

累積表示(プロパティ)の場合

メジャーの[修飾子]-[累計](プロパティの設定)を使用して累計表示しているときは、Trellis containerで累計を表示することができません。プロパティを使用せず、数式で累計を設定しましょう。

▼作成手順

  1. シートを編集モードで開きます。

  2. 「年」ごとの『Sum(売上)』棒グラフの累計を数式で設定します。

※Trellis containerを使用したときに、SET分析を埋め込みたい場所に「$(vDimSetFull)」を設定します。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
軸   :年
メジャー:Rangesum(Above(Sum($(vDimSetFull)[売上]),0,Rowno()))

◇数式解説
 - $(vDimSetFull)
  『Rangesum(Above(Sum({<[商品]={'ばなな'}>}[売上]),0,Rowno()))』のような数式となり、
  Trellis containerで「商品」ごとにチャートが表示されます。

 - Rangesum(Above(Sum([売上]),0,Rowno()))
  RangeSum関数は指定した範囲の合計値を求める関数で、Above関数と組みあわせで、
  累計を取得しています。

 - Rowno()
  現在行を取得します。

 - Above(Sum(data),0,Rowno())
  構文は「Above(数式,n,m)」のように記載します。
  n行(n=0 は、現在行を示します)を含め、m行より上に表示されている全ての値を返します。
  今回、m行にはRowno関数を指定することで、現在行の上にある全ての値を返すようにしています。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

3) 作成した累積棒グラフを右クリックし[マスター アイテムに追加]をクリックします。
  ※任意の名前は「累積棒グラフ」とします。

4) [アセット]から[カスタム オブジェクト]-[Qlik Visualization bundle]-[Trellis container]を選択し、
  ドラッグ&ドロップでシート上の空白のエリアにTrellis containerを追加します。

5) [軸を追加]で「商品」、[Add master visualization]で先ほど作成した「累積棒グラフ」を選択します。

<表示イメージ>

6) Trellis containerの[プロパティ]-[スタイル]-[Trellis options]-[Advanced mode]をオンにします。

Advanced modeがオンのとき:
指定した箇所にSET分析の埋め込みが行われます。
・Rangesum(Above(Sum({<[商品]={'ばなな'}>}[売上]),0,Rowno()))

Advanced modeがオフのとき:
自動でSET分析の埋め込みが行われるため、Rangesum関数にも『{<[商品]={'ばなな'}>}』の埋め込みが行われます。また、Advanced mode をオンにしないと「$(vDimSetFull)」 は展開されません。
・Rangesum({<[商品]={'ばなな'}>}Above(Sum({<[商品]={'ばなな'}>}$(vDimSetFull)[売上]),0,Rowno()))+0*Sum({1}1)
累積は表示されますが、Rangesum関数の構文として正しくないため、Advanced modeをオンにして
「$(vDimSetFull)」を指定します。

なお、「累積棒グラフ」のメジャーで「$(vDimSetFull)」を使用せず『Rangesum(Above(Sum([売上]),0,Rowno()))』と設定しても、Trellis containerを使用するとRangesum関数にSET分析の埋め込みが行われます。
・Rangesum({<[商品]={'ばなな'}>}Above(Sum({<[商品]={'ばなな'}>}[売上]),0,Rowno()))+0*Sum({1}1)

Trellis containerの留意点

1. Trellis containerでは、以下のチャートは使用できません。

  • フィルター パネル

  • ヒストグラム

2. Trellis containerでは、SET分析が自動で埋め込まれるので、意図した結果にならないときがあります。そんなときはAdvanced modeを使って、どこにSET分析を埋め込むか、定義してみてください。
3. メジャーの[修飾子]-[累計]を設定しているとき、累計をTrellis containerで表示できません。
  累計は数式で設定し、Advanced modeを利用しましょう。

さいごに

今回は、Trellis containerについて説明しました。いかがでしたでしょうか?
Trellis containerの詳細については、ヘルプもご覧ください。
https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/VisualizationBundle/trellis-container.htm

Trellis containerでうまく表示できない、といったときは、SET分析を埋め込みたい部分を確認してみてください。Advanced modeを使うことで解決できるかもしれません。