知識庫

正在透過 Cube 資料來源使用維度建立導出欄位


發佈時間 : 17 May 2013
上次修改日期 : 07 Jun 2023

問題

如何使用多維度 (Cube) 資料來源中的維度建立導出欄位。

環境

  • Tableau Desktop
  • 多維度 (Cube) 資料來源

答案

選項 1:使用表函數

雖然 Cube 資料來源中的 Tableau 導出欄位無法直接引用維度,但表函數可以引用檢視中的維度成員。例如,INDEX() 可用於引用檢視中維度值的欄/列。或使用 WINDOW_SUM(SUM(1)) 來計算檢視中的成員。

附註:此方法要求在檢視中包括在計算中間接引用的所有維度,但是可以進一步修改檢視以隱藏這些維度。請參閱依檢視中未顯示的維度計算表計算

以下說明展示如何使用 2019 年銷售額欄、2018 年銷售額欄以及這兩年之間的百分比差額欄建立交叉資料表檢視。若要檢視實際使用的這些說明(並查看為何此方法可正常運作的其他備註),請從本文的右側窗格中下載工作簿。
  1. 將「[Order Date]」(訂單日期)拖到「欄」
  2. 在「欄」架上,以滑鼠右鍵按一下「YEAR(Order Date)」,並選取「排序…」
  3. 在「排序」對話方塊中,執行以下操作並關閉對話方塊:
    1. 針對「排序方式」,請選擇「手動」
    2. 將「2016 年」移至底部
  4. 子滑鼠右鍵按一下檢視中的「2017 年」標題,然後選擇「排除」
  5. 選擇「分析」>「創建計算欄位」
  6. 在打開的「計算欄位」對話框中,執行以下作業,然後按一下「確定」
    1. 命名此計算欄位。在此範例中,導出欄位名稱為「索引」
    2. 在公式欄位中,建立一個類似如下的計算:

      INDEX()
  7. 將 [索引] 拖曳至標記卡片上的「文字」
  8. 使用與以下所示類似的計算來建立一個名稱類似於「2018 銷售額 (cube)」的導出欄位:

    IF INDEX() = 1
    THEN SUM([Sales])
    END

     
  9. 使用與以下所示類似的計算來建立一個名稱類似於「2019 銷售額 (cube)」的導出欄位:

    IF INDEX() = 2
    THEN SUM([Sales])
    END

     
  10. 使用與以下所示類似的計算來建立一個名稱類似於「差額百分比 (cube)」的導出欄位:

    IF INDEX() = 3
    THEN
    (WINDOW_SUM([2018 Sales (cube)])-WINDOW_SUM([2019 Sales (cube)]))
    /
    WINDOW_SUM([2018 Sales (cube)])
    END

     
  11. 使用類似於以下內容的計算來建立一個名稱類似於「標題」的導出欄位:

    IF INDEX() = 2
    THEN '2019 Sales'

    ELSEIF INDEX() = 1
    THEN '2018 Sales'

    ELSEIF INDEX() = 3
    THEN '% Diff'

    END

     
  12. 將 [標題] 拖曳到「欄」
  13. 在「欄」架上,以滑鼠右鍵按一下「YEAR(Order Date)」,並取消勾選「顯示標題」
  14. 在檢視中的「訂單日期/標題」上按一下滑鼠右鍵,然後選擇「隱藏欄的欄位標籤」
  15. 將 [2018 銷售額 (cube)]、[2019 銷售額 (cube)] 和 [% 差額 (cube)] 拖曳至標記卡片上的「文字」
  16. 按一下標記卡片上的「文字」然後按一下「…」按鈕
  17. 在「編輯標籤」對話方塊中,移除在 AGG(2018 Sales (cube))、AGG(2019 Sales (cube)) 和 AGG(% Difference (cube)) 之間的換行符號
 

選項 2:使用導出成員

若要解決此問題,請改為建立導出成員。有關詳情,請參閱如何建立導出成員
這篇文章是否解決了問題?