データ ロード スクリプトでのクロス集計の使用
クロスタブは、ヘッダー データが直交する 2 つのリストに値のマトリックスを持つ一般的なテーブルの種類です。他のデータ テーブルにデータを関連付けたい場合は、必ずしも最適なデータ形式ではありません。
このトピックではクロスタブのピボットを無効にする方法、つまり、データ ロード スクリプト内の LOAD ステートメントに対する crosstable プレフィックスを使用して、タブの一部を行と入れ替える方法を説明します。
1 つの行見出し列により、クロスタブのピボットを無効にする
クロスタブでは、いくつか行見出しとなる列を表示することがあります。これらの列は、直接的な方法で読み取ります。この場合、行見出しとなる列 Year が 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 で作成されます。
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 つの行見出し列があり、その後にマトリックス列が続きます。
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 で読み込んだ際に次のようになります
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 |
... | ... | ... | ... |