建立詳細資料層級、排名和動態磚計算

附註:從版本 2020.4.1 開始,現在可以在 Tableau ServerTableau 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 中使用此功能時,需要滿足以下要求:

  • 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 Name] DESC: RANK() }}

使用此功能時,需要滿足以下要求:

  • RANK () 函數內的巢狀運算式不受支援。例如,[Sales]/{PARTITION [Country]: {ORDERBY [Sales]: RANK() }} / SUM( [Profit] )} 不受支援。
  • 不支援將 RANK () 函數結合其他運算式。例如,[Sales]/{PARTITION [Country]: {ORDERBY [Sales]: RANK() }} 不受支援。

支援的分析函數

函數說明結果
RANK ()

對每個列指派一個整數順序(從 1 開始),以遞增或遞減順序排列。如果列具有相同值,就會共用指派給該值第一個執行個體的順序。系統會在計算下一個列的順序時新增具有相同順序的列數,因此您可能不會取得連續的順序值。

範例計算{ORDERBY [Commission] DESC: RANK()}

RANK_DENSE()

對每個列指派一個整數順序(從 1 開始),以遞增或遞減順序排列。如果列具有相同值,就會共用指派給該值第一個執行個體的順序,但是不會略過任何順序值,因此您會看到連續的順序值。

範例計算{ORDERBY [Commission] DESC: RANK_DENSE()}

RANK_MODIFIED()

對每個列指派一個整數順序(從 1 開始),以遞增或遞減順序排列。如果列具有相同值,就會共用指派給該值最後一個執行個體的順序。Rank_Modified 會計算為 Rank + (Rank + Number of duplicate rows - 1)

範例計算{ORDERBY [Commission] DESC: RANK_MODIFIED()}

RANK_PERCENTILE()

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

範例計算{ORDERBY [Commission] DESC: RANK_PERCENTILE()}

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

ROW_NUMBER()

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

範例計算{ORDERBY [Commission] DESC: ROW_NUMBER()}

以下範例比較了套用於同一資料集的上述每個函數。

建立順序或列數計算

若要建立 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. 在「計算」編輯器中,將新欄位命名為「複本(Duplicates)」,並使用 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 所產生的計算。按一下「編輯」可開啟視覺化計算編輯器以進行任何變更。

計算動態磚

透過建立計算欄位,使用動態磚功能將列分佈到指定數量的貯體中。選取要分佈的欄位以及要使用的群組(動態磚)的數量。還可以選取其他欄位來建立分區,其中動態磚列呈群組分佈。使用計算編輯器手動輸入語法或使用視覺化計算編輯器選取欄位,Tableau Prep 會為您編寫計算。

例如,若您有幾列學生資料,並想查看哪些學生位於前 50% 和後 50% 中,則可以將資料分組為兩個動態磚。

以下範例顯示了兩個群組,分別對應上半部分和下半部分的學生分數。此方法的語法為:

{ORDERBY [Grade] DESC:NTILE(2)}

還可以建立一個分割,其中每個欄位值都是一個獨立分割,並針對每個分割將資料劃分為群組。

以下範例演示如何為「主體」欄位建立分割。為每個主體建立分割,並為「成績」欄位建立兩個群組(動態磚)。然後將列平均分佈到三個分區的兩個群組中。此方法的語法為:

{PARTITION [Subject]:{ORDERBY [Grade] DESC:NTILE(2)}}

建立動態磚計算建立動態磚計算

若要建立動態磚計算,可以使用計算編輯器自行編寫計算;若想要享有更具引導式的體驗,則可以使用選取欄位所在的視覺化計算編輯器,Tableau Prep 會為您編寫計算。

視覺化計算編輯器

使用視覺化計算編輯器建立動態磚計算時,結果的預覽會顯示在左側窗格中。

  1. 選取設定檔卡,以建立動態磚計算。

  2. 按一下更多選項功能表,並選取建立計算欄位 > 動態磚

    選定的設定檔卡會新增為 ORDERBY 欄位。

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

    • 選取所需的動態磚分組數。動態磚的預設值為 1。

    • 分組依據區段中,選取要為其計算值的列欄位。這樣會建立計算的 PARTITION 部分。您可以在單一計算中使用多個分組依據欄位。

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

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

    • 排序依據區段中,選取一個或多個要用於分組和分佈新值的欄位。必須至少有一個排序依據欄位。預設情況下,系統會新增選取建立計算欄位 > 動態磚功能表選項所在的欄位。

  4. 要對結果進行排序,請執行以下操作:

    • 按一下任何計算列以篩選所選分組的結果

    • 變更排序依據欄位的遞增或遞減順序。

  5. 按一下完成以新增新的計算欄位。

  6. 變更窗格中,可以查看 Tableau Prep Builder 所產生的計算。按一下編輯可開啟視覺化計算編輯器,以進行任何變更。

    以下範例顯示了列的四分位數劃分。分區基於四個美國地區建立,然後將銷售欄位資料平均地分組到這些分區中。

計算編輯器

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

  2. 在計算編輯器中,輸入計算名稱,然後輸入運算式。例如,要將學生列按分數排序並分為兩組,然後按學科進行分組,請使用:{PARTITION [Subject]:{ORDERBY [Grade] DESC:NTILE(2)}} .

    動態磚計算包括以下元素: 

    • PARTITION(可選):分區子句將結果集的列區分為使用 NTILE() 函數的分區。

    • ORDERBY(必要):ORDER BY 子句定義使用 NTILE() 的每個分區中的列分佈。

    • NTILE(必需):NTILE 是劃分列的整數。

      附註:所有列可以被 NTILE 子句整除時,該功能會按動態磚數平均劃分列。列數不能被 NTILE 子句整除時,結果組會被劃分不同大小的資料桶。

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

  3. 按一下儲存

    產生的欄位會顯示與資料表中每一列相關聯的動態磚分組(資料桶)指派。

感謝您的意見反應!已成功提交您的意見回饋。謝謝!