前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel公式技巧35: 计算工作日天数

Excel公式技巧35: 计算工作日天数

作者头像
fanjy
发布2020-06-03 09:08:46
1.6K0
发布2020-06-03 09:08:46
举报
文章被收录于专栏:完美Excel完美Excel

本文提供了一个公式,能够计算多种情形下某个月的工作日天数,如下图1所示。

图1

单元格C2中的公式为:

=MAX(0,NETWORKDAYS(MAX($A2,C$1),MIN($B2,EOMONTH(C$1,0))))

向右拖至F列,向下拖至第8行。

NETWORKDAYS函数的语法为:

NETWORKDAYS(start_date,end_date, [holidays])

其中,参数start_date必需,指定开始日期;参数end_date必需,指定结束日期;参数holidays,可选,指定要排除的日期。

因此,参数start_date是公式中的:

MAX($A2,C$1)

获得开始日期和当前月首日中较大的值。

参数end_date是公式中的:

MIN($B2,EOMONTH(C$1,0))

其中的EOMONTH(C$1,0)获取当前月最后一天的日期值,因此获取结束日期和当前月最后一天日期值中的较小值。

这样,将本月中的开始和结束日期就确定了,传递给NETWORKDAYS函数得到当月工作日天数。

在第9行中,我们将假期排除在外,单元格C9中的公式为:

=MAX(0,NETWORKDAYS(MAX($A9,C$1),MIN($B9,EOMONTH(C$1,0)),$B$13:$B$15))

向右拖至F列。

公式中添加了NETWORKDAYS函数的可选参数holidays,将指定的日期排除。

在Excel 2010中,Microsoft引入了一个新函数NETWORKDAYS.INTL,增加了能够自定义周末日期的功能。其语法为:

NETWORKDAYS.INTL(start_date,end_date, [weekend], [holidays])

其中,参数weekend可指定下表中的值:

图2

参数weekend也可以指定由0和1组成的7个字符长的字符串,其每个字符代表一周中的某一天,从周一开始。1代表该天是非工作日,0代表工作日。例如,0000011表示周末是周六和周日。注意,在字符串中只能有1和0,且使用1111111将总是返回0。

对于我们所举的示例来说,如果在单元格C9中输入公式:

=MAX(0,NETWORKDAYS.INTL(MAX($A9,C$1),MIN($B9,EOMONTH(C$1,0)),6, $B$13:$B$15))

Excel将会认为周四和周五是周末。

使用公式:

=MAX(0,NETWORKDAYS.INTL(MAX($A9,C$1),MIN($B9,EOMONTH(C$1,0)),"1010100", $B$13:$B$15))

Excel将认为周一、周三、周五是周末。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档