Tableau 函數 | 日期 Dates
參考文章:Tableau Deep Dive: Dates - Introduction to Dates
日期的用處,以及常見在哪?
1 統計同比、環比
2 非常規顆粒度的統計,比如雙周、百天2 如何切換需要的時間顆粒度3 非標準日期時間格式的讀取
日期很重要,玩法很多,有的時候也很糾結
什麼情況下需要日期欄位?
Line chart
Area graph一切表計算,比如 YoY YTD
這系列希望能找到一些答案!
Note:
思路源自interworks的系列blog,但又不僅限於該篇,會加入自己的一些思路與想法(畢竟國外和國內的使用環境完全不同),以及認為原文沒涉及到的內容
快速介紹
包含日期欄位的數據,為什麼導入到Tableau能被自動識別?來做個測試
使用Windows的記事本編輯如下
注意,使用Tab分隔
這7個欄位對應7種情況,分別是
在記事本中全選,複製,打開Tableau,選擇數據,粘貼
注意,如果複製不成功,是沒有數據這一菜單的,如下執行粘貼後,經過短暫計算,就已經可以看到這幾個欄位了其中時間1、時間2、時間3自動識別日期格式
時間4識別為日期和時間格式
其餘的僅僅識別為Abc,即字元串
看如下的圖表就可以看出區別:
在視圖中是這樣的:初步可以得出結論,想要tableau兼容日期欄位的格式使用標準時間分割格式
不能使用中文
Tableau對ISO標準的時間會給予識別,這篇里介紹過標準格式,函數從時間說起
另外,符合國際標準是一定要填補完全的
如下,如果使用斜杠分割,但是數據並沒有補充完全,僅有年和月,同樣是不能被tableau識別的
日期欄位分類
在上一節中看到了,被tableau識別的格式也有兩種
日期和時間 (2017/2/14 19:08:00)
日期 (2017/2/14)
簡單說,顆粒度具體到小時、分鐘、秒的數據,才算是時間(Time)
所以,二者,不能混合使用
但是,二者可以互相轉換
日期是僅含有年、月、日
日期和時間,是含有年、月、日、小時、分鐘、秒不存在單獨的時間欄位
日期分層結構
日期類欄位左鍵拖拽視圖中,默認為年
如果通過右鍵拖拽是會彈出窗口進行選擇的,如圖
通過點擊左側加號可以下鑽到更低詳細級別
當然了,請注意,連續和非連續的結果不一樣的
先來看非連續的藍色,離散欄位
點開後,更詳細級別的欄位會變為第二個欄位,出現在右側在點開,會以此類推
直到最低層也可以將中間不需要的層級移除或者通過右鍵去切換某個層級到特定的層級切換為周數的結果如下下面來看看綠色連續欄位的區別:
首先,欄位為綠色
同樣點擊左側加號後,連續欄位變化有兩個
顆粒度變細
並沒有增加一個欄位,而是原本的年欄位,變為季度
繼續展開,繼續詳細層級變深
日期函數
處於行上的欄位,我們雙擊進去看一下
可以看出,周欄位,是針對Order Date做DATEPART的轉換所得
年欄位,同樣是
可見,欄位的底層都是函數組成的計算欄位在講表計算的時候就聊過,表計算的底層實現都是依託於表計算函數
同樣,日期的很多操作,底層也是依託日期類函數,比如剛剛涉及到的DATEPART()
看看日期相關函數有哪些:
還有在類型轉換組中的幾個與時間有關的函數:
還是按照提問與回答的方式來推進劇情日期信息讀取:Now(),Today()
日期間計算:Datediff(),Max().Dateadd()日期處理:Dateparse(),日期類型轉換:Makedate(),Maketime()日期截取:Datetrunc(),Datepart(),Day(),Year()
1 說說日期欄位的特殊性,datepart函數的設計意義
2 既然不同的part可以單獨使用,則就體現了連續與離散的區別3 既然要求每個part都作用很大,則要求格式也嚴格,從欄位的默認屬性來聊聊時間格式4 如果輸入的格式不符合標準怎麼辦,使用 dateparse可以做數據清洗、預處理5 我想要區分周末和非工作日,使用datename 6 我想計算延遲超過3天的數據,使用dateadd 7 我想知道不同部門的延遲時間,使用datediff8 我想在其它的顆粒度聚合數據,使用datetrunc
這幾個問題挪到第二部分寫吧,這幾天太忙寫不下去
更新記錄:
2017-2-16 發布
Peace!
推薦閱讀:
※Tableau | Dashboard Design 1
※Tableau 設計 | 創建分組條形圖
※Tableau 表計算 | 定址方式的區別
※Tableau 儀錶板 | 按這幾項做了 你的儀錶板就不會差 1
TAG:TABLEAU |