上回已經提到過如何用參數來控制排序,這次我們來看一下另一種方式 index()
Index()是在tableau calculation的其中一個函數, 可以用來呈現出所在的row數
甚麼樣的情境下會需要用index()來做排序呢? 讓我們先看一下下面這張圖
但如果我再放一個維度(Segment)而且是放在原本的Sub-Category前面時,排序的結果並沒有變化。
這時候就會讓人產生困惑了,有沒有可能根據每個Segment分別排序Sub-Category的銷售數字呢??
有的,將Segment與Sub-Category 兩個維度建立為Combined Field,再用新的Combined Field取代原本的Sub-Category。
但如果每次都要建立Combined Field有時也不太方便,所以回到我們今天的主題 index(),藉由加入index()也可以解決上面的問題。
首先建立一個Calculated Field,就只放入index()
在Table Calculation的Compute Using選擇Advanced….
在Advanced視窗內將Segment & Sub-Category從左邊Partitioning移到右邊Addressing,
下方Sort處選擇Field並選擇Sum Sales以及Descending(從大到小)
回到Table Calculation,在Restarting every處選擇Segment,這樣才會在每個Segment重新起算排序
完成之後的畫面如下,是不是符合我們想看到的方式呢!!
延伸一下這個部分,如果我們希望能夠只顯示各個Segment中Top 5 Sales的Sub-Category呢?
因此我們可以先將在rows上的index複製到Marks,再將它轉換為連續的數字
這時候就可以把Marks上的index搬移到filter中
最後的畫面就是這樣囉!
留言
張貼留言
歡迎留言討論指教~~