160_技巧_Power BI 新函数-计算工作日天数

160_技巧_Power BI 新函数-计算工作日天数

一、背景

Power BI 2022 年 7 月 14 日更新了最新版本的,版本号为:2.107.683.0 。

更多更新内容可以查看官方博客:https://powerbi.microsoft.com/zh-cn/blog/power-bi-july-2022-feature-summary/

今天我们重点看一下更新的新函数:NETWORKDAYS ,返回两个日期(含)之间的整个工作日天数;其中参数可以指定周末及假期表;周末和节假日将不被视为工作日。

官方文档地址:https://docs.microsoft.com/zh-cn/dax/networkdays-dax

二、DEMO实践

我们来看下实际效果。

Power BI 公共 web 效果:https://demo.jiaopengzi.com/pbi/160-full.html

160_技巧_Power BI 新函数-计算工作日天数

1、现有写法

_NETWORKDAYS_NOT_NEW =  /* 现有写法 [C03_WeekDay] 中周一为 0 ;周日为 6 。 */  VAR NOT_HOLIDAY =     FILTER ( '01_Calendar', '01_Calendar'[C41_Holiday] = BLANK () ) VAR NOT_WEEKEND =     FILTER ( NOT_HOLIDAY, [C03_WeekDay] <> 5 && [C03_WeekDay] <> 6 ) RETURN     COUNTROWS ( NOT_WEEKEND ) 

2、新函数写法

_NETWORKDAYS_NEW =  /* 新函数写法 表示一周中不包含在 start_date 到 end_date 之间的整个工作日天数中的周末天数。 周末是一个周末数字,用于指定周末发生的时间。 周末数值表示以下周末日: 1:或省略:星期六、星期日 2:星期日、星期一 3:星期一、星期二 4:星期二、星期三 5:星期三、星期四 6:星期四、星期五 7:星期五、星期六 11:仅星期日 12:仅星期一 13:仅星期二 14:仅星期三 15:仅星期四 16:仅星期五 17:仅星期六 */ VAR HOLIDAY =     SUMMARIZE (         FILTER ( ALL ( '01_Calendar' ), '01_Calendar'[C41_Holiday] <> BLANK () ),         [C01_Dates]     ) VAR START_DATE =     STARTOFMONTH ( '01_Calendar'[C01_Dates] ) VAR END_DATE =     ENDOFMONTH ( '01_Calendar'[C01_Dates] ) VAR _NETWORKDAYS =     NETWORKDAYS ( START_DATE, END_DATE, 1, HOLIDAY ) RETURN     _NETWORKDAYS 

三、总结

1、无论新函数的写法,还是不使用新函数写法,都需有前置假期设置。

2、新函数 第三参数的可选值非常多,从 1 到 17 ;可选,分别代表不同的意义,详细见上述代码。

3、新函数中第四参数,即是假期的日期表。

4、从当前的写法来看,有一张合适的日期表(可以参考之前文章:https://jiaopengzi.com/2635.html)可以事半功倍,不使用新函数依然可以完美计算工作日,当然也可以计算假期。

附件下载

https://jiaopengzi.com/2821.html

视频课

https://jiaopengzi.com/all-course

by 焦棚子

发表评论

相关文章