關於學習Tableau中的坑記錄
最近由於工作需要不斷在學習Tableau,因此把學習過程中遇到的坑記錄下來,給自己鞏固的同時也讓別人能少走彎路:
(1)時間數據類型上的坑:
情景一:同樣是選擇時間顆粒,為什麼兩個都樣顯示是周數的但實際結果卻不同



解釋:通過點擊詳細數據可以看出左圖稱為方式一,右圖稱為方式二,方式一中的周選擇方式僅關注周,不帶任何其他訊息,即1996/1/5和1997/1/7會被當成是同樣的"週一"。 而方式二的周選擇方式會包含年的維度,即1996/1/5和1997/1/7會被分開成兩個周。
從函數上來看,方式一的函數是DATEPART(),方式二的函數叫DATETRUNC()
DATEPART() 以整數形式返回指定日期的一部分,該部分由datepart定義。 如果省略start_of_week,則周起始日由為數據源配置的起始日確定。 範例:DATEPART('month',#2004-04-15#)=4
從上述引用訊息看出,該函數直接把周摳出,其他訊息捨棄。
DATETRUNC() 按date_part所指定的準確度截斷指定日期並返回新日期。 如果省略start_of_week,則周起始日由為數據源配置的起始日確定。 範例:DATETRUNC('quarter','#2004-08-15#')= 2004-07-01 12:00:00AM
從上述引用訊息看出,該函數僅是對日期進行重新劃定,保留年月日等訊息。
至此上述兩個函數差異總結完畢。
(2)關於表計算中的橫穿,特定維度中的理解
情景二:在Tableau表計算的時候對選項總是不確定,只能選了之後看結果,然後再驗證,心裏總是有點慌。


點擊特定維度你會發現沒有變化,那麼這個特定維度的選項意義在哪? 思考一下既然這個維度可以選擇特定,那很自然會想到會有一個不特定,不特定就是指隨著一些改動而變化。

通過上圖可見,選擇特定之後改變季度和年的順序,特別地需要注意,在表計算選項卡裡面,"Date 年"和"Date 個季度"是可以調整上下順序的。 當你是預設"表(橫穿)"的時候,你把"季度"改在前面,"年"改在後面的時候,下面相應順序也會自動調過來。

理解了上述區別,就能理解表橫穿和特定維度的區別了~
(3)幾個求和函數的區別-Window_sum,running_sum,total
Window_sum():返回窗口表達式的總和。 視窗定義為與當前行的偏移。 使用FIRST()+n和LAST()-n表示與分區中的第一行或最後一行的偏移。 如果省略了開頭和結尾,則使用整個分區。
使用場景:用於移動平均,移動求和,移動最大值,移動最小值。
running_sum():返回給定表達式從分區中第一行到當前行的運行總計。
使用場景:表計算中的匯總即利用running_sum,需要注意的是running_sum並不能調整計算視窗的大小,即每個值都是從當前行到第一行的匯總合計。
total():組成分區(視圖)的所有數據行的avg(利潤)
從靈活性來看,window_sum可以完整覆蓋running_sum和total()的功能。
(1)window_sum([表達式],first(),0) = running_sum([表達式])
(2)window_sum([表達式],first(),last())=total([表達式])
特別地,windowsum還可以代替vlookup中的位置功能,例如vlookup([表達式],-1) = window_sum([表達式],-1,-1)