从微软官网看到NETWORKDAYS函数可以在office365和Excel2021中找到,其它版本是否可以使用需要自行测试。
语法:NETWORKDAYS(开始日期,结束日期,)
第1参、第2参必选,第3参数可选(可以是1个单元格,也可以是一个区域)
假设:2021/10/7的休息需要在2021/10/9来补班,那我们就应该筛选补班为空的,得到法定假日列。如下图所示。国家法定假日和补班一定是国家最权威机构发出来的,任何搜索引擎都能搜到。
Excel公式:
《权威指南》这节课讲的非常好,带着你从计算两个日期间隔天数开始还对同一个度量值提供了不同的写法和极限优化。书上讲的没毛病,感兴趣可以看。由于国内外情况不同,且极限优化也是不是我的菜。我就讲我平时怎么做的。今天我讲的节假日,你可以举一反三,例如你是电商、超市、医院、公交等,你哪来法定节假日?你们牺牲了所有法定节假日为我们提供服务,我就讲讲分析方法来回报你们。有些行业我不懂,但是拿电商打比方,你们经常有活动,比如三八女神节,618狂欢购,双11,双12等等,这些档期都是你们的节日。你们可以利用今天的方法计算这些档期期间的销售。
【1】请到最权威网站下载法定节假日和补休日期
请到官网右上角搜索:
这样得到的节假日安排肯定是正确的,但是可能后期会有调整,以中国政府网为准。
【2】制作法定假日表和补休表
【3】将销售表、假日表、补休表都导入PowerBI
【4】制作日期表
友情提示:因为要用到星期几,按国内规则,这次的动态日期表用 WEEKDAY([Date],2) 从星期一开始算第1天。
【5】为日期表新建列(下面3个公式都是新建列)
:上班=1,休息=0,上了多少天班?
【6】如果想计算两个日期之间的天数
例如:2022/1/1~2022/1/5 工作日天数
返回结果:
当然你也可以写成下面的公式,使用切片器 日期表[Date] 列控制这个度量值
【7】计算节假日销售
【8】指定日期的上一个与下一个工作日
假设我指定2022/1/16星期日,它的上一个工作日是小于2022/1/16的这张表中 是否上班=1 的最大日期
反之,指定日期2022/1/1,它的下一个工作日,是大于这个日期这张表中是否上班=1 的最小日期。
// 度量值写法的原理,
返回结果:
【9】N个工作日之后
例如,你去办理身份证,会被告知7个工作日来取。指定日期N个工作日的计算方法
常识:7个工作日一般是不包含当天的,包含也没事就是将结果加1减1的事
假设你2022年1月5日来办理的身份证,我通知你7个工作日后来取,最快你要2022/1/14日来
计算方法:2022/1/5之后的7个工作日,就是2022/1/5的上班序号,(如果当日是休息日,不可能休息日谁办公呀,但是没关系)就找上一个上班序号+7。(如果是向前就-7)
// 你放心如果是1月1日上面没有数据了,他上班序号默认是0
你也可以选择使用参数表做可视化调整,可以直接在建模菜单下新建参数,但是有些版本可能没有这个按钮。我不习惯也想不起来用。
防止哪天微软一高兴又没了,直接告诉大家公式方法:
根据需求选择你要的表:《DAX神功》第1卷第3回
将参数表的Value放到切片器中,修改一下刚才的度量值
返回结果:
《孙兴华讲PowerBI火力全开》PowerBI必学课程
https://www.bilibili.com/video/BV1qa4y1H7wp
《DAX神功》文字版合集:
https://www.bilibili.com/read/readlist/rl442274
《DAX神功》视频版合集:
https://www.bilibili.com/video/BV1YE411E7p3
《DAX神功番外篇》文字版合集:
https://www.bilibili.com/read/readlist/rl478271
PowerBI(DAX函数)、PowerQuery(M函数)、Python办公自动化、Python爬虫、Python数据分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等