ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 19066|回复: 35

[分享] 利用数组公式和networkdays函数计算工作日问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-4-13 20:09 | 显示全部楼层 |阅读模式
  早在office2003时代,excel就内置了一个非常强大实用的时间日期计算函数networkdays(需要加载分析工具库方可使用),利用这个函数可以很方便的计算任意两个日期之间存在多少个工作日,而且可以利用定义名称序列或者添加日期的方式来自行定义法定节日,2008年,《机关事业单位工作人员带薪年休假实施办法》规定国家法定假日不计入年休假假期以来,我就一直依靠这个函数对统计计算单位工作人员休假时间,准确、方便而又快捷。
  唯一美中不足的地方在于调休的计算问题,以2011年春节为例,2月2日至2月8日属于国家法定假日,可以通过定义序列名称的方式从工作日中剔除出来,但是对于调休后1月30日(星期日)和2月12日(星期六)在函数里面还是认定为休息日而予以剔除,不能列入工作日,这样就造成休假日期计算不准确,必须手工进行调整计算。到了office2010时代,增加了一个非常有用的函数networkdays.intl函数,可以自行指定星期几是休息日,然后计算工作日,这对银行或者卖场等非星期六星期天休息的企业无疑是非常有用的,但是对我来说,还是不能实现目的。
  直到昨天,当我准备制作新一年工作人员休假统计表格的时候,终于找到了一个新的方法,那就是利用数组公式和networkdays来计算年休假天数:
  首先根据《国务院办公厅关于2011年部分节假日安排的通知》(国办发明电〔2010〕40号)精神,现将2011年元旦、春节、清明节、劳动节、端午节、中秋节和国庆节放假调休日期的具体安排,分别把国家法定假日和调休日列表并定义名称为“假日”和“调休”,然后按照以往的方式编辑networkdays函数公式计算工作日,语法是:NETWORKDAYS(开始日期, 结束日期, "假日"])。然后在后面加上调休的日期,格式是:SUM((调休<=开始日期)*(结束日期<=调休))。如果用普通的公式录入的话,虽然公式显示正常,但实际上无法得出准确工作日的,需要在编辑完公式以后按下shift+ctrl+enter编辑为数组公式(公式呈“{}”包围显示)。
  验证一下:假设某人自2月1日(周一)休假,至2月2日(周二)结束,那么休假日期显示为1天(因为2月2日是春节法定假日);若自2月1日至2月11日结束,则休假天数为4天(2月2日至8日为春节法定假日);若2月1日至2月12日(周六)结束,则休假天数为5天(因为虽然2月12日至周六,但已经调休,计算为工作日);若2月1日至2月13日结束,则休假依然为5天,因为2月13日为周日。

  经过验证,该数组公式有效。再利用if函数根据工龄判断应休假天数,利用vlookup函数对个人休假审批权限进行查找判断,不多时,即可完成一个完整准备的机关事业单位工作人员休假统计表格。

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-4-13 21:17 | 显示全部楼层
2011年休假.rar (7.64 KB, 下载次数: 1192) 忘了放实例了,哈哈

TA的精华主题

TA的得分主题

发表于 2011-4-14 19:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-5-13 11:14 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习一下~~~

TA的精华主题

TA的得分主题

发表于 2011-6-1 15:34 | 显示全部楼层
一直为计算实际工作日困扰,楼主的分享有借鉴意义,谢谢!

TA的精华主题

TA的得分主题

发表于 2011-6-2 19:39 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-6-9 16:07 | 显示全部楼层
太好了,谢谢楼主分享!正在寻找解决方案中,雪中送炭啊!

TA的精华主题

TA的得分主题

发表于 2011-6-17 09:59 | 显示全部楼层
楼主的分享有借鉴意义,谢谢

TA的精华主题

TA的得分主题

发表于 2011-6-21 10:33 | 显示全部楼层
太棒了~ 我正在做这个东西呢~ 你做到哪步了?

TA的精华主题

TA的得分主题

发表于 2011-6-23 17:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不是很完美的是需要输入起止日期,希望做到计算某个月份
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-21 20:27 , Processed in 0.034609 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表