分享一个更实用的Power BI日期表
那篇文章主要是介绍如何制作日期表,其中的日期表示例相对简单,和日期相关的维度也不够齐全,根据平时分析的需要,以及星友的反馈,这里再分享一个维度更多也更实用的日期表。
本文不再分别用几种方式来制作,免得你纠结选择哪种方式,直接用DAX来建一个日期表,在PowerBI Desktop中,点击“新建表”,输入以下DAX公式:
日期表 =
----------------------------------------------------------------
--制作日期表的相关参数,可根据需要修改
VAR YearStart = 2019 //起始年度
VAR YearEnd = 2021 //结束年度
VAR WeekNumberType = 2
// WEEKNUM第二个参数类型,控制每周的开始时间,返回此周在一年中的编号
// 1,一周从星期日开始
// 2,一周从星期一开始
VAR WeekDayType = 2
// WEEKDAY第二个参数类型,控制每周的开始时间,返回周几的编号
// 1,一周从星期日 (1) 开始,到星期六 (7) 结束,编号 1 到 7
// 2,一周从星期一 (1) 开始,到星期日 (7) 结束,编号 1 到 7
// 3,一周从星期一 (0) 开始,到星期日 (6) 结束,编号 0 到 6
-----------------------------------------------------------------
RETURN
GENERATE (
CALENDAR( DATE( YearStart , 1 , 1 ) , DATE( YearEnd , 12 , 31 ) ),
VAR Year = YEAR ( [Date] )
VAR Month = MONTH ( [Date] )
VAR Quarter = QUARTER( [Date] )
VAR Day = DAY( [Date] )
VAR YearMonth = Year * 100 + Month
VAR Weekday = WEEKDAY( [Date] , WeekDayType )
VAR WeekOfYear = WEEKNUM( [Date] , WeekNumberType )
RETURN ROW (
"年" , Year ,
"季" , Quarter ,
"月" , Month ,
"日" , Day ,
"年度名称" , "Y" & Year ,
"季度名称" , "Q" & Quarter ,
"年度季度", Year & "Q" & Quarter ,
"年季编号" , ( Year - YearStart )*4 + Quarter,
"月份名称", FORMAT ( [Date], "OOOO" ) ,
"英文月份", FORMAT ( [Date], "MMM" ) ,
"年度月份" , YearMonth ,
"年月编号" , ( Year - YearStart )*12 + Month,
"年度第几日" , INT( [Date] - DATE( Year , 1 , 1 ) + 1 ),
"星期编号" , Weekday ,
"星期名称" , FORMAT( [Date] , "AAAA" ) ,
"星期英文" , FORMAT( [Date] , "DDD" ) ,
"年度第几周" , WeekOfYear ,
"周编号", "W" & RIGHT( 0 & WeekOfYear , 2 ) ,
"年周" , Year & "W" & RIGHT( 0 & WeekOfYear , 2 ) ,
"日期编码" , Year * 10000 + Month * 100 + Day
)
)
就可以得到一张下面的日期表:
当你需要建日期表时,可以直接复制上面的DAX公式制作自己的日期表。
这个日期表有以下几个特点:
1. 可方便的修改日期参数
主要是根据需要修改日期表的起止年度,以及和周相关的参数,一般我们的使用习惯是从周一开始,正常情况下不需要修改周的参数。
2. 便于对月份等文本字段排序
日期表中对月份、季度都添加有数字列,可以更方便的进行按列排序,比如对中文的月份字段进行按列排序:
3. 添加有年月序号和年季序号字段
在之前的文章中,曾使用过年度月份序号(比如:无日期上下文如何计算同比环比?其实很简单),在不适合使用时间智能函数的分析场合,利用这个连续的序号分析十分方便。
4. 提供了中英文的月份和星期字段、以及周相关的字段,满足更多的场景需求。
制作一个顺手的日期表十分重要,根据分析的需要扩展日期表中的相关维度,可以更清晰快捷、以及用更简洁的DAX公式来实现日期相关的分析需求。
这个日期表中的维度不算是最齐全的,但非常实用,足够日常的分析场景使用。如果你还有更个性化的需求,可以在这个日期表的基础上添加相关的列。
帮你从0到1,轻松上手PowerBI
赞 (0)