美文网首页
Power Query / M 日期表

Power Query / M 日期表

作者: PowerBI战友联盟 | 来源:发表于2017-11-10 16:09 被阅读421次

    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
        周几名称
    

    相关文章

      网友评论

          本文标题:Power Query / M 日期表

          本文链接:https://www.haomeiwen.com/subject/mvpbmxtx.html