Powerbi 根据月份和年份列计算工作日数-DAX

Powerbi 根据月份和年份列计算工作日数-DAX,powerbi,dax,powerquery,Powerbi,Dax,Powerquery,我有一个像下面这样的专栏,我想提取工作天数(不包括周末-周六和周日,节假日不需要处理) 到目前为止,我只想: Required_Column = Total No of Days in that month - No of weekends in that month 我是Power query和DAX方面的新手,我尝试使用DAX查找各种方法,但找不到任何相关线索 预期产出: Month_Year Required_Column 01-2018 23 (31-8) 02-201

我有一个像下面这样的专栏,我想提取工作天数(不包括周末-周六和周日,节假日不需要处理)

到目前为止,我只想:

Required_Column = Total No of Days in that month - No of weekends in that month

我是Power query和DAX方面的新手,我尝试使用DAX查找各种方法,但找不到任何相关线索

预期产出:

Month_Year   Required_Column
01-2018      23 (31-8)
02-2018      20 (28-8)
03-2018      22 (31-9)
...          ...
...          ...
01-2019      23 (31-8)
02-2019      20 (28-8)

感谢您在这方面的帮助。

尽管建议采用基于日历表的方法,如RADO和StrawberryBush的评论所述,但也可以使用DAX计算列进行此操作

在下面的示例中,我假设MonthYear列包含每个月的第一天

WorkingDays = 
VAR Year = YEAR( [MonthYear] )
VAR Month = MONTH( [MonthYear] )
VAR DatesInMonth = GENERATESERIES( [MonthYear], DATE( Year, Month + 1, 1 ) - 1, 1 )
RETURN SUMX(
    DatesInMonth,
    IF( WEEKDAY( [Value] ) IN { 1, 7 }, 0, 1 )
)

最常见和最有效的解决方案是使用日历表,日历表可以构建在数据库或Power Query中。日历表可以有一个标志“Is Workday”,然后您只需简单地对它们进行计数。是的,目前我只看到日历表或自编函数(在Power Query中)。我希望会有一些Dax公式或函数来做这件事。不过,谢谢你们两位:)这太棒了。我不愿意创建ref表,因为我已经为其他目的创建了一些表,并且担心表将创建的负载。我正在考虑一种DAX方法来减少负载。这符合我的目的。(你知道这可能会有什么缺点吗?就像头像一样——虽然我看不到任何缺点)谢谢你。我不认为有任何缺点是为了计算工作日。然而,从数据建模的角度来看,通常最好有一个日历表,因为时间段是要度量的事实的最常见维度。
WorkingDays = 
VAR Year = YEAR( [MonthYear] )
VAR Month = MONTH( [MonthYear] )
VAR DatesInMonth = GENERATESERIES( [MonthYear], DATE( Year, Month + 1, 1 ) - 1, 1 )
RETURN SUMX(
    DatesInMonth,
    IF( WEEKDAY( [Value] ) IN { 1, 7 }, 0, 1 )
)