Qlik Trainingブログ

  • Qlik Sense
  • Qlik Cloud
  • 開発者
  • 可視化・分析
2023.04.25

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

「同じチャートを年ごとにたくさん並べて表示したい…」「製品ごとの売上推移を比較したい…」このように
思ったことはないでしょうか?こんなとき、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を使うことで解決できるかもしれません。

関連している記事

  • Qlik Cloud
  • Qlik Sense
  • その他
2024.07.10

Qlik Connect 2024 に参加してきました!

今年は6月3日から5日にかけてフロリダ州オーランドでQlik Connect 2024が開催されました。 弊社アシストからは3名が参加しましたので、今回はその模様をお送りします。

  • Qlik Cloud
  • 運用者
  • データ統合
2024.07.04

新しいデータ統合の手法「ELT」をQlikで実現!ETLとの違いとは?

効率的なデータ分析を行うには必要データを収集統合することが必要です。 また最近では発生したデータをリアルタイムに使いたいとの要望も増えています。 本記事ではこのような課題に対し、Qlikが新たに対応したELTというデータ統合の手法についてご紹介します。

  • Qlik Cloud
  • Qlik Sense
  • 開発者
  • データロード
2024.06.27

複数のGoogleスプレッドシートを一括でQlik Sense SaaSのアプリに読み込みたい!

複数のGoogleスプレッドシートを一括で読み込む方法を紹介します。

ページの先頭へ戻る