Tableau 表計算 | 增長對比
今天這個可能會有點繞,本次案例來自 :10 大 Tableau 表計算
先來熟悉數據吧
介紹數據
這是一組股票的數據
Company Name 發行公司名字
Date 收盤日期
Ticker 發行代碼Adj Close 收盤價
* 先忽略 vRef,這是參數值
熟悉數據
使用tableau拖拖拽拽,來熟悉研究欄位之間關係吧
首先是,公司名字然後,日期含3個公司
從2007,至2009的數據
再看,發行代碼
和公司名稱一一對應
Adj close收盤價,是一系列數值,連續度量
數據間的關係
基本了解完畢,來看看數據欄位間的呈現什麼趨勢
第一能想到的就是,收盤價與時間的關係
從2007到2009年間的價格走勢
注意,上圖詳細級別僅僅到日期和價格,並沒有更詳細的信息,所以
該Line Chart代表自動聚合的結果
也就是sum(三家公司總額)
只要如下這個功能開啟,就會自動聚合
那你要問了,如果關閉呢? 如下這樣:
每一個點代表實際的數值
沒有任何聚合
OK,言歸正傳,前面沒有詳細級別,我們拖入公司名的欄位以下鑽到更詳細級別
以顏色區分三隻股票的價格
介紹需求
對於這個圖表,我們只能股價變動趨勢的實際值
而有時,我們更關心的是區間的變化情況
比如這樣,以某一參考點為基準的變化率
這個參考點,一般為買入的日期,以及賣出的日期 這個你懂的!
那麼對應這幅圖表的改造,就需將Y軸的絕對數值,替換為基於基準點的增長率
問題1:如何定位基準點
增長率的計算公式一般為:
當前價格,也就是 Adj Close難點在於找出就是基準點的價格
關於基準點,我們使用參數設定一個可以調整的數值
為方便理解,將初始日期設為數據集的第一條數據這第一天
也就是2007/12/31這一天
定位基準日期的思路是:
只要基準日對應的欄位才會輸出數據
其他非基準日,輸出為null
這類似於這一片:[怎麼玩標記]介紹的,我們使用IF函數來將基準日與非基準日做分類
如上的方式剔除了日期,那麼我們還需要在橫向,也就是公司名稱這個區間做橫穿,以計算Adj的值滿足條件,則為sum[Adj Close]
不滿足則為Null
則需要使用表計算函數Window_MAX
因為已經是最詳細級別,所以MAX = SUM = MIN = AVG
還記得Window函數的作用么
Window是個聚光燈,將聚光燈下的有效範圍做聚合
Window_sum就是求和,Window_avg就是求平均兩個參數就是聚光燈的大小
計算依據就是聚光燈運動的軌跡
最終計算欄位如下:
再來解釋一下
1 Window_sum中的表達式輸出的內容 (即IF表達式)
只有全部日期序列中,與設定參數的日期相同的那一天,所對應的Adj Close才會有數據
其他都設置為空
就是如下圖這樣:
只有4/30這一天又數據,其他日期為空
2 Window_sum函數作用
Window是沿著橫向計算,所以分區即為每一天
基於橫向定址MAX最大的數值
因為只有4/30有效,所以就只有在這一天,才會計算出該分區內的Wiondow_sum
所以,該計算欄位的作用就是
選出基準日的數據
解釋完畢!
這留下一個Question Mark
是不是使用LOD的FIXED函數也可以實現該功能呢?
問題2:如何計算增長率
如上的工作,是終於計算出了基準日期的股價
下一步,根據公式計算增長率
這就算出了,每一天的數據,針對第一天價格的走勢圖
計算欄位如下
因為坐標軸從100%開始計算,所以在公式共增加1
將該增長率計算欄位與時間共同呈現,效果如下:
調整參數日期設置為其他日期,比如2008/11/14,則呈現
以該日為基準點,該日期前以及該日期後的變化情況
更新記錄:
2017-2-4 正月初八 發布
Peace!
推薦閱讀:
TAG:TABLEAU |