日期维度是数据分析中非常重要的一个维度,把各种生产经营数据放在不同的日期时长维度上看趋势、变化、差异及波动是常用的一种分析手段。虽然在Power BI中我们可以从原始数据中提取、转换和清理一张日期数据表,但远不如根据原始数据的取值区间自主生成一张干净的日期表来的方便。以下就介绍一下通过新建查询的方式来生成一张定制化日期表的过程。
首先,我们打开Power BI,选择新建空白查询:
然后,在打开的空白查询界面中,选择高级编辑器:
在高级编辑器界面中,把里面的原始代码提示清除,然后把以下代码粘贴到查询框中(原始代码在文章末尾):
点击"已完成",就会生成一个新的查询并显示起始日期设置参数框:
这时首先要把左侧的"查询1"修改并保存为一个更加友好的名字,然后在对话框中输入所需要的起始日期,并点击"调用"。这样我们就生成了一张自定义的日期数据表。
上面高级编辑器界面中所粘贴的M代码如下,可以复制粘贴保存留用:
//Create Date Dimension
(StartDate as date, EndDate as date)=>
let
//Capture the date range from the parameters
StartDate = #date(Date.Year(StartDate), Date.Month(StartDate),
Date.Day(StartDate)),
EndDate = #date(Date.Year(EndDate), Date.Month(EndDate),
Date.Day(EndDate)),
//Get the number of dates that will be required for the table
GetDateCount = Duration.Days(EndDate - StartDate),
//Take the count of dates and turn it into a list of dates
GetDateList = List.Dates(StartDate, GetDateCount,
#duration(1,0,0,0)),
//Convert the list into a table
DateListToTable = Table.FromList(GetDateList,
Splitter.SplitByNothing(), {"Date"}, null, ExtraValues.Error),
//Create various date attributes from the date column
//Add Year Column
YearNumber = Table.AddColumn(DateListToTable, "Year",
each Date.Year([Date])),
//Add Quarter Column
QuarterNumber = Table.AddColumn(YearNumber , "Quarter",
each "Q" & Number.ToText(Date.QuarterOfYear([Date]))),
//Add Week Number Column
WeekNumber= Table.AddColumn(QuarterNumber , "Week Number",
each Date.WeekOfYear([Date])),
//Add Month Number Column
MonthNumber = Table.AddColumn(WeekNumber, "Month Number",
each Date.Month([Date])),
//Add Month Name Column
MonthName = Table.AddColumn(MonthNumber , "Month",
each Date.ToText([Date],"MMMM")),
//Add Day of Week Column
DayOfWeek = Table.AddColumn(MonthName , "Day of Week",
each Date.ToText([Date],"dddd"))
in
DayOfWeek
End. 作者:王厚东-客户体验与数据分析 来源:微博 本文均已和作者授权 如转载请与作者联系
- 我的微信公众号
- 微信扫一扫
- 我的微信公众号
- 微信扫一扫
评论