建立詳細資料層級、排名和動態磚計算
附註:從版本 2020.4.1 開始,現在可以在 Tableau Server 和 Tableau Cloud 中建立和編輯流程。除非特別說明,否則本主題中的內容適用於所有平台。有關在 Web 上製作流程的詳情,請參閱 Tableau Server(連結在新視窗開啟) 和 Tableau Cloud(連結在新視窗開啟) 說明中的 Web 版 Tableau Prep。
您可以使用導出欄位,透過已經存在於資料來源中的資料來建立新的資料。Tableau Prep 和 Tableau Desktop 一樣,支援多種相同的計算類型。有關建立計算的一般資訊,請參閱 Tableau 中的計算入門(連結在新視窗開啟)。
附註:建立計算欄位時,請勿使用保留名稱「記錄數」。使用此保留名稱將導致與權限相關的錯誤。
從 Tableau Prep Builder 版本 2020.1.3 和 Web 版本開始,可以使用 FIXED 詳細資料層級 (LOD) 和 RANK 及 ROW_NUMBER 分析函數來執行更多複雜的計算。
例如,新增 FIXED LOD 計算可變更表中欄位的粒度,使用 ROW_NUMBER () 分析函數可快速尋找重複的列,或使用其中一個 RANK () 函數可以尋找選取的具有類似資料之列的前 N 個或最後 N 個值。如果您想要在建立這些類型的運算式時享有更具引導式的體驗,則可以使用視覺計算編輯器。
從 Tableau Prep Builder 版本 2021.4.1 和 Web 版本開始,可以使用動態磚功能將列分佈到指定數量的貯體中。
附註:Tableau Prep 中可能尚不支援 Tableau Desktop 中支援的某些函數。若要檢視 Tableau Prep 中的可用函數,請檢閱「計算」編輯器中的函數清單。
計算詳細資料層級
您需要在相同表中以多種細微性層級計算資料時,可以透過編寫詳細資料層級 (LOD) 運算式來完成。例如,如果您想要尋找每個區域的總銷售量,就可以編寫如 {FIXED [Region] : SUM([Sales])}
的計算。
Tableau Prep 支援 FIXED 詳細資料層級運算式,並使用語法 {FIXED [Field1],[Field2] : Aggregation([Field)}
。
LOD 運算式的方程式有兩個部分,以冒號分隔。
FIXED [Field](必要):這是您想要為其計算值的欄位。例如,如果您想要針對客戶和地區尋找總銷售量,就可以輸入
FIXED [Customer ID], [Region]:
。如果未選取任何欄位,就等同於執行冒號右側定義的彙總,並對每一列重複該值。Aggregation ([Field])(必要):選取您要計算的內容以及您所需的彙總層級。例如,如果您想要尋找總銷售量,請輸入
SUM([Sales]
。
在 Tableau Prep 中使用此功能時,需要滿足以下要求:
INCLUDE
和EXCLUDE
LOD 運算式不受支援。- 只有在 LOD 運算式內才支援彙總計算。例如,
SUM([Sales])
無效,但是{FIXED [Region] : SUM([Sales])}
有效。 LOD 運算式內的巢狀運算式不受支援。例如,
{ FIXED [Region] : AVG( [Sales] ) / SUM( [Profit] )}
不受支援。- 不支援將 LOD 運算式與其他運算式合併。例如,
[Sales]/{ FIXED [Country / Region]:SUM([Sales])}
不受支援。 在「設定檔」窗格工具列中按一下「建立計算欄位」,或是在設定檔卡片或資料網格中按一下「更多選項」功能表,然後選取「建立計算欄位」>「自訂計算」。
在「計算」編輯器中,輸入您的計算名稱,然後輸入運算式。
例如,若要依照城市尋找平均產品出貨天數,請建立如下所示的計算。
在設定檔卡片或結果窗格中,按一下「更多選項」功能表,然後選取「建立導出欄位」>「固定 LOD」。
在「視覺化計算」編輯器中,執行以下動作:
- 在「分組依據」部分,選取您要為其計算值的欄位。預設情況下,系統會新增您選取「建立導出欄位」>「固定 LOD」功能表選項所在欄位。按一下加號 圖示,在計算中新增任意附加欄位。此內容會填入方程式的左側,也就是
{FIXED [Field1],[Field2] :
。 在「計算依據」區段,選取您要用來計算新值的欄位。接著,請選取您的彙總。此內容會填入方程式的右側,也就是
Aggregation([Field)}
。欄位下方的圖形會顯示值的分佈以及各個值組合的總數。視資料類型而定,此圖形可能會是箱形圖、值範圍或實際值。
附註:可用的彙總值會因為指派給欄位的資料類型而有所不同。
若要移除欄位,請在「分組依據」部分中,用滑鼠右鍵按一下或 Cntrl + 按一下 (MacOS) 欄位的下拉式方塊,然後選取「移除欄位」。
- 在左側窗格的欄位標題中按兩下,然後為您的計算輸入名稱。
- 在「分組依據」部分,選取您要為其計算值的欄位。預設情況下,系統會新增您選取「建立導出欄位」>「固定 LOD」功能表選項所在欄位。按一下加號 圖示,在計算中新增任意附加欄位。此內容會填入方程式的左側,也就是
按一下「完成」以新增新的計算欄位。在「變更」窗格中,您可以查看 Tableau Prep 所產生的計算。按一下「編輯」可開啟視覺化計算編輯器以進行任何變更。
建立詳細資料層級 (LOD) 計算
若要建立詳細資料層級計算,您可以使用「計算」編輯器來自行編寫計算;如果您想要享有更具引導式的體驗,則可以使用可在其中選取欄位的「視覺化計算」編輯器,Tableau Prep 會為您編寫計算。
「計算」編輯器
視覺化計算編輯器
從清單中選取欄位,Tableau Prep 會在您進行選擇時為您建立計算。結果的預覽會顯示在左側窗格中,以便您同時選擇並檢視選擇結果。
計算順序或列數
分析函數有時候稱為窗計算,可讓您跨整個表或在資料集合的選定列(分區)中執行計算。例如,對選定列套用順序時,您會使用以下計算語法:
{PARTITION [field]: {ORDERBY [field]: RANK() }}
PARTITION(選用):指定您要在其上執行計算的列。您可以指定多個欄位,但是如果您要使用整個表,請省略此部分的函數,Tableau Prep 就會將所有列視為分區。例如,
{ORDERBY [Sales] : RANK() }
。ORDERBY(必要):指定您要用來產生順序序列的一或多個欄位。
Rank ()(必要):指定您要計算的順序類型或 ROW_NUMBER ()。Tableau Prep 支援 RANK()、RANK_DENSE()、RANK_MODIFIED()、RANK_PERCENTILE() 和 ROW_NUMBER() 函數。
DESC 或 ASC(選用):代表遞減 (DESC) 或遞增 (ASC) 順序。預設情況下,順序會以遞減方式排序,因此您不需要在運算式中加以指定。如果您想要變更排序順序,請將 ASC 新增到運算式中。
您也可以將這兩個選項都加到函數中。例如,如果您想要取得選定列的順序,但是希望先以遞增順序將這些列排序,再以遞減順序套用順序,您就可以在運算式中加上這兩種選項。例如:
{PARTITION [Country], [State]: {ORDERBY [Sales] ASC,[Customer Name] DESC: RANK() }}
使用此功能時,需要滿足以下要求:
- RANK () 函數內的巢狀運算式不受支援。例如,
[Sales]/{PARTITION [Country]: {ORDERBY [Sales]: RANK() }} / SUM( [Profit] )}
不受支援。 - 不支援將 RANK () 函數結合其他運算式。例如,
[Sales]/{PARTITION [Country]: {ORDERBY [Sales]: RANK() }}
不受支援。
支援的分析函數
函數 | 說明 | 結果 |
---|---|---|
RANK () | 對每個列指派一個整數順序(從 1 開始),以遞增或遞減順序排列。如果列具有相同值,就會共用指派給該值第一個執行個體的順序。系統會在計算下一個列的順序時新增具有相同順序的列數,因此您可能不會取得連續的順序值。 範例計算: | |
RANK_DENSE() | 對每個列指派一個整數順序(從 1 開始),以遞增或遞減順序排列。如果列具有相同值,就會共用指派給該值第一個執行個體的順序,但是不會略過任何順序值,因此您會看到連續的順序值。 範例計算: | |
RANK_MODIFIED() | 對每個列指派一個整數順序(從 1 開始),以遞增或遞減順序排列。如果列具有相同值,就會共用指派給該值最後一個執行個體的順序。Rank_Modified 會計算為 範例計算: | |
RANK_PERCENTILE() | 對每個列指派一個百分位順序(從 0 到 1),以遞增或遞減順序排列。RANK_PERCENTILE 會計算為 範例計算: 附註:若出現計算結果相等的情況,Tableau Prep 會將 Rank 向下四捨五入,類似於 SQL 中的 PERCENT_RANK()。 | |
ROW_NUMBER() | 對每個唯一列指派一個循序列 ID。沒有略過任何列數字值。如果您有重複的列且使用此計算,則列的順序有所變更時,您的結果可能會隨著您每次執行流程而變更。 範例計算: |
以下範例比較了套用於同一資料集的上述每個函數。
建立順序或列數計算
若要建立 Rank 或 Row_Number 計算,您可以使用「計算」編輯器自行編寫計算;如果您想要享有更具引導式的體驗,則可以使用選擇欄位所在的「視覺化計算」編輯器,Tableau Prep 會為您編寫計算。
附註:視覺化計算編輯器中無法使用 ROW_NUMBER () 計算。
「計算」編輯器
使用「計算」編輯器可建立任何受支援的 RANK () 或 ROW_NUMBER() 計算。受支援的分析計算清單顯示於「分析」下方之「參考」下拉式方塊的「計算」編輯器中。
在「設定檔」窗格工具列中按一下「建立計算欄位」,或是在設定檔卡片或資料網格中按一下「更多選項」功能表,然後選取「建立計算欄位」>「自訂計算」。
在「計算」編輯器中,輸入您的計算名稱,然後輸入運算式。
例如,若要尋找最新的客戶訂單,請建立如下方所示的計算,然後僅保留順序為數字 1 的客戶訂單列。
範例:使用 ROW_NUMBER 來尋找和移除重複的值。
此範例會使用 Tableau Prep Builder 中設定的 Superstore 範例資料集,透過 ROW_NUMBER 函數尋找和移除欄位「列 ID」確切的重複值。
開啟「樣本 Superstore」流程。
在「流程」窗格中,對於「輸入」步驟「西部訂單」按一下「清除」步驟「重命名州/省」。
在工具列中,按一下「建立計算欄位」。
在「計算」編輯器中,將新欄位命名為「複本(Duplicates)」,並使用
ROW_NUMBER
函數,以透過運算式{PARTITION [Row ID]: {ORDERBY[Row ID]:ROW_NUMBER()}}
將列數新增到欄位「列 ID」中,然後按一下「儲存」。在新的導出欄位中,在欄位值 1 上用滑鼠右鍵按一下或 Cmd + 按一下 (MacOS),然後從功能表中選取「僅保留」。
之前 之後
「視覺化計算」編輯器
就像建立詳細資料層級計算一樣,您可以使用視覺化計算編輯器來建立順序計算。選取您要包含在計算中的欄位,然後選取您要用來排定列順序的欄位以及您要計算的順序類型。結果的預覽會顯示在左側窗格中,以便您同時選擇並檢視選擇結果。
在設定檔卡片或結果窗格中,按一下「更多選項」功能表,然後選取「建立導出欄位」>「順序」。
在「視覺化計算」編輯器中,執行以下動作:
在分組依據區段中,選取要為其計算值的列欄位。這樣會建立計算的「分區」部分。
選取第一個欄位後,按一下加號圖示 將任何其他欄位新增到您的計算中。如果要包含所有列或移除選定欄位,請在「分組依據」區段中,用滑鼠右鍵按一下或 Cmd + 按一下 (MacOS) 欄位的下拉式方塊,然後選取「移除欄位」。
在「排序依據」區段,選取您要用來為新值排定順序的欄位。預設情況下,系統會新增您選取「建立導出欄位」>「順序」功能表選項所在的欄位。
按一下加號 圖示將任何額外的欄位新增至您的計算中,然後選取您的「順序」類型。按一下排序圖示 可將順序從遞減 (DESC) 變更為遞增 (ASC)。
附註:順序值可能會因為指派給欄位的資料類型而有所不同。
在左側窗格的欄位標題中按兩下,然後為您的計算輸入名稱。
按一下「完成」以新增新的計算欄位。在「變更」窗格中,您可以檢視 Tableau Prep Builder 所產生的計算。按一下「編輯」可開啟視覺化計算編輯器以進行任何變更。
計算動態磚
透過建立計算欄位,使用動態磚功能將列分佈到指定數量的貯體中。選取要分佈的欄位以及要使用的群組(動態磚)的數量。還可以選取其他欄位來建立分區,其中動態磚列呈群組分佈。使用計算編輯器手動輸入語法或使用視覺化計算編輯器選取欄位,Tableau Prep 會為您編寫計算。
例如,若您有幾列學生資料,並想查看哪些學生位於前 50% 和後 50% 中,則可以將資料分組為兩個動態磚。
以下範例顯示了兩個群組,分別對應上半部分和下半部分的學生分數。此方法的語法為:
{ORDERBY [Grade] DESC:NTILE(2)}
還可以建立一個分割,其中每個欄位值都是一個獨立分割,並針對每個分割將資料劃分為群組。
以下範例演示如何為「主體」欄位建立分割。為每個主體建立分割,並為「成績」欄位建立兩個群組(動態磚)。然後將列平均分佈到三個分區的兩個群組中。此方法的語法為:
{PARTITION [Subject]:{ORDERBY [Grade] DESC:NTILE(2)}}
建立動態磚計算建立動態磚計算
若要建立動態磚計算,可以使用計算編輯器自行編寫計算;若想要享有更具引導式的體驗,則可以使用選取欄位所在的視覺化計算編輯器,Tableau Prep 會為您編寫計算。
視覺化計算編輯器
使用視覺化計算編輯器建立動態磚計算時,結果的預覽會顯示在左側窗格中。
選取設定檔卡,以建立動態磚計算。
按一下更多選項功能表,並選取建立計算欄位 > 動態磚。
選定的設定檔卡會新增為 ORDERBY 欄位。
在視覺化計算編輯器中,執行以下動作:
選取所需的動態磚分組數。動態磚的預設值為 1。
在分組依據區段中,選取要為其計算值的列欄位。這樣會建立計算的
PARTITION
部分。您可以在單一計算中使用多個分組依據欄位。按一下加號 圖示,在計算中新增任意附加欄位。 如果要包含所有列或移除選定欄位,請在分組依據區段中,用滑鼠右鍵按一下或 Cmd + 按一下 (MacOS) 欄位的下拉式方塊,然後選取移除欄位。
在左側窗格的欄位標題中按兩下,然後為計算輸入名稱。
在排序依據區段中,選取一個或多個要用於分組和分佈新值的欄位。必須至少有一個排序依據欄位。預設情況下,系統會新增選取建立計算欄位 > 動態磚功能表選項所在的欄位。
要對結果進行排序,請執行以下操作:
按一下任何計算列以篩選所選分組的結果
變更排序依據欄位的遞增或遞減順序。
按一下完成以新增新的計算欄位。
在變更窗格中,可以查看 Tableau Prep Builder 所產生的計算。按一下編輯可開啟視覺化計算編輯器,以進行任何變更。
以下範例顯示了列的四分位數劃分。分區基於四個美國地區建立,然後將銷售欄位資料平均地分組到這些分區中。
計算編輯器
在設定檔窗格工具列中按一下「建立計算欄位」,或在設定檔卡或資料網格中按一下更多選項功能表,然後選取建立計算欄位 > 自訂計算。
在計算編輯器中,輸入計算名稱,然後輸入運算式。例如,要將學生列按分數排序並分為兩組,然後按學科進行分組,請使用:
{PARTITION [Subject]:{ORDERBY [Grade] DESC:NTILE(2)}}
.動態磚計算包括以下元素:
PARTITION(可選):分區子句將結果集的列區分為使用 NTILE() 函數的分區。
ORDERBY(必要):ORDER BY 子句定義使用 NTILE() 的每個分區中的列分佈。
NTILE(必需):NTILE 是劃分列的整數。
附註:所有列可以被 NTILE 子句整除時,該功能會按動態磚數平均劃分列。列數不能被 NTILE 子句整除時,結果組會被劃分不同大小的資料桶。
DESC 或 ASC(選用):代表遞減 (DESC) 或遞增 (ASC) 順序。預設情況下,動態磚會以遞減方式排序,因此不需要在運算式中加以指定。若想變更排序順序,請將 ASC 新增到運算式中。
按一下儲存。
產生的欄位會顯示與資料表中每一列相關聯的動態磚分組(資料桶)指派。