您好,登錄后才能下訂單哦!
這年頭假貨泛濫,詳細級別計算(即LOD Expressions)也不例外。
我們知道,Fixed的詳細級別計算是不受維度篩選器控制的,而表計算則受它控制。
?
?
?
當我們用一個表范圍的LOD計算來建一個百分比時,即使篩選器只選擇維度的一個值(Accessories),它也能保持原來的百分比,而表計算的百分比則自動變為百分之百。
% by Table scopped LOD Calcs:
SUM([Sales])/SUM({SUM([Sales])})
?
然而,有時候你會發現Fixed的LOD計算居然也受維度篩選器的控制,這樣的Fixed LOD計算可稱為偽LOD計算。比如下圖,我們用一個Fixed的計算求出隨著時間的變化,三個Category的Sales的平均值:
b
當維度篩選器中只選擇Category的兩個值時,用Fixed LOD計算出的平均值居然會變!為什么會這樣?說好的Fixed LOD計算不受維度篩選器控制呢?
Avg by Fixed:
AVG({ FIXED [Category],YEAR([Order Date]):SUM([Sales])})
?
?
仔細探究一下,我們發現這兒的Fixed LOD計算只是為了求出各Category隨時間變化Sales的平均值而已,不用Fixed LOD 計算,我們一樣可以算出平均值:
Avg by Normal Calcs:
SUM([Sales])/COUNTD([Category])
所以,這兒維度篩選器對平均值起作用就不難理解了。那么,如果我們需要無論怎樣選擇Category,其平均值都維持不變,該如何創建計算字段呢?很顯然,我們需要一個“真正的” Year(Order Date)被Fixed的LOD計算:
Avg by Nested LOD:
{ FIXED YEAR([Order Date]):AVG({ FIXED [Category],YEAR([Order Date]):SUM([Sales])})}
?
這時,當選擇兩個Category或三個Category時,平均值保持不變。
?
?根據嵌入式LOD計算的黃金法則(Golden Rule),當內層是Include計算時,外層Fixed的維度可以傳承到內層,所以上面的計算字段也可改成以下計算式,更為簡潔。
{ FIXED YEAR([Order Date]):AVG({INCLUDE? [Category]:SUM([Sales])})}
?
?
再看另外一個例子。我們建一個以州為單位的地圖,再建一個Fixed的LOD計算:
Category Sales:
{ FIXED [Category]:SUM([Sales])}
?
由于大多數的州都銷售了所有三個Category的產品,所以基本上Category Sales都等于銷售總值2,297,201,將Category Sales的大小用顏色標記出來。
?
然而當我們選擇在Control Filter中去掉Subcategory維度的Accessories時, 南達科他州的Category Sales值會有變化:
為什么?因為南達科他州很特殊,它的Technology Category下只有Accessories一個Subcategory,當我們不選Accessories時,就少了整個Technology這個 Category,所以其Category Sales值當然會有變化。
那么為什么維度篩選器會影響Fixed LOD計算的Category Sales的值呢?因為此處Category Sales也是一個偽 LOD計算!不用Fixed,而用Include和Exclude LOD計算我們一樣可以得到相同的Category Sales的值:
Alternative Category Sales:
IF COUNTD([Category])=1 OR COUNTD([Category])=2
THEN SUM({ INCLUDE [Category]:SUM({ EXCLUDE [State]:SUM([Sales])})})
ELSE SUM({ EXCLUDE [State]:SUM([Sales])})
END
同樣,如果我們希望Subcategory的選擇不影響Category Sales的值,就必須Fix State這個維度,這種嵌入式Fixed LOD計算才真正不受維度篩選器的控制。
Category Sales Fixed State:
{ FIXED [State]:SUM({ FIXED [Category]:SUM([Sales])})}
?
?
LOD詳細級別計算是Tableau所有版本進化過程中最激動人心的演變。自從有了LOD,Tableau才真正從眾多競爭對手中脫穎而出。 LOD讓從前不可能做到的或只有在數據源級別才能解決的復雜計算變得十分簡單。掌握好LOD計算,Tableau水平將有實質性的飛越!
LOD計算是Tableau的重點和難點,需要用離散式思維才能真正理解并掌握。大多數Tableau初學者都會遇到下列問題:
??????????????? (1)很多商業問題不知如何用創建計算字段解決問題。
??????????????? (2)不知何時該用LOD計算,用何種LOD可達到目標。
??????????????? (3)看見別人做的LOD計算,無法理解。
??????????????? (4)覺得自己的Tableau水平遇到了瓶頸,無法突破。
六小時視頻教程《Tableau 高手進階 - 深入了解LOD詳細級別計算》避開枯燥無味的定義、概念和公式,力求用通俗易懂的語言透徹講解LOD計算的本質,并用大量實際案例加以鞏固,讓你建立起系統的LOD思維,在實際工作中不自覺地用LOD計算解決各類商業問題。歡迎到51CTO網站觀看此課程并提出寶貴意見!
課程鏈接:
https://edu.51cto.com/course/20183.html?source=so
?
?
?
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。