计算power bi中切片器中已选择的两个日期之间的工作日

时间:2021-07-19 15:11:29

标签: powerbi dax powerpivot

我想创建一个度量来计算在切片器中选择的两个日期之间的工作日。目前我可以计算所选日期之间的天数,但不能排除周末。

Days =
/*We get the first and last date from the slicer*/
VAR First = CALCULATE ( MIN ( Date[Date] ), ALLSELECTED ( Date[Date] ) )
VAR Last =  CALCULATE ( MAX ( Date[Date] ), ALLSELECTED ( Date[Date] ) )
/*We calculate the days between the two dates*/
RETURN
    DATEDIFF ( First, Last, DAY )

Photo

1 个答案:

答案 0 :(得分:0)

我建议先在日期表中添加一列 IsWorkingDay。作为 explained here,您可以使用如下列排除周末:

'Date'[IsWorkingDay] = NOT WEEKDAY( 'Date'[Date] ) IN { 1,7 }

其中 1 和 7 分别对应于周日和周六。

一旦有了它,只需counting days where that column is true

作为衡量标准,你可以把它写成

WorkingDaysCount =
COUNTROWS (
    FILTER ( 'Date', 'Date'[IsWorkingDay] = TRUE () )
)

请注意,表 'Date' 应该已经被切片器过滤了,您只是添加了一个额外的条件。如果您有其他需要忽略的过滤器上下文,那么您可能需要使用 ALLSELECTED ( 'Date' ) 而不仅仅是 'Date'