数据分析中的日历时间表
我们在实际分析中,必然会涉及到从时间维度来比较数据:
比如:与去年同期比较、与上个月比较、截至某日当年任务完成了多少?
此时我们都会使用一张标准日历表或者根据业务情况来定制的日历表来作为辅助计算表
日历表生成的方法
那怎么生成这张日历表呢?
一般如果公司有BI数仓,每年都会自动或者人工生成一张表,这样你可以调用。
但是没有的话,就需要我们自己来搞一张出来
一般会有几种方法:
- 利用excel来生成,通过日期函数来编辑
- 利用Power BI的空查询,写M语言来生成一个日期列,然后再利用PQ来添加其他时间字段
- 利用Power BI的新建表,写DAX公式,即可快速生成一张日历表
这里我推荐第三种方式,最大的优点是它可以自动或者人工控制时间区间范围,非常方便
DAX生成日历表的操作
下面就主要介绍一下第三种方法:
第一步:新建表
第二步:写下DAX公式即可
具体的代码+注释:
定制日历表2 = ADDCOLUMNS( /// 该函数是在生成日期表的基础上,进一步创建如下新的时间字段: CALENDAR(DATE(2016,01,01),DATE(2017,12,31)),/// 首先返回一个日期表,此处可以自定义修改时间区间,也可以使用Firstdate和Lastdate来提取业务记录中的实际时间区间,完美解决时间区间调整问题 "年",YEAR([Date]), /// 返回年份列 "季度",ROUNDUP(MONTH([Date])/3,0), /// 返回季度列 "月",MONTH([Date]), /// 返回月份列 "周",WEEKNUM([Date]), /// 返回周列) "年季度",YEAR([Date])&"Q"&ROUNDUP(MONTH([Date])/3,0), /// 返回年季度列 "年月",YEAR([Date])*100 + MONTH([Date]), /// 返回年月 "年周",YEAR([Date])*100 + WEEKNUM([Date]), /// 返回年周 "星期几",WEEKDAY([Date] /// 返回星期几 ))
写在最后
最近一直忙着项目,没怎么更新内容,之后老海会逐步回归更新,希望多多支持老海~