跳到主要內容 跳至補充內容

使用 Crosstable 前置詞

跨維度資料表是一種常見的表格類型,在兩個標頭資料的正交清單之間具有值矩陣。每當擁有資料的跨維度資料表時,您都可以使用 Crosstable 前置詞轉換資料,並建立所需的欄位

Crosstable 前置詞

在下面的 Product 表格中,每個月有一個資料行,每個產品有一列。

產品表格
產品Jan 2014Feb 2014Mar 2014Apr 2014May 2014Jun 2014
A100981008310382
B284279297305294292
C505350544951

載入表格時,在輸出的表格中,一個欄位用於 Product,然後每個月份各一個欄位。

Product 表格含有 Product 欄位,每個月份各一個欄位

產品表格含有產品欄位,每個月份各一個欄位。

如果您想要分析此資料,最好將所有數字放到一個欄位,所有月份放到另一個欄位。在此情況下,在擁有三個資料行的表格中,每個類別 (Product, Month, Sales) 都有一個欄位。

Product 表格含有 ProductMonthSales 欄位

產品表格含有產品、月份和銷售欄位。

Crosstable 前置詞將資料轉換為表格,一個資料行表示 Month,另一個表示 Sales。另一種表達方式為它採用了欄位名稱並將其轉換為欄位值。

  1. 建立新的應用程式並稱之為進階指令碼教學課程
  2. 資料載入編輯器中新增新的指令碼區段。
  3. 命名區段 Product
  4. 在右側功能表的 DataFiles 之下,按一下選取資料

  5. 上傳然後選取 Product.xlsx
  6. 從以下項目選取資料視窗中選取 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 表格含有 Product 欄位,每個月份各一個欄位

    產品表格含有產品欄位,每個月份各一個欄位。
  13. 資料載入編輯器中,按一下 Product 索引標籤。
  14. LOAD 陳述式之上輸入下列內容:
  15. CrossTable(Month, Sales)

  16. 按一下載入資料
  17. 開啟資料模型檢視器。資料模型應如下所示:
  18. Product 表格含有 ProductMonthSales 欄位

    產品表格含有產品、月份和銷售欄位。

    請注意,輸入資料通常只有一個作為限定詞欄位的資料行;作為內部索引鍵 (在上方範例中為 Product)。但是您可以擁有多個。如果是這種情況,所有符合條件的欄位必須在 LOAD 陳述式屬性欄位前面列出,並且 Crosstable 前置詞的第三個參數必須用於定義符合條件欄位的數量。您不能在 Crosstable 關鍵字前面放置前置 LOAD 或前置詞。不過,您可以使用自動串連。

    Qlik Sense 的表格中,資料呈現如下:

    表格中顯示使用 Crosstable 前置詞載入的資料

    表格中顯示使用 Crosstable 前置詞載入的資料。

    例如,您現在可以使用資料建立條形圖:

    條形圖中顯示使用 Crosstable 前置詞載入的資料

    條形圖中顯示使用 Crosstable 前置詞載入的資料。
資訊備註若要進一步瞭解 Crosstable,請在 Qlik Community 中參閱此篇部落格貼文:Crosstable 載入。 行為會在 QlikView 的上下文中討論。不過,邏輯同樣適用於 Qlik Sense

數值解譯無法用於屬性欄位。也就是說,如果您的資料行標頭是月份,系統不會自動解譯。解決方法是使用 Crosstable 前置詞建立一個臨時表格,並執行第二次通過來解譯,如以下範例所示。

請注意,這只是範例。在 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 可以是單數或複數。

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們可以如何改善!