メイン コンテンツをスキップする 補完的コンテンツへスキップ

Crosstable プレフィックスの使用

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

Crosstable プレフィックス

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

Product テーブル
製品Jan 2014Feb 2014Mar 2014Apr 2014May 2014Jun 2014
A100981008310382
B284279297305294292
C505350544951

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

Product 項目と、月ごとに 1 項目ずつある Product テーブル

Product 項目と、月ごとに 1 項目ずつある Product テーブル。

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

ProductMonthSales の各項目がある Product テーブル

Product、Month、Sales の各フィールドを持つ Product テーブル。

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 項目と、月ごとに 1 項目ずつある Product テーブル。
  13. データ ロード エディターで、[Product] タブをクリックします。
  14. LOAD ステートメントの上に次の内容を入力します。
  15. CrossTable(Month, Sales)

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

    Product、Month、Sales の各フィールドを持つ Product テーブル。

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

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

    Crosstable プレフィックスを使用してロードしたデータのテーブル

    Crosstable プレフィックスを使用してロードしたデータのテーブル。

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

    Crosstable プレフィックスを使用してロードしたデータの棒グラフ

    Crosstable プレフィックスを使用してロードしたデータの棒グラフ。
情報メモ 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 は単数形でも複数形でも使用できます。

このページは役に立ちましたか?

このページまたはコンテンツに、タイポ、ステップの省略、技術的エラーなどの問題が見つかった場合は、お知らせください。改善に役立たせていただきます。