在 Tableau 中建立詳細層級運算式
詳細層級運算式(也稱為 LOD 運算式)允許您在資料來源層級和視覺效果層級計算值。然而,LOD 運算式讓控制您想要計算的粒度。它們可以在較高細微性層級(包括)、較低細微性層級(排除)或完全獨立層級(固定)執行。
本文介紹可在 Tableau 中使用的 LOD 運算式的類型,何時使用這些運算式,及如何設定它們的格式。
如何建立 LOD 運算式
按照步驟進行操作,瞭解如何在 Tableau 中建立和使用 LOD 運算式。
步驟 1:設定視覺效果
- 開啟 Tableau Desktop 並連線到 [Sample - Superstore] 已儲存資料來源。
- 巡覽到新工作表。
- 從「資料」窗格中,將「區域」拖曳至「欄」架。
- 從「資料」窗格中,將「銷售額」拖曳至「列」架。
將出現一個顯示各區域銷售額總和的橫條圖。
步驟 2:建立 LOD 運算式
也許您還想檢視各區域每個客戶的平均銷售額,而不是各區域所有銷售額的總和。可以使用 LOD 運算式來達到此目的。
- 選取 [分析] > [建立計算欄位]。
- 在開啟的計算編輯器中,執行以下操作:
- 將計算命名為 [Sales Per Customer] (每個客戶的銷售額)。
- 輸入以下 LOD 運算式:
{ INCLUDE [Customer Name] : SUM([Sales]) }
- 完成後,按一下 [確定]。
將新建立的 LOD 運算式將新增到「資料」窗格中。若要詳細瞭解您可使用的 LOD 運算式的類型,請參閱LOD 運算式的類型部分。
步驟 3:在視覺效果中使用 LOD 運算式
- 從「資料」窗格中將「Sales Per Customer」拖曳到「列」架,並將其放在「SUM(Sales)」左側。
- 在 [列] 架上,以右鍵按一下 [Sales Per Customer] (每個客戶的銷售額),並選取 [度量(求和)] > [平均值] 。
您現在既可以看到所有銷售額的總和,也可以看到各區域每個客戶的平均銷售額。例如,您可以看到中部區域的總銷售額約為 500,000 美元,每個客戶的平均銷售額約為 800 USD。
使用快速 LOD 運算式
可以建立 FIXED LOD 運算式,而無需將完整的計算輸入到計算對話方塊中。
有兩種建立快速 LOD 計算的方法。
- 在「資料」窗格中,使用控制鍵點一下並拖曳要彙總的度量到所需的維度欄位上。將出現一個新欄位,其為 FIXED LOD 計算。
彙總運算式中的彙總將來自度量的預設彙總。這通常是 SUM。要變更彙總或以其他方式編輯 LOD,請按滑鼠右鍵新增欄位並編輯計算。
- 或者,在「資料」窗格中選取想要彙總的度量,然後在想要彙總的維度上使用控制鍵點一下。
- 按滑鼠右鍵選取的欄位,然後選取「建立」>「LOD 計算」...
- (可選)在計算編輯器中修改 LOD。
- 選取 OK 。
LOD 運算式語法
{[FIXED | INCLUDE | EXCLUDE] <維度聲明> : <彙總運算式>}
{ }
整個詳細層級運算式括在大括號中。
[FIXED | INCLUDE | EXCLUDE]
左大括號之後的第一個元素是以下定界關鍵字之一:
FIXED
- FIXED 詳細等級 (LOD) 運算式可以使用指定的度量計算值,而不需要參考檢視層級的細節,也就是說,不考慮檢視中的其他度量。
- FIXED 詳細等級運算式還會忽略除上下文篩選器、資料來源篩選器和擷取篩選器之外的所有篩選器。
範例:{ FIXED [Region] : SUM([Sales]) }
請參閱FIXED章節,瞭解 FIXED 詳細層級運算式的詳情以及某些範例 FIXED 詳細層級方案。
INCLUDE
- 除了檢視中的任何維度之外,INCLUDE 詳細層級運算式還將使用指定的維度計算值。
- 在納入不在檢視中的維度時,INCLUDE 詳細層級運算式最有用。
範例:{ INCLUDE [Customer Name] : SUM([Sales]) }
請參閱INCLUDE章節,瞭解 INCLUDE 詳細層級運算式的詳情以及某些範例 INCLUDE 詳細層級方案。
EXCLUDE
- EXCLUDE 詳細層級運算式從運算式中顯式移除維度,即,這些運算式從檢視詳細層級中去除維度。
- 在排除檢視中的維度時,EXCLUDE 詳細層級運算式最有用。
範例:{EXCLUDE [Region]: SUM([Sales])}
請參閱EXCLUDE章節,瞭解 EXCLUDE 詳細等級運算式的詳情以及某些範例 EXCLUDE 詳細等級方案。
表範圍
- 對於表格層級的詳細等級運算式,不需要使用限定關鍵字。有關詳情,請參閱表範圍章節。
<維度聲明>
根據關鍵字指定一或多個維度來設定彙總運算式的範圍。
- FIXED [名稱]
使用逗號分隔多個度量。
[Segment], [Category], [Region]
可以使用任何計算為維度的運算式,包括日期運算式。
{FIXED YEAR([Order Date]) : SUM(Sales)}
彙總年度層級「銷售額」的總和。{INCLUDE DATETRUNC('day', [Order Date]) : AVG(Profit)}
彙總[訂單日期]日期部分被截斷為天的「銷售額」的總和。因為它是 INCLUDE 運算式,所以它將也使用檢視中的維度來彙總值:
附註:建議您在建立維度聲明時將欄位拖到計算編輯器中,而不是鍵入它們。例如,如果您在架上看到 YEAR([Order Date]),然後將其鍵入為維度聲明,則它將與此架上的欄位不相符。但是,如果您將架中的欄位拖到運算式中,那麼它將變為 DATEPART('year', [Order Date]),這將與架上的欄位相符。
將計算儲存到「資料」窗格後,Tableau 無法將計算名稱與其內容相符。例如:
- 建立計算:
MyCalculation = YEAR([Order Date])
- 建立 EXCLUDE 層級的詳細等級運算式
{EXCLUDE YEAR([Order Date]) : SUM(Sales)}
如果在檢視中同時使用這兩種計算,則不會排除 MyCalculation。LOD 不理解 YEAR([Order Date]) 與 MyCalculation 是一樣的。
同樣,如果 EXCLUDE 運算式指定 MyCalculation ({EXCLUDE MyCalculation : SUM(Sales)}
),則不排除 YEAR([訂單日期])。
:(一個冒號)
冒號用於分隔維度聲明與彙總運算式。
<彙總運算式>
彙總運算式是執行的計算。例如,SUM(Sales)
或 AVG(Discount)
。彙總運算式中的計算結果取決於維度聲明和關鍵字。
必須彙總彙總運算式。但是,不支援 ATTR 彙總。它不一定是簡單的彙總,它可以包含計算,包括其他 LOD 運算式:{FIXED [Question] : AVG(IF [Answer] = "Red" THEN 1 ELSE 0 END )}
彙總運算式中不允許表計算。
表範圍的 LOD 僅包含大括號內的彙總運算式,例如 {MIN(Grade)}
。
LOD 運算式的類型
您可以在 Tableau 中建立三種類型的 LOD 運算式:
您也可以將 LOD 運算式的作用範圍限定為表。這種運算式稱為表範圍LOD 運算式。
FIXED
FIXED 詳細層級運算式使用指定的維度計算值,而不引用檢視中的維度。
範例
以下 FIXED 詳細層級運算式計算每個區域的銷售額總和:
{FIXED [Region] : SUM([Sales])}
此詳細層級運算式(名為 [Sales by Region])隨後將放在 [文字] 上以顯示各區域的總銷售額:
檢視的詳細等級是 [區域] 和 [州/省]。但是 FIXED 詳細級別運算式不查看檢視中的維度,僅查看計算中指定的維度(此處為「區域」)。因此,每個區域中各個州/省的值是相同的。有關詳情,請參閱彙總和詳細層級運算式。
如果關鍵字是 INCLUDE 而不是 FIXED,則每個狀態的值將不同。INCLUDE 在計算運算式時使用運算式 ([區域]) 中的維度和檢視 ([ 州/省]) 中的任何其他維度。
INCLUDE
除了檢視中的任何維度之外,INCLUDE 詳細層級運算式還將使用指定的維度計算值。
INCLUDE 可以在資料庫中以精細詳細層級計算,並在檢視中以粗略詳細層級重新彙總時使用。當您在檢視中新增或移除維度時,基於 INCLUDE 詳細層級運算式的欄位將隨之變更。
範例 1
INCLUDE 詳細層級運算式計算每個客戶的總銷售額:
{ INCLUDE [Customer Name] : SUM([Sales]) }
搭配在「列」架上的 LOD,彙總方式為 AVG,而 [區域] 則在「欄」架上,這個檢視顯示每個區域平均客戶銷售額的金額:
範例 2
INCLUDE 詳細層級運算式計算每個縣/市的銷售額總和:
{ INCLUDE [State] : SUM(Sales)}
計算放在 [列] 架上,並以平均值的形式彙總。產生的視覺效果將按縣/市跨類別計算銷售額總和的平均值。
將 [Segment] (細分市場)新增到 [欄] 架並將計算移到 [標籤] 後,LOD 運算式結果將更新。現在您可以看到各個縣/市的平均銷售額總和在類別和細分之間如何變化。
EXCLUDE
EXCLUDE 詳細層級運算式宣告要從檢視詳細層級中忽略的維度。
EXCLUDE 適用於「百分比總計」或「與整體平均值的差異」的情境。它們可與「合計」和「參考線」作比較。
EXCLUDE 不能用於列級運算式(沒有要省略的維度)。他們可以修改檢視層級計算或其他 LOD。
範例 1
以下的 EXCLUDE 詳細層級運算式運算式計算每個月的平均銷售總額,然後排除該月份。
- 首先,為訂單日期的月份/年份建立一個欄位。
- 在「資料」窗格中按滑鼠右鍵「訂單日期」,然後選取「建立」>「建立自訂日期」。
- 從詳細清單中,選取「月/年」。將選取保留為離散。
- 然後,建立名為「按月平均銷售額」的 LOD 運算式:
{EXCLUDE [Order Date (Month / Year)] : AVG({FIXED [Order Date (Month / Year)] : SUM([Sales])})}
請注意,這是一個巢狀詳細層級運算式,亦即位於另一個詳細層級運算式內的詳細層級運算式。
- 接著可以在「列」架上進行臨時計算,將該計算從每個月的銷售總額中扣除:
- 將月份([訂單日期])放在「欄」架上
結果檢視顯示整個四年期間每月實際銷售額與平均每月銷售額之間的差異:
範例 2
建立名為「ExcludeRegion」的詳細層級運算式,從 [銷售額] 的總和中排除 [區域]:
{EXCLUDE [Region]: SUM([Sales])}
請參考以下的檢視,它將銷售額按地區和月份拆分:
將[ExcludeRegion]放在「色彩」欄位上可以將檢視的色彩深淺設定為只顯示每月的總銷售額,而不顯示區域元件:
表範圍
可以在不使用任何定界關鍵字的情況下在表層級定義詳細層級運算式。例如,以下運算式返回整個表的最小(最早)訂單日期:
{MIN([Order Date])}
這相當於沒有維度宣告的 FIXED 詳細層級運算式:
{FIXED : MIN([Order Date])}