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
Powerbi 电源查询-会计月开始日期和结束日期_Powerbi_Powerquery - Fatal编程技术网

Powerbi 电源查询-会计月开始日期和结束日期

Powerbi 电源查询-会计月开始日期和结束日期,powerbi,powerquery,Powerbi,Powerquery,我正在集中精力处理Power Query中生成的会计日历。 我最后的挑战之一是确定我们的财政月的开始和结束日期以及天数。 结构如下: Date Fiscal Month Fiscal Year 28.12.2020 December 2020 29.12.2020 December 2020 30.12.2020 December 2020 31.12.2020 December 2020 01.01.2021 December 2020 02

我正在集中精力处理Power Query中生成的会计日历。 我最后的挑战之一是确定我们的财政月的开始和结束日期以及天数。 结构如下:

Date    Fiscal Month    Fiscal Year
28.12.2020  December    2020
29.12.2020  December    2020
30.12.2020  December    2020
31.12.2020  December    2020
01.01.2021  December    2020
02.01.2021  December    2020
03.01.2021  December    2020
04.01.2021  January     2021
05.01.2021  January     2021
06.01.2021  January     2021
07.01.2021  January     2021
08.01.2021  January     2021
09.01.2021  January     2021
if [Week Number] <= 4 then [Day number]
else if [Week Number] <= 8 then [Day number] - 28
else if [Week Number] <= 13 then [Day number] - 56
else if [Week Number] <= 17 then [Day number] - 91
else if [Week Number] <= 21 then [Day number] - 119
else if [Week Number] <= 26 then [Day number] - 147
else if [Week Number] <= 30 then [Day number] - 182
else if [Week Number] <= 34 then [Day number] - 210
else if [Week Number] <= 39 then [Day number] - 238
else if [Week Number] <= 43 then [Day number] - 273
else if [Week Number] <= 47 then [Day number] - 301
else [Day number] - 329
如何在power query中确定此信息

编辑:添加会计周计算:

if Number.RoundDown((Date.DayOfYear([Date]) - (Date.DayOfWeek([Date], Day.Monday) + 1) + 10) / 7) = 0 then
    Number.RoundDown((Date.DayOfYear(#date(Date.Year([Date]) - 1, 12, 31)) - (Date.DayOfWeek(#date(Date.Year([Date]) - 1, 12, 31), Day.Monday) + 1) + 10) / 7)
   else if (Number.RoundDown((Date.DayOfYear([Date]) - (Date.DayOfWeek([Date], Day.Monday) + 1) + 10) / 7) = 53 and (Date.DayOfWeek(#date(Date.Year([Date]), 12, 31), Day.Monday) + 1 < 4)) then
    1
   else
    Number.RoundDown((Date.DayOfYear([Date]) - (Date.DayOfWeek([Date], Day.Monday) + 1) + 10) / 7)
如果Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date],Day.Monday)+1)+10)/7)=0,则
数字汇总((Date.DayOfYear(#Date.Year([日期])-1,12,31))-(Date.DayOfWeek(#Date.Year([日期]-1,12,31),Day.Monday)+1)+10)/7)
否则,如果(Number.RoundDown((Date.DayOfYear([Date])-(Date.DayOfWeek([Date],Day.Monday)+1)+10)/7)=53和(Date.DayOfWeek(#Date.Day([Date]),12,31),Day.Monday)+1<4),则
1.
其他的
数字汇总((Date.DayOfYear([Date])-(Date.DayOfWeek([Date],Day.Monday)+1)+10)/7)

假设新的会计年度在第一个星期一开始,那么您可以使用和函数检查它何时开始。因此,对于
会计年度
,可以是:

if (Date.WeekOfYear([Date]) > 1
    or Date.DayOfWeek(#date(Date.Year([Date]), 1, 1), Day.Monday) = 0) then   
    Date.Year([Date])
else
    Date.Year([Date]) - 1
类似地,
会计月将是:

if (Date.WeekOfYear([Date]) > 1
    or Date.DayOfWeek(#date(Date.Year([Date]), 1, 1), Day.Monday) = 0) then   
    Date.MonthName([Date])
else
    Date.MonthName(Date.AddMonths([Date], -1))
会计年度的开始日期可以根据1月1日的星期日计算:

#date([Fiscal Year], 1, Number.Mod(7 - Date.DayOfWeek(#date([Fiscal Year], 1, 1), Day.Monday), 7) + 1)
会计年度的结束日期是下一个会计年度开始前一天:

Date.AddDays(#date([Fiscal Year] + 1, 1, Number.Mod(7 - Date.DayOfWeek(#date([Fiscal Year] + 1, 1, 1), Day.Monday), 7) + 1), -1)
根据当前日期和开始日期之间的差值计算天数:

Duration.Days([Date] - [Fiscal Year Start Date]) + 1

如果
周数
是包含会计周数的列的名称,则会计月的日期可以如下计算:

Date    Fiscal Month    Fiscal Year
28.12.2020  December    2020
29.12.2020  December    2020
30.12.2020  December    2020
31.12.2020  December    2020
01.01.2021  December    2020
02.01.2021  December    2020
03.01.2021  December    2020
04.01.2021  January     2021
05.01.2021  January     2021
06.01.2021  January     2021
07.01.2021  January     2021
08.01.2021  January     2021
09.01.2021  January     2021
if [Week Number] <= 4 then [Day number]
else if [Week Number] <= 8 then [Day number] - 28
else if [Week Number] <= 13 then [Day number] - 56
else if [Week Number] <= 17 then [Day number] - 91
else if [Week Number] <= 21 then [Day number] - 119
else if [Week Number] <= 26 then [Day number] - 147
else if [Week Number] <= 30 then [Day number] - 182
else if [Week Number] <= 34 then [Day number] - 210
else if [Week Number] <= 39 then [Day number] - 238
else if [Week Number] <= 43 then [Day number] - 273
else if [Week Number] <= 47 then [Day number] - 301
else [Day number] - 329

如果[周数]谢谢,但请您阅读所有内容好吗?我不是在寻找这个,正如你在标题和帖子本身中看到的那样。我需要一个列作为开始日期,另一个列作为结束日期,最后一个列作为财政月的天数。@joshua我已经添加了它们。嘿,Andrey,谢谢!但我仍然在谈论财政月,而不是财政年度。那么,财政月是如何定义的呢?你的问题中没有提到这一点。使用与天数相同的“如果”,并将适当的天数添加到一年的开始日期。