日期的时序性
日期是有顺序的,所以自然而然的两个日期就有先后之分。这就意味着以下几点:
你的数据里一定存在着一个最大和最小日期也就是数据里所保存的最后一个日期和第一个日期。
当你探索任何新的数据,确认这个最大和最小时间几乎是理解数据集的第一步日期的本质是其实是一个数字,你如果把1900年1月1日定义为0,每往后一天就在这个0的基础上+1,那么我们平时所使用的每个日期其实就是一个数字
日期既然像数字一样可以比较大小,日期越大就意味着越往后,日期越小就意味着越往前,那这也就意味着日期可以加加减减。
但是这个加减非常的有技术含量。 大部分关于时间计算的学习都是围绕着如何准确定位一个日期展开的。
绝对日期与相对日期
绝对日期就是 2000年1月1日。这个日期是不变的,无论谁看到这个日期都是2000年1月1日。但是昨天,今年,上个季度这就是一个相对时间。
我们在Tableau的开发过程中,最最常见的就是计算一个相对的时间区间,比如Year to Date, 从当前这一年的第一天到现在, Previous YTD去年的第一天到去年的当天。
相信我你会算这些算到吐。
为什么我建议你不要用Today( )来创建计算
Tableau提供了一个叫做Today( )的函数,today这个函数会返回你当前系统的今天这个日期。 但是至于为什么尽量不要用,你读一下下边这个故事。
‘那是2023年12月1号,那是你入职以来的第一个项目,Manager告诉你说我们需要一个dashboard来比较这个月和上个月的销售额。你心想说这还不是小菜一碟,于是你开始在Tablaeu里创建你的第一个calculation,你信心满满的使用了today( )作为各种计算的起点,各种计算。
一晃时间来到了2024年的一月底,你终于完成了你的第一个dashboard, 在展示会上,Manager问你:我怎么看去年12月份的数据,现在一月份我先不关心。你回答说那也不是这个月啊,1月份才是这个月啊,这时候Manager说:但是我跟你开始那个项目那时候是12月份啊,12月份就是这个月,11月就是上个月啊。如是你恍然大悟,回去连改了50个calculateded field.’
不管客户还是领导有没有提,我总是建议你,牢牢记住在创建自己的Dashboard的时候,留一个能让你自己把时间往前回溯的能力。 不要单纯的全都用today,结果导致丧失了更改相对时间的灵活性。
注意特殊日期
在做任何分析时,都要对数据中的特殊日期保持敏感性。 Public Holiday,Close Day, Public Transport Downtime, Extreme Weather这些因素都会导致你的数据出现异常。而这些异常往往隐藏你的这些数据所对应的日期里。
日期的格式
日期是有各种格式的,但是在这个环节你需要知道的是,日期的格式有时候是通过Tableau给你提供的选项,将一个日期值转换成Tableau支持的格式。 在下边的这个展示当中,你可以看到Tableau提供了很多的日期格式选项。However, but,相信我,就算给了你这么多选项,终究还是会有需要你自己手搓日期格式的时候。这种时候的思路是把日期转换成各种文字 然后再把各个部分拼在一起。比如2024年6月1日, 你需要展示成FY-24 June-01 这种格式就得靠字符来拼出来。
Date Hierarchy 日期层级
日期层级主要是指 年>季度>月>日。 有的同学会问,老师我们为什么不把周放在这个顺序里边?问的非常好,请注意周是一个单独的时间单位,它不在日期的层级里。
为什么周不在日期的这个层级里? 首先层级就要求一年包括了四个季度,每个季度包括了三个月,但是你能保证每一周就一定确定在某个月里么?是不是有一周跨越两个月份的存在,甚至还有一周跨越两个年份的情况? 这就导致一个问题,使用周的各种计算有时候和这个年月日的层级不那么兼容
Calendar View 日历视图
当你的数据拥有时间时,永远记住有一种非常有用的图叫做Calendar View. 我在下边展示了如果快速的创建一个calendar view。 这个calendar view能够让你以最快的速度看出来数据在各个时间段的分布情况。
但是你意味这就完了吗,
在你创建跟时间有关的计算的时候,你都需要使用Calendar View来检查你的时间计算是否正确。我会在Tableau究极课程当中详细解释如何用各种Calendar View,来测试你的Dashboard以确保你闷头创建了一堆calculated field,结果最后这些计算都是错的。