データ ロード スクリプトでのクロス集計の使用

クロスタブは、ヘッダー データが直交する 2 つのリストに値のマトリックスを持つ一般的なテーブルの種類です。他のデータ テーブルにデータを関連付けたい場合は、必ずしも最適なデータ形式ではありません。

このトピックではクロスタブのピボットを無効にする方法、つまり、データ ロード スクリプト内の crosstable ステートメントに対する LOAD プレフィックスを使用して、タブの一部を行と入れ替える方法を説明します。

1 つの行見出し列により、クロスタブのピボットを無効にする

クロスタブでは、いくつか行見出しとなる列を表示することがあります。これらの列は、直接的な方法で読み取ります。この場合、行見出しとなる列 Year が 1 つあり、1 か月当たりの販売データのマトリクスがあります。

1 つの行見出し列を含むクロスタブ
Year Jan Feb Mar Apr May Jun
2008 45 65 78 12 78 22
2009 11 23 22 22 45 85
2010 65 56 22 79 12 56
2011 45 24 32 78 55 15
2012 45 56 35 78 68 82

このテーブルを単純に Qlik Sense にロードすると、Year (年) に 1 つ、そして各月に 1 つずつ項目が生成されます。ただし、通常はこのようなテーブルではデータを適切に管理できません。3 つの項目を生成したいはずです。

  • 行見出しとなる列、この場合では Year には、上のテーブルで緑色の印が付いています。
  • この場合では月の名前 Jan - Jun で表される属性項目には、黄色の印が付いています。この項目には、Month と名前を付けることができます。
  • データ マトリクスの値には、青色の印が付いています。この場合、値は販売データを表すので、Sales と名前を付けることができます。

それには LOAD または SELECT ステートメントに crosstable プレフィックスを追加します。

crosstable (Month, Sales) LOAD * from ex1.xlsx;

これにより、次のテーブルが Qlik Sense で作成されます。

LOAD または SELECT ステートメントに crosstable プレフィックスが追加されているテーブル
Year Month Sales
2008 Jan 45
2008 Feb 65
2008 Mar 78
2008 Apr 12
2008 May 78
2008 Jun 22
2009 Jan 11
2009 Feb 23
... ... ...

2 つの行見出し列により、クロスタブのピボットを無効にする

この場合は、左側に 2 つの行見出し列があり、その後にマトリックス列が続きます。

2 つの行見出し列を含むクロスタブ
Salesman Year Jan Feb Mar Apr May Jun
A 2008 45 65 78 12 78 22
A 2009 11 23 22 22 45 85
A 2010 65 56 22 79 12 56
A 2011 45 24 32 78 55 15
A 2012 45 56 35 78 68 82
B 2008 57 77 90 24 90 34
B 2009 23 35 34 34 57 97
B 2010 77 68 34 91 24 68
B 2011 57 36 44 90 67 27
B 2012 57 68 47 90 80 94

行見出し列の数は、次のように crosstable プレフィックスの 3 番目のパラメータとして指定できます。

crosstable (Month, Sales, 2) LOAD * from ex2.xlsx;

その結果、Qlik Sense で読み込んだ際に次のようになります

crosstable プレフィックスの 3 番目のパラメータとして指定された行見出し列を含むテーブル
Salesman Year Month Sales
A 2008 Jan 45
A 2008 Feb 65
A 2008 Mar 78
A 2008 Apr 12
A 2008 May 78
A 2008 Jun 22
A 2009 Jan 11
A 2009 Feb 23
... ... ... ...

See also: