建立詳細資料層級和順序計算

附註:從版本 2020.4.1 開始,現在可以在 Tableau ServerTableau Online 中建立和編輯流程。除非特別說明,否則本主題中的內容適用於所有平台。有關在 Web 上製作流程的詳情,請參閱 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 中可能尚不支援 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 中使用此功能時,需要滿足以下要求:

  • INCLUDEEXCLUDE LOD 運算式不受支援。
  • 只有在 LOD 運算式內才支援彙總計算。例如,SUM([Sales]) 無效,但是 {FIXED [Region] : SUM([Sales])} 有效。
  • LOD 運算式內的巢狀運算式不受支援。例如,{ FIXED [Region] : AVG( [Sales] ) / SUM( [Profit] )} 不受支援。
  • 不支援將 LOD 運算式與其他運算式合併。例如,[Sales]/{ FIXED [Country / Region]:SUM([Sales])} 不受支援。
  • 建立詳細資料層級 (LOD) 計算

    若要建立詳細資料層級計算,您可以使用「計算」編輯器來自行編寫計算;如果您想要享有更具引導式的體驗,則可以使用可在其中選取欄位的「視覺化計算」編輯器,Tableau Prep 會為您編寫計算。

    「計算」編輯器

    1. 在「設定檔」窗格工具列中按一下「建立導出欄位」,或是在設定檔卡片或資料網格中按一下「更多選項」功能表,然後選取「建立導出欄位」>「自訂計算」

    2. 在「計算」編輯器中,輸入您的計算名稱,然後輸入運算式。

      例如,若要依照城市尋找平均產品出貨天數,請建立如下所示的計算。

    「視覺化計算」編輯器

    從清單中選取欄位,Tableau Prep 會在您進行選擇時為您建立計算。結果的預覽會顯示在左側窗格中,以便您同時選擇並檢視選擇結果。

    1. 在設定檔卡片或結果窗格中,按一下「更多選項」功能表,然後選取「建立導出欄位」>「固定 LOD」

    2. 在「視覺化計算」編輯器中,執行以下動作:

      • 「分組依據」部分,選取您要為其計算值的欄位。預設情況下,系統會新增您選取「建立導出欄位」>「固定 LOD」功能表選項所在欄位。按一下加號 圖示可將任何額外的欄位新增至您的計算中。此內容會填入方程式的左側,也就是 {FIXED [Field1],[Field2] :
      • 「計算依據」區段,選取您要用來計算新值的欄位。接著,請選取您的彙總。此內容會填入方程式的右側,也就是 Aggregation([Field)}

        欄位下方的圖形會顯示值的分佈以及各個值組合的總數。視資料類型而定,此圖形可能會是箱形圖、值範圍或實際值。

        附註:可用的彙總值會因為指派給欄位的資料類型而有所不同。

      • 若要移除欄位,請在「分組依據」部分中,用滑鼠右鍵按一下或 Cntrl + 按一下 (MacOS) 欄位的下拉式方塊,然後選取「移除欄位」

      • 在左側窗格的欄位標題中按兩下,然後為您的計算輸入名稱。
    3. 按一下「完成」即可新增導出欄位。在「變更」窗格中,您可以查看 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() 函數。

  • DESCASC(選用):代表遞減 (DESC) 或遞增 (ASC) 順序。預設情況下,順序會以遞減方式排序,因此您不需要在運算式中加以指定。如果您想要變更排序順序,請將 ASC 新增到運算式中。

    您也可以將這兩個選項都加到函數中。例如,如果您想要取得選定列的順序,但是希望先以遞增順序將這些列排序,再以遞減順序套用順序,您就可以在運算式中加上這兩種選項。例如:{PARTITION [Country], [State]: {ORDERBY [Sales] ASC,[CUSTOMER] 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 + (Rank + Number of duplicate rows - 1)
RANK_PERCENTILE()

對每個列指派一個百分位順序(從 0 到 1),以遞增或遞減順序排列。RANK_PERCENTILE 會計算為 (Rank-1)/(Total rows-1)

附註:若出現計算結果相等的情況,Tableau Prep 會將 Rank 向下四捨五入,類似於 SQL 中的 PERCENT_RANK()。

ROW_NUMBER() 對每個唯一列指派一個循序列 ID。如果您有重複的列且使用此計算,則列的順序有所變更時,您的結果可能會隨著您每次執行流程而變更。

建立順序或列數計算

若要建立 Rank 或 Row_Number 計算,您可以使用「計算」編輯器自行編寫計算;如果您想要享有更具引導式的體驗,則可以使用選擇欄位所在的「視覺化計算」編輯器,Tableau Prep 會為您編寫計算。

附註:視覺化計算編輯器中無法使用 ROW_NUMBER () 計算。

「計算」編輯器

使用「計算」編輯器可建立任何受支援的 RANK () 或 ROW_NUMBER() 計算。受支援的分析計算清單顯示於「分析」下方之「參考」下拉式方塊的「計算」編輯器中。

  1. 在「設定檔」窗格工具列中按一下「建立導出欄位」,或是在設定檔卡片或資料網格中按一下「更多選項」功能表,然後選取「建立導出欄位」>「自訂計算」

  2. 在「計算」編輯器中,輸入您的計算名稱,然後輸入運算式。

    例如,若要尋找最新的客戶訂單,請建立如下方所示的計算,然後僅保留順序為數字 1 的客戶訂單列。

範例:使用 ROW_NUMBER 來尋找和移除重複的值

此範例會使用 Tableau Prep Builder 中設定的 Superstore 範例資料集,透過 ROW_NUMBER 函數尋找和移除欄位「列 ID」確切的重複值。

  1. 開啟「樣本 Superstore」流程。

  2. 在「流程」窗格中,對於「輸入」步驟「西部訂單」按一下「清除」步驟「重命名州/省」

  3. 在工具列中,按一下「建立計算欄位」

  4. 在「計算」編輯器中,使用 ROW_NUMBER 函數,透過運算式 {PARTITION [Row ID]: {ORDERBY[Row ID]:ROW_NUMBER()}} 將列數新增到欄位「列 ID」中,然後按一下「儲存」

  5. 在新的導出欄位中,在欄位值 1 上用滑鼠右鍵按一下或 Cmd + 按一下 (MacOS),然後從功能表中選取「僅保留」

    之前 之後

「視覺化計算」編輯器

就像建立詳細資料層級計算一樣,您可以使用視覺化計算編輯器來建立順序計算。選取您要包含在計算中的欄位,然後選取您要用來排定列順序的欄位以及您要計算的順序類型。結果的預覽會顯示在左側窗格中,以便您同時選擇並檢視選擇結果。

  1. 在設定檔卡片或結果窗格中,按一下「更多選項」功能表,然後選取「建立導出欄位」>「順序」

  2. 在「視覺化計算」編輯器中,執行以下動作:

    • 「分組依據」區段中,選取您要為哪些欄位的列計算值。這樣會建立計算的「分區」部分。

      按一下加號 圖示可將任何額外的欄位新增至您的計算中。如果要包含所有列或移除選定欄位,請在「分組依據」區段中,用滑鼠右鍵按一下或 Cmd + 按一下 (MacOS) 欄位的下拉式方塊,然後選取「移除欄位」

    • 「排序依據」區段,選取您要用來為新值排定順序的欄位。預設情況下,系統會新增您選取「建立導出欄位」>「順序」功能表選項所在的欄位。

      按一下加號 圖示將任何額外的欄位新增至您的計算中,然後選取您的「順序」類型。按一下排序圖示 可將順序從遞減 (DESC) 變更為遞增 (ASC)。

      附註:順序值可能會因為指派給欄位的資料類型而有所不同。

    • 在左側窗格的欄位標題中按兩下,然後為您的計算輸入名稱。

  3. 按一下「完成」即可新增導出欄位。在「變更」窗格中,您可以檢視 Tableau Prep Builder 所產生的計算。按一下「編輯」可開啟視覺化計算編輯器以進行任何變更。

 

感謝您的意見回饋!