QlikSense

QlikSenseのロードスクリプトでテーブルの行列を入れ変える方法(crosstable)

Crosstable

既存のテーブルで「何でこんなレイアウトなんだろう?扱いにくい・・・」と思うことがありませんか?

今回はロード時にそんな扱いにくいテーブルの行と列を入れ替えて集計しやすい形に整形するためにcrosstableプレフィックスを使用します。

※プレフィックス=接頭辞

扱いにくいテーブルとは?

例えば、以下のテーブルはある商品の売り上げ額が月名のフィールドに格納されています。

フィールド名 値サンプル
商品コード A00001
売上年度 2019
4月売上 1,000,000
5月売上 1,200,000
6月売上 1,300,000
7月売上 1,000,000
8月売上 1,500,000
9月売上 1,600,000
10月売上 1,200,000
11月売上 1,000,000
12月売上 2,000,000
1月売上 1,800,000
2月売上 1,000,000
3月売上 1,000,000

この状況で2019年度の売上額を計算しようとすると、すべてのフィールドを合算しなければなりません。

(例)4月売上+5月売上+6月売上+7月売上+8月売上+9月売上+10月売上+11月売上+12月売上+1月売上+2月売上+3月売上

この場合は以下のようなレイアウトになっている方が集計しやすいですね。

フィールド名 値サンプル
商品コード A00001
売上年度 2019
売上月度 4
売上額 1,000,000

このような形であれば、Sum(売上)で合計売上金額を集計することができます。

という訳でCrosstableプレフィックスを使って、ロードする際に扱いにくいテーブルを扱いやすいテーブルに整形する方法をご紹介します。

ロードスクリプトサンプル

Crosstable接頭辞を使って、「〇月売上」という項目を「〇(月)」という列名、「売上金額」という値に分割して取得するというものです。

先のサンプルに置き換えると、【4月売上】という項目を売上月度=4, 売上金額=1,000,000に分割して取得します。

ロードスクリプト解説

Crosstableプレフィックスは以下のように指定します。

Crosstableの指定方法

Crosstable(生成する列名, 値,  行見出しの項目数)

ポイントは【行見出しの項目数】です。

サンプルでは商品コードと売上年度の2項目はそのまま項目名として取得したいので「項目数=2」となります。

もし、商品コードだけが必要な場合は「1」です。

行見出しの項目数を指定しなかった場合のデフォルトは「1」なので、何も指定しなければ商品コード・売上月度・売上金額の3項目が取得できるということです。

結構使える方法なのでご活用ください。

ABOUT ME
アズビーパートナーズ
アズビーパートナーズ
プログラマーと社内SEとしての経験を活かして、 情報システム部門のご相談を承ります。 得意な分野はAccessによる短納期開発、 BIツール(QlikSense/QlikView)の開発です。 現在はCMSを利用したホームページの作成にも力を入れています。
今のスキルのままで大丈夫?

あなたのスキル。今のままで大丈夫ですか?

時代のニーズに合った開発スキルを身につけてあなたの価値を高めましょう。

\オンラインでも教室でも学べるおすすめのスクール/

TECH::CAMP(エンジニアスクール)

まずは基礎から・・・という方はProgateUdemyどっとインストールなどがおすすめ!

スキルアップについて詳しくはこちら