ヤマダです。
今年もあっという間に12月、、、早いですね。
今回はQlikのチャートスクリプトについて調べました。この機能知らなかったです。。
チャートスクリプトとは
チャートスクリプトとは、チャート(グラフ)内でのみ有効なスクリプトを記述できる機能です。
Qlik でスクリプトを書く場所といえば通常は、
- ロードスクリプト(データモデルの作成)
- 変数、軸、メジャーの計算式
ですが、チャートスクリプトはグラフ内容をロードして加工する機能になります。
Qlikのお作法では以下の流れになります
ロードスクリプトでデータモデル作成
↓
グラフで集計
↓
グラフ内容をロードして加工(このブログ)
やってみる
今回は以下の表を作成します。「クラス」の列をチャートスクリプトで生成してみます。

アプリの設定で「チャートスクリプトを許可」をONにする
チャートスクリプトはデフォルトでOFFなので、有効化が必要です。

項目の設定(ディメンション・メジャー)
| グラフのラベル名 | 定義 |
|---|---|
| 商品名 | データモデルのディメンション |
| 金額 | データモデルのメジャー |
| クラス | 計算項目(今回は "クラス" という固定文字列を返すだけの計算式)※何でもいい |
スクリプトを定義
グラフのプロパティに「スクリプト」という項目が表示されるので、「追加」から以下を登録します。

replace
Load
商品名 as 商品名,
金額 as 金額,
if(金額>=1000000,'S',if(金額>=100000,'A','B')) as ランク
Resident HC1;
スクリプト説明
- グラフの内容を置き換える場合はreplace、行追加はadd
- LOAD の項目名は「データモデルの項目」ではなく「グラフのラベル名」とする
- as 句は必須。修正がなくても必ず書く必要あり
- Residentの参照先は テーブル名ではなく “HC1” 固定
また、チャートスクリプトではメジャーの加工(Put 関数など)も可能で、かなり柔軟に処理できます。(何でもあり。。)
どんなときに使う?
- 特定のチャートだけで項目を追加したい
- データモデルを汚さずに、グラフ単位で処理を足したい
- 本番データモデルを変えられないけど、表現のために一時的に加工したい
ロードスクリプトを触れない状況では重宝します。
注意事項
- チャートスクリプトは特定のグラフしか使えません。
- 1つのグラフに対してスクリプトが5つまで
- グラフごとに設定するため、スクリプトが増えると管理が煩雑になる。
- 多グラフで同じ加工をしたい場合は、ロードスクリプトや数式に寄せたほうが運用は楽
チャートスクリプトをうまく使えば、Qlik の表現方法の幅が広がりますので、ぜひ触ってみてください。
ではでは!
