上次修改日期 : 07 Jun 2023
環境
- Tableau Desktop
- 多維度 (Cube) 資料來源
答案
選項 1:使用表函數
雖然 Cube 資料來源中的 Tableau 導出欄位無法直接引用維度,但表函數可以引用檢視中的維度成員。例如,INDEX() 可用於引用檢視中維度值的欄/列。或使用 WINDOW_SUM(SUM(1)) 來計算檢視中的成員。附註:此方法要求在檢視中包括在計算中間接引用的所有維度,但是可以進一步修改檢視以隱藏這些維度。請參閱依檢視中未顯示的維度計算表計算
以下說明展示如何使用 2019 年銷售額欄、2018 年銷售額欄以及這兩年之間的百分比差額欄建立交叉資料表檢視。若要檢視實際使用的這些說明(並查看為何此方法可正常運作的其他備註),請從本文的右側窗格中下載工作簿。
- 將「[Order Date]」(訂單日期)拖到「欄」架
- 在「欄」架上,以滑鼠右鍵按一下「YEAR(Order Date)」,並選取「排序…」
- 在「排序」對話方塊中,執行以下操作並關閉對話方塊:
- 針對「排序方式」,請選擇「手動」
- 將「2016 年」移至底部
- 子滑鼠右鍵按一下檢視中的「2017 年」標題,然後選擇「排除」
- 選擇「分析」>「創建計算欄位」
- 在打開的「計算欄位」對話框中,執行以下作業,然後按一下「確定」:
- 命名此計算欄位。在此範例中,導出欄位名稱為「索引」
- 在公式欄位中,建立一個類似如下的計算:
INDEX()
- 將 [索引] 拖曳至標記卡片上的「文字」
- 使用與以下所示類似的計算來建立一個名稱類似於「2018 銷售額 (cube)」的導出欄位:
IF INDEX() = 1
THEN SUM([Sales])
END
- 使用與以下所示類似的計算來建立一個名稱類似於「2019 銷售額 (cube)」的導出欄位:
IF INDEX() = 2
THEN SUM([Sales])
END
- 使用與以下所示類似的計算來建立一個名稱類似於「差額百分比 (cube)」的導出欄位:
IF INDEX() = 3
THEN
(WINDOW_SUM([2018 Sales (cube)])-WINDOW_SUM([2019 Sales (cube)]))
/
WINDOW_SUM([2018 Sales (cube)])
END
- 使用類似於以下內容的計算來建立一個名稱類似於「標題」的導出欄位:
IF INDEX() = 2
THEN '2019 Sales'
ELSEIF INDEX() = 1
THEN '2018 Sales'
ELSEIF INDEX() = 3
THEN '% Diff'
END
- 將 [標題] 拖曳到「欄」架
- 在「欄」架上,以滑鼠右鍵按一下「YEAR(Order Date)」,並取消勾選「顯示標題」
- 在檢視中的「訂單日期/標題」上按一下滑鼠右鍵,然後選擇「隱藏欄的欄位標籤」
- 將 [2018 銷售額 (cube)]、[2019 銷售額 (cube)] 和 [% 差額 (cube)] 拖曳至標記卡片上的「文字」
- 按一下標記卡片上的「文字」然後按一下「…」按鈕
- 在「編輯標籤」對話方塊中,移除在 AGG(2018 Sales (cube))、AGG(2019 Sales (cube)) 和 AGG(% Difference (cube)) 之間的換行符號
選項 2:使用導出成員
若要解決此問題,請改為建立導出成員。有關詳情,請參閱如何建立導出成員。其他資訊
Cube 資料來源會在資料匯入 Tableau Desktop 前,針對指定的維度預先彙總屬性度量值。因此,在計算中使用維度可能會建立不正確的結果。為了表達您支持在日後的產品版本中加入此增強功能,請針對以下社群理念投下您的一票:
討論本文...意見回饋論壇
感謝您針對本文的效益提供意見回饋。
開啟新案例
繼續搜尋
知識庫
社群
產品說明
訓練及教學課程