メイン コンテンツをスキップする
Crosstable プレフィックスの使用

このページ上

Crosstable プレフィックスの使用

クロス集計は、ヘッダー データが直交する 2 つのリストに値のマトリックスを持つ一般的なテーブルの種類で、データのクロス集計を使用する場合は、常に Crosstable プレフィックスを使用して、データの変換や希望する項目の作成ができます。

Crosstable プレフィックス

次の Product テーブルには、Month (月) ごとに 1 列、Product (製品) ごとに 1 行あります。

Product テーブル
製品 Jan 2014 Feb 2014 Mar 2014 Apr 2014 May 2014 Jun 2014
A 100 98 100 83 103 82
B 284 279 297 305 294 292
C 50 53 50 54 49 51

このテーブルをロードすると、Product とそれぞれの月に 1 項目ずつ存在するテーブルが生成されます。

Product 項目と、月ごとに 1 項目ずつある Product テーブル
Product table with Product field, and one field each for the months.

このデータを分析する場合は、すべての数値が 1 つの項目にあり、別の項目にすべての月がある方がはるかに容易です。この例の場合、各カテゴリ (Product, Month, Sales) ごとに 1 つの列を持つ 3 列構成のテーブルです。

ProductMonthSales の各項目がある Product テーブル
Product table with Product, Month, and Sales fields.

Crosstable プレフィックスは、データを 1 列が Month、もう 1 つが Sales を表すテーブルに変換します。要するに、項目名を取得して項目値に変換します。

次の手順を実行します。

  1. 新しいアプリを作成し、高度なスクリプト チュートリアルという名前を付けます。
  2. データ ロード エディターで新しいスクリプト セクションを追加します。
  3. Product セクションに名前を付けます。
  4. 右のメニューの [DataFiles] で、[データを選択] をクリックします。

  5. Product.xlsx をアップロードして選択します。
  6. [Select data from] (データの選択元) ウィンドウで、Product テーブルを選択します。
  7. ヒント メモ[項目名] で [埋め込まれた項目名] が選択されていることを確認します。このオプションが選択されていると、データをロードする際にテーブルの項目名が含まれます。
  8. [スクリプトを挿入] をクリックします。
  9. これで、スクリプトは次のようになります。

    LOAD Product, "Jan 2014", "Feb 2014", "Mar 2014", "Apr 2014", "May 2014", "Jun 2014" FROM [lib://DataFiles/Product.xlsx] (ooxml, embedded labels, table is Product);

  10. [データのロード] をクリックします。
  11. [データ モデル ビューア] を開きます。データ モデルは次のようになります。
  12. Product 項目と、月ごとに 1 項目ずつある Product テーブル
    Product table with Product field, and one field each for the months.

  13. データ ロード エディターで、[Product] タブをクリックします。
  14. LOAD ステートメントの上に次の内容を入力します。
  15. CrossTable(Month, Sales)

  16. [データのロード] をクリックします。
  17. [データ モデル ビューア] を開きます。データ モデルは次のようになります。
  18. ProductMonthSales の各項目がある Product テーブル
    Product table with Product, Month, and Sales fields.

    通常入力データには、内部キー (上の例では Product) として機能する修飾子項目の列が 1 つだけあります。ですが、ここでは複数持つことが可能です。その場合は、LOAD ステートメントの属性項目の前にすべての補助項目をリストし、Crosstable プレフィックスの 3 番目のパラメータを補助項目の数を定義するために使用する必要があります。Crosstable キーワードの前に先行する LOAD またはプレフィックスを持つことはできません。ただし、自動連結を使用できます。

    Qlik Sense 内のテーブルで、データは次のようになります。

    Crosstable プレフィックスを使用してロードしたデータのテーブル
    Table showing data loaded using Crosstable prefix.

    これで、たとえば、データを使用して棒グラフを作成できるようになりました。

    Crosstable プレフィックスを使用してロードしたデータの棒グラフ
    Bar chart showing data loaded using the Crosstable prefix.

情報メモ Crosstable について詳しくは、Qlik Community の次のブログ投稿を参照してください。「Crosstable ロード」。 動作は QlikView の状況に応じて説明されていますが、ロジックは Qlik Sense にもそのまま当てはまります。

属性項目では、数値解釈は行われません。これは、列のヘッダーが月である場合、自動的に解釈されないことを意味します。この回避策としては、Crosstable プレフィックスを使用して一時的なテーブルを作成し、次の例のように 2 回目のパススルーを実行して解釈を行います。

これはあくまで例です。Qlik Sense で行う付随する演習はありません。

tmpData: Crosstable (MonthText, Sales) LOAD Product, [Jan 2014], [Feb 2014], [Mar 2014], [Apr 2014], [May 2014], [Jun 2014] FROM ... Final: LOAD Product, Date(Date#(MonthText,'MMM YYYY'),'MMM YYYY') as Month, Sales Resident tmpData; Drop Table tmpData;

メモリ キャッシュのクリア

作成するテーブルを削除し、メモリ キャッシュをクリアできます。前のセクションのようにデータを一時的なテーブルにロードした場合、不要になったら削除しなければなりません。例:

DROP TABLE Table1, Table2, Table3, Table4; DROP TABLES Table1, Table2, Table3, Table4;

項目を削除することもできます。例:

DROP FIELD Field1, Field2, Field3, Field4; DROP FIELDS Field1, Field2, Field3, Field4; DROP FIELD Field1 from Table1; DROP FIELDS Field1 from Table1;

ご覧のとおり、キーワード TABLEFIELD は単数形でも複数形でも使用できます。