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を利用したホームページの作成にも力を入れています。
中小企業にこそ必要なセキュリティ対策

日々巧妙化する悪意ある攻撃。狙われるのは大企業だけではありません。

セキュリティ対策が追い付いていない中小企業は犯罪者の恰好の餌食です。

情報セキュリティ部門がない、詳しい人がいない…。

そんな時は全部まとめて外部委託して安心を手に入れる方法がベストです!

\セキュリティ対策をまとめて全部NTT西日本にお任せ!/


資料請求はこちらから