POINT問答 | 日期 Dates
日期有哪些用處?
1 統計同比、環比
2 非常規顆粒度的統計,比如雙周、百天3 切換需要的時間顆粒度4 非標準日期時間格式的讀取
日期很重要,玩法很多,有的時候也很糾結,什麼情況下需要日期欄位?
1 Line chart
2 Area graph3 一切表計算,比如 YoY YTD
本文思路源自interworks的系列blog(傳輸門,點擊查看)但又不僅限於該篇,會加入自己的一些思路與想法(畢竟國外和國內的使用環境完全不同),以及原文沒涉及到的內容。
1
快速介紹
包含日期欄位的數據,為什麼導入到Tableau能被自動識別?來做個測試。使用Windows的記事本編輯如下,注意,使用Tab分隔。
這7個欄位對應7種情況,分別是:
在記事本中全選,複製,打開Tableau,選擇數據,粘貼。
注意,如果複製不成功,是沒有數據這一菜單的,如下
執行粘貼後,經過短暫計算,就已經可以看到這幾個欄位了,其中:
- 時間1、時間2、時間3自動識別日期格式
- 時間4識別為日期和時間格式
- 其餘的僅僅識別為Abc,即字元串
看如下的圖表就可以看出區別:
在視圖中是這樣的:
初步可以得出結論,想要tableau兼容日期欄位的格式:
- 要使用標準時間分割格式
- 不能使用中文
Tableau對ISO標準的時間會給予識別,函數從時間說起(點擊查看)這篇里介紹過標準格式。另外,符合國際標準是一定要填補完全的。
如下,如果使用斜杠分割,但是數據並沒有補充完全,僅有年和月,同樣是不能被tableau識別的。
只有完整的日期1識別成功
2
日期欄位分類
在上一節中看到了,被tableau識別的格式有兩種
1 日期和時間 (2017/2/14 19:08:00)
2 日期 (2017/2/14)
簡單說,顆粒度具體到小時、分鐘、秒的數據,才算是時間(Time)
所以,二者,不能混合使用。但是,二者可以互相轉換。
- 日期是僅含有年、月、日
- 日期和時間,是含有年、月、日、小時、分鐘、秒
- 不存在單獨的時間欄位
3
日期分層結構
日期類欄位左鍵拖拽視圖中,默認為年。
如果通過右鍵拖拽是會彈出窗口進行選擇的,如圖
通過點擊左側加號可以下鑽到更低詳細級別。當然了,請注意,連續和非連續的結果不一樣的。
先來看非連續的藍色,離散欄位。
點開後,更詳細級別的欄位會變為第二個欄位,出現在右側
再點開,會以此類推
直到最低層
也可以將中間不需要的層級移除
或者通過右鍵去切換某個層級到特定的層級
切換為周數的結果如下
下面來看看綠色連續欄位的區別:
首先,欄位為綠色
同樣點擊左側加號後,連續欄位變化有兩個
1 顆粒度變細
2 並沒有增加一個欄位,而是原本的年欄位,變為季度
繼續展開,繼續詳細層級變深
4
日期函數
處於行上的欄位,我們雙擊進去看一下
發現會展開對應的表達式,可以看出,周欄位,是針對Order Date做DATEPART的轉換所得
年欄位,同樣是
可見,欄位的底層都是函數組成的計算欄位。
在講表計算的時候就聊過,表計算的底層實現都是依託於表計算函數。
同樣,日期的很多操作,底層也是依託日期類函數,比如剛剛涉及到的DATEPART()
看看日期相關函數有哪些:
還有在類型轉換組中的幾個與時間有關的函數:
函數大致分類如下,不用記住,大概了解即可,當你在工作中常用後,自然會記住
- 日期信息讀取:Now(),Today()
- 日期間計算:Datediff(),Max().Dateadd()
- 日期處理:Dateparse(),
- 日期類型轉換: Makedate(),Maketime()
- 日期截取:Datetrunc(),Datepart(),Day,Year()
Peace!
更多內容請關注POINT .小數點的微信公眾號:POINT 小數點數據
推薦閱讀:
※民航飛機為什麼不給乘客配備降落傘?
※呵呵,原來暴走漫畫不僅會自刪,還會刪別人的
※做品牌自己掙錢不算什麼,能讓1000名山區綉娘都掙錢才牛逼!
※雅虎2
※為什麼說「每個CEO都要有一顆自媒體的心」?