Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 电源查询-会计日历445当前月周_Excel_Powerbi_Powerquery_Powerpivot - Fatal编程技术网

Excel 电源查询-会计日历445当前月周

Excel 电源查询-会计日历445当前月周,excel,powerbi,powerquery,powerpivot,Excel,Powerbi,Powerquery,Powerpivot,我正在尝试在Power Query中构建一个会计日历,以便将此日历作为数据流提供给其他部门。在过去,我使用了DAX日历,但这有其共享日历的限制,对吗? 因此,我已经有了日期、会计年度和ISO/会计周信息,使用以下M脚本: let StartDate = #date (2009,1,1), EndDate = #date (2024,12,31), ListOfDates = List.Dates(StartDate, Durati

我正在尝试在Power Query中构建一个会计日历,以便将此日历作为数据流提供给其他部门。在过去,我使用了DAX日历,但这有其共享日历的限制,对吗? 因此,我已经有了日期、会计年度和ISO/会计周信息,使用以下M脚本:

let
    StartDate        = #date (2009,1,1),
    EndDate          = #date (2024,12,31),
    ListOfDates      = List.Dates(StartDate, DurationDays, #duration(1, 0, 0, 0)),
    DurationDays     = Duration.Days (EndDate - StartDate) + 1,
    TableOfDates     = Table.FromList(ListOfDates, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    DateColText      = Table.RenameColumns(TableOfDates,{{"Column1", "Date"}}),
    DateCol          = Table.TransformColumnTypes(DateColText,{{"Date", type date}}),
    WeekdayCol       = Table.AddColumn(DateCol, "Weekday Number", each Date.DayOfWeek([Date], Day.Monday) + 1,Int64.Type),
    #"Inserted Day Name" = Table.AddColumn(WeekdayCol, "Day Name", each Date.DayOfWeekName([Date]), type text),
    IsoWeekYearCol   = Table.AddColumn(#"Inserted Day Name", "Iso Week Year", each Date.Year(Date.AddDays([Date], 4-[Weekday Number])), Int64.Type),
    IsoWeekNrCol     = Table.AddColumn(IsoWeekYearCol, "Iso Week Nummer", each (Duration.Days(Date.AddDays([Date], 4-[Weekday Number]) - #date([Iso Week Year], 1 , 7 - Date.DayOfWeek(#date([Iso Week Year],1,4), Day.Monday)))/7)+1, Int64.Type),
    IsoWeekdayExtCol = Table.AddColumn(IsoWeekNrCol, "Iso Weekday Extended", each Text.From([Iso Week Year]) & "-W" & Text.End("0" &     Text.From([Iso Week Nummer]), 2) & "-"&  Text.From([Weekday Number]))
in
    IsoWeekdayExtCol
但是我现在如何为相应的会计月添加一列,以及为CurrentMonth和CurrentWeek添加一个单独的列


您将如何做到这一点?

要添加带有相应会计月的列,您可以从周数(您已经计算过)中派生出来。由于月份为4-4-5,因此可以从周数预测关联的月份

   #"Added Custom" = Table.AddColumn(IsoWeekdayExtCol, "Fiscal Month", each 
             if List.Contains({1..4},[Iso Week Nummer]) then "January"
        else if List.Contains({5..8},[Iso Week Nummer]) then "February"
        else if List.Contains({9..13},[Iso Week Nummer]) then "March"
        else if List.Contains({14..17},[Iso Week Nummer]) then "April"
        else if List.Contains({18..21},[Iso Week Nummer]) then "May"
        else if List.Contains({22..26},[Iso Week Nummer]) then "June"
        else if List.Contains({27..30},[Iso Week Nummer]) then "July"
        else if List.Contains({31..34},[Iso Week Nummer]) then "August"
        else if List.Contains({35..39},[Iso Week Nummer]) then "September"
        else if List.Contains({40..43},[Iso Week Nummer]) then "October"
        else if List.Contains({44..47},[Iso Week Nummer]) then "November"
        else "December")
我假设你说的CurrentMonth和CurrentWeek指的是一整列,里面都是今天的财政月和今天的财政周

您只需要添加一个查找类型的列,在其中根据今天的日期确定要返回的行。因此:

    #"Added Custom1" = Table.AddColumn(#"Added Custom", "Current Month (fiscal)", each 
        Table.Column(#"Added Custom","Fiscal Month")
            {List.PositionOf(Table.Column(#"Added Custom","Date"),Date.From(DateTime.LocalNow()))}),

    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Current Week (fiscal)", each 
        Table.Column(#"Added Custom","Iso Week Nummer")
            {List.PositionOf(Table.Column(#"Added Custom","Date"),Date.From(DateTime.LocalNow()))})

你的最后一个季度也是445吗?还是会是454?您的财政年度是否在财政年度最后一个月的最后一个星期六结束?或者在距离财政年度最后一个月结束最近的星期六?您财政年度的最后一个月是哪一个月?非常感谢您的支持@RonRosenfeld!这是445年的日历(2020年为446年)。最后一个月是十二月。2020年的终点是2020年1月3日,2021年的终点是2022年1月2日,这非常好!我如何才能将“当前月份(财政)”列更改为布尔值,并将真/假与当前财政年度相结合?@joshua这与你问的问题不同。但是你应该能够通过一个简单的
如果。。然后。。else
语句。一定要同时考虑会计月份和会计年度。您可以修改
当月(财政)
列或创建新列。