Power Query / M 日期表

2017-11-10  本文已影响421人  PowerBI战友联盟

M代码如下:


_create_calendar

( optional begin_year, optional end_year )=>
let
    y1 = if begin_year <> null then begin_year else if end_year <> null then end_year else Date.Year( DateTime.LocalNow() ) ,
    y2 = if end_year <> null then end_year else if begin_year <> null then begin_year else Date.Year( DateTime.LocalNow() ) ,
    tbCalendarSetting = { Number.From ( #date( Number.From( y1),1,1)) ..  Number.From( #date( Number.From( y2 ) , 12, 31 )) },
    转换为表 = Table.FromList(tbCalendarSetting, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    重命名的列 = Table.RenameColumns(转换为表,{{"Column1", "日期"}}),
    更改的类型 = Table.TransformColumnTypes(重命名的列,{{"日期", type date}}),
    插入的年份 = Table.AddColumn(更改的类型, "YearID", each Date.Year([日期]), type number),
    插入的季度 = Table.AddColumn(插入的年份, "QuarterID", each Date.QuarterOfYear([日期]), type number),
    插入的月份 = Table.AddColumn(插入的季度, "MonthID", each Date.Month([日期]), type number),
    插入的每年的某一周 = Table.AddColumn(插入的月份, "WeekOfYearID", each Date.WeekOfYear([日期]), type number),
    插入的某一日 = Table.AddColumn(插入的每年的某一周, "DayID", each Date.Day([日期]), type number),
    #"插入的每周的某一日 " = Table.AddColumn(插入的某一日, "DayOfWeekID", each Date.DayOfWeek([日期],1), type number),
    年份名称 = Table.AddColumn(#"插入的每周的某一日 ", "年份", each "Y" & Text.From([YearID]) ),
    季度名称 = Table.AddColumn(年份名称, "季度", each "Q"&Text.From([QuarterID])),
    月份名称 = Table.AddColumn(季度名称, "月份", each Date.MonthName([日期]) ),
    年周名称 = Table.AddColumn(月份名称, "年第几周", each "W" & Text.From( [WeekOfYearID] )),
    月日名称 = Table.AddColumn(年周名称, "月第几日", each "D" & Text.From( [DayID] )),
    周几名称 = Table.AddColumn(月日名称, "周几", each Date.DayOfWeekName( [日期] ))
in
    周几名称
上一篇下一篇

猜你喜欢

热点阅读