上次修改日期 : 20 Jul 2023
環境
Tableau Desktop答案
藉由使用 IF / THEN 陳述式,僅傳回某些特定維度值的度量,以建立邏輯計算。維度值可為硬式編碼的形式,或使用參數或集合動態定義。以下指示皆從工作簿中的「原始」工作表開始,該工作簿可透過本文的右側窗格下載。建立「原始」工作表的指示和所有變化的示範也包含在工作簿中。
變化 1: 將維度值變成硬式編碼
- 選擇「分析」>「創建計算欄位」
- 在打開的「計算欄位」對話框中,執行以下作業,然後按一下「確定」:
- 命名此計算欄位。在此範例中,導出欄位命名為「銷售標籤(變化 1)」
- 在公式欄位中,建立一個類似如下的計算:
IF DATEPART('year', [Order Date]) = 2019
THEN [Sales]
END
如果 [訂單日期] 為 2019 年的日期,上述計算就會傳回度量 [銷售額]。否則該計算將傳回 NULL。您可以在「END」前面加入「ELSE 0」以傳回零,而非 NULL。
您也可以使用 [Order Date] = #1/1/2019# 等其他條件篩選特定日期,或使用 [Segment] = "Consumer" 篩選特定文字值。重要的是要確保等號後面的值與維度的資料類型相同。
- 將「標籤」上的 [銷售額] 取代為 [銷售標籤(變化 1)]
變化 2: 使用參數
- 選擇「分析」>「創建計算欄位」
- 在打開的「計算欄位」對話框中,執行以下作業,然後按一下「確定」:
- 命名此計算欄位。在此範例中,導出欄位命名為「訂單日期年份」
- 在公式欄位中,建立一個類似如下的計算:
DATEPART('year', [Order Date])
步驟 1 和 2 會建立僅包含 [訂單日期] 的年份日期作為整數值的欄位。[訂單日期年份] 欄位可讓您輕鬆建立參數,但並非必要項目
- 在資料窗格中,以滑鼠右鍵按一下 [訂單日期年份] 欄位,然後選取「建立」>「參數…」
- 在「建立參數」對話方塊中,執行下列操作,然後按一下「確定」
- 在「名稱」文字方塊中,鍵入名稱。在此範例中,我將該參數稱為「選取年份」
- 在「屬性」下的「資料類型」清單中,選取「整數」
- 在「允許的值」下,選取「清單」
- 在「顯示格式」下拉式功能表中,選取「數字(自訂)」,並將格式設定為 0 個小數位數,然後取消勾選包含千位分隔符號
- 從 Tableau Desktop 2020.1 開始,只要在「工作簿開啟時」下拉式功能表中選取欄位,參數即可從資料來源中的欄位拉出清單值。
- 在資料窗格中,以滑鼠右鍵按一下 [選取年份],然後選取「顯示參數控制項」
- 使用類似於如下的計算,建立一個名稱與「銷售標籤(變化 2)」相似的導出欄位:
IF DATEPART('year', [Order Date]) = [Parameters].[Select a year]
THEN [Sales]
END
附註: 當參數的名稱和資料來源中其他欄位的名稱相同時,系統會自動新增「[Parameters].」語法。 - 將「標籤」上的 [銷售額] 取代為 [銷售標籤(變化 2)]
變化 3: 使用集合控制項
從 Tableau Desktop 2020.2 開始,系統將可顯示集合控制項,讓最終使用者變更集合中的值。- 選擇「分析」>「創建計算欄位」
- 在打開的「計算欄位」對話框中,執行以下作業,然後按一下「確定」:
- 命名此計算欄位。在此範例中,導出欄位命名為「訂單日期年份」
- 在公式欄位中,建立一個類似如下的計算:
DATEPART('year', [Order Date])
- 以滑鼠右鍵按一下 [訂單日期年份] ,然後選取「轉換為維度」
步驟 1-3 會建立僅包含 [訂單日期] 的年份日期作為整數值的維度。需要使用 [訂單日期年份] 欄位才能製作年份的集合,因為集合必須根據資料來源中的欄位建立。 - 在資料窗格中,以滑鼠右鍵按一下 [訂單日期年份] 欄位,然後選取「建立」>「集合…」
- 為集合命名,然後按一下「確定」。在此範例中,集合命名為「選取集合」
- 使用類似於如下的計算,建立一個名稱與「銷售標籤(變化 3)」相似的導出欄位:
IF [Select a year]
THEN [Sales]
END
如果 [訂單日期] 為使用者所選年份的日期,上述計算就會傳回度量 [銷售額]。否則該計算將傳回 NULL。您可以在「END」前面加入「ELSE 0」以傳回零,而非 NULL。
集合為「布林值」欄位,會傳回 TRUE 或 FALSE。因此,集合本身即為完整的條件。 - 將「標籤」上的 [銷售額] 取代為 [銷售標籤(變化 3)]
- 在資料窗格中,以滑鼠右鍵按一下 [選取年份],然後勾選「顯示集合」
其他資訊
參數與集合的比較
- 參數只能包含一個值,但集合控制項允許多重選取。
- 參數可包含任何任意值,而集合一律繫結至資料來源中的欄位。不過這些欄位值皆可重新設定別名。
- 參數可用於在沒有關聯的資料來源中進行篩選。請參閱使用參數在多個資料來源中進行篩選。集合只有在資料來源之間設定關聯時,才能在資料來源中進行篩選。請參閱在多個資料來源中篩選資料。
- 參數可用於儀表板的文字物件或標題中,而集合(或使用集合的導出欄位)是資料來源的一部份,因此只能用於工作表元素中。
- 將新的資料帶入資料來源後,集合一律會更新。參數則可透過設定帶入新的資料。 請參閱建立參數中的步驟 5。
此解決方法可以巢狀方式置於其他計算中。例如,可以包含在如下的詳細層級 (LOD) 計算中:
{INCLUDE [Dimension]: SUM(IF [Dimension] = 'FilterValue' THEN [Non-Aggregated Measure] END)}
感謝您針對本文的效益提供意見回饋。
開啟新案例
繼續搜尋
知識庫
社群
產品說明
訓練及教學課程