h.yamada/ 2025年 12月 18日/ 技術

ヤマダです。
今年もあっという間に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 の表現方法の幅が広がりますので、ぜひ触ってみてください。
ではでは!

About h.yamada

BIで気になったことを書いていきます。 一番長いのはQlik(歴10年)です。 ※BIパートナーに所属後、NorthTorchへJOIN