如何在Power BI中生成日期表

王厚东-客户体验与数据分析
王厚东-客户体验与数据分析
王厚东-客户体验与数据分析
13
文章
0
评论
2020-04-1802:05:00 评论 734 1689字
摘要

日期维度是数据分析中非常重要的一个维度,把各种生产经营数据放在不同的日期时长维度上看趋势、变化、差异及波动是常用的一种分析手段。以下就介绍一下通过新建查询的方式来生成一张定制化日期表的过程。

日期维度是数据分析中非常重要的一个维度,把各种生产经营数据放在不同的日期时长维度上看趋势、变化、差异及波动是常用的一种分析手段。虽然在Power BI中我们可以从原始数据中提取、转换和清理一张日期数据表,但远不如根据原始数据的取值区间自主生成一张干净的日期表来的方便。以下就介绍一下通过新建查询的方式来生成一张定制化日期表的过程。

首先,我们打开Power BI,选择新建空白查询:

如何在Power BI中生成日期表

然后,在打开的空白查询界面中,选择高级编辑器:

如何在Power BI中生成日期表

在高级编辑器界面中,把里面的原始代码提示清除,然后把以下代码粘贴到查询框中(原始代码在文章末尾):

如何在Power BI中生成日期表

点击"已完成",就会生成一个新的查询并显示起始日期设置参数框:

如何在Power BI中生成日期表

这时首先要把左侧的"查询1"修改并保存为一个更加友好的名字,然后在对话框中输入所需要的起始日期,并点击"调用"。这样我们就生成了一张自定义的日期数据表。

如何在Power BI中生成日期表

上面高级编辑器界面中所粘贴的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. 作者:王厚东-客户体验与数据分析 来源:微博 本文均已和作者授权 如转载请与作者联系

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: