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