在資料載入指令碼中使用跨維度資料表

跨維度資料表是一種常見的表格類型,包含兩個標頭資料正交清單之間的值矩陣。如果您想要將資料關聯至其他表格,這通常並非最佳的資料格式。

本主題說明了您如何能夠取消樞紐跨維度資料表,即使用 crosstable 前置詞 (對資料載入指令碼中的 LOAD 陳述式) 將其部分轉置為列。

使用一個限定資料行取消樞紐跨維度資料表

一個跨維度資料表前面通常會有多個限定資料行,應該以直接的方式讀取這些資料行。在此情況中有一個限定資料行 Year,以及每個月的銷售資料矩陣。

含有一個限定資料行的跨維度資料表
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,然後每個月份各一個欄位。這通常不是您想要的。您大概會偏好只產生三個欄位:

  • 此情況中的限定資料行 Year 在上述表格中以綠色標記。
  • 此情況中以月份名稱 Jan - Jun 表示的屬性欄位,以黃色標記。此欄位可適當命名為 Month
  • 資料矩陣值以藍色標記。在此情況中它們代表銷售資料,因此可適當命名為 Sales

例如,在 LOADSELECT 陳述式前面加上 crosstable 前置詞即可達到這個目的:

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

這樣會在 Qlik Sense 中建立下列表格:

含有 Crosstable 前置詞的表格已新增至 LOAD 或 SELECT 陳述式
Year Month Sales
2008 一月 45
2008 二月 65
2008 三月 78
2008 四月 12
2008 五月 78
2008 六月 22
2009 一月 11
2009 二月 23
... ... ...

使用兩個限定資料行取消樞紐跨維度資料表

在此情況中,左邊有兩個限定資料行,後面接著矩陣資料行。

含有兩個限定資料行的跨維度資料表
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 前置詞中指定為第三個參數,如下所示:

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

這樣會在 Qlik Sense 中建立下列結果:

含有限定資料行的表格可在 crosstable 前置詞中指定為第三個參數
銷售員 Year Month Sales
A 2008 一月 45
A 2008 二月 65
A 2008 三月 78
A 2008 四月 12
A 2008 五月 78
A 2008 六月 22
A 2009 一月 11
A 2009 二月 23
... ... ... ...

See also: