基于此帖子,我正在建立一个财政日历:
以下Dax生成DAX日历:
Calendar =
VAR BaseCalendar =
CALENDAR ( DATE ( 2016; 1; 1 ); DATE ( 2025; 12; 31 ) )
RETURN
GENERATE (
BaseCalendar;
VAR BaseDate = [Date]
VAR Year =
YEAR ( BaseDate )
VAR MonthNumber =
MONTH ( BaseDate )
VAR WeekNumber =
WEEKNUM ( BaseDate )
VAR FWeek =
WEEKNUM ( BaseDate; 21 )
RETURN
ROW (
"Day"; BaseDate;
"Year"; Year;
"Month Number"; MonthNumber;
"Month"; FORMAT ( BaseDate; "mmmm" );
"Year Month"; FORMAT ( BaseDate; "yyyy-mm" );
"Day of Week"; FORMAT ( BaseDate; "dddd" );
"Day of Week Short"; FORMAT ( BaseDate; "ddd" );
"Week"; WeekNumber;
"Year-Week"; Year & "-" & WeekNumber;
"Fiscal Week"; FWeek;
"Fiscal Month Short"; SWITCH (
TRUE ();
FWeek IN { 1; 2; 3; 4 }; "Jan";
FWeek IN { 5; 6; 7; 8 }; "Feb";
FWeek IN { 9; 10; 11; 12; 13 }; "Mar";
FWeek IN { 14; 15; 16; 17 }; "Apr";
FWeek IN { 18; 19; 20; 21 }; "May";
FWeek IN { 22; 23; 24; 25; 26 }; "Jun";
FWeek IN { 27; 28; 29; 30 }; "Jul";
FWeek IN { 31; 32; 33; 34 }; "Aug";
FWeek IN { 35; 36; 37; 38; 39 }; "Sep";
FWeek IN { 40; 41; 42; 43 }; "Oct";
FWeek IN { 44; 45; 46; 47 }; "Nov";
FWeek IN { 48; 49; 50; 51; 52; 53 }; "Dec"
)
)
现在,我需要有一个列,该列显示每个日期各个会计月份的剩余天数。 我建议我需要第一列,它每月累积工作日。 然后,我需要第二列从相应月份的总和中减去该值。
如何使用上面提供的相同方法将构建内容添加到日历中?
答案 0 :(得分:1)
取决于您定义的工作日。我想是星期一至五 您需要在上面的DAX中添加新列以返回1或0
IsWeekDay = SWITCH(TRUE(), WEEKDAY(Calendar[Date], 2) <= 5, 1, 0)
因此,它将为星期一至星期五返回1,为其他返回0。 接下来为您的月份开始日期添加一列,在此示例中,我使用的是日历月份:
MonthStart = STARTOFMONTH(Calendar[Date])
对于日期为04/04/2020,它将返回日期为01/04/2020
下一个新列应使用EARILER总结工作日
Working Days =
CALCULATE ( SUM('Calendar'[IsWeekDay]),
FILTER (
ALL ( 'Calendar' ),
'Calendar'[Date] >= EARLIER ( 'Calendar'[Date] )
&& EARLIER('Calendar'[MonthStart]) = STARTOFMONTH('Calendar'[Date])
)
)
您必须针对您的会计月份开始日期进行调整