在Excel中,有时候根据工作的需要,我们经常需要对日期进行加减运算,从而得到这两个日期之间所产生的差数,而将一个日期值与一个表示天数的常数相加减,则能够得到一个距离该日期x天的日期值。

如:“2010/05/31”-“2010/05/01”得到31,“2010/05/01”加上90得到“2010/07/30”。

这在excel中是一个非常简单又实用性很强的日期计算功能。

可是,完美的东西肯定有一些局限性的,使其无法满足更高层次的需要,特别是“工作日”这一概念逐渐在各领域被广泛应用的今天,许多工作都需要进行与之相关的计算。

最常见的例如员工的出勤天数、交货期的计算、付款日的计算等等。

excel为用户的这些需求提供了怎样的解决方案呢?

1、使用networkdays()函数

networkdays(start_date,end_date,holidays)函数是用来计算两个日期值之间完整的工作日数值。

这个工作日数值将不包括双休日和专门指定的其他各种假期。

networkdays()函数带有3个参数:start_date表示开始日期,end_date为结束日期,holidays表示作为特定假日的一个或多个日期。

这些参数值既能够手工输入,也能够对单元格的值进行引用。下面以计算本年5月份共有多少个工作日为例,

具体介绍networkdays()函数的用法:

在b1中输入起始日期“2010/05/01”;

在b3中输入终止日期“2010/05/31”;

在e2、e3中输入法定假日“2010/05/01”和“2010/05/02”。

通过公式“=networkdays(b2,b4,e2:e3)”咱们就能够方便地计算出5月份的工作日数了。

当然,咱们也能够直接输入公式“=networkdays(″2010-5-1″,″2010-6-1″,{″2010-5-1″,″2010-5-2″})”来得到这个结果。

2、使用workday()函数

workday(start_date,days,holidays)函数是用来计算某日期(开始日期)之前或之后相隔指定工作日的某一日期的日期值。

它也带有3个参数:start_date表示开始日期,days为start_date之前或之后不含周末及节假日的天数。

days为正值将产生未来日期;为负值产生过去日期,holidays表示作为特定假日的一个或多个日期。

在b1中输入起始日期“2010/05/01”;

在b3中输入合同规定时间“90”;

在e2、e3中输入法定假日“2010/05/01”和“2010/05/02”。

通过公式“=workday(b2,b4,e2:e3)”,咱们能够清楚的理解交货日期是“2010/09/05”。

同上,咱们还能够直接输入公式“=workday(″2010-5-1″,90,{″2010-5-1″,″2010-5-2″})”来进行计算。

3、加载扩展函数

已经迫不及待地打开excel进行尝试的朋友可能非常想去实践了,你说的这两个函数我这儿怎么没有啊?

别急,点击“工具”菜单中的“加载宏”,找到“分析工具库”,给它一个小勾,再“确定”,ok!

原来,这两个函数是嵌于“分析工具库”这个加载宏中的excel扩展函数,而excel在默认状态下是不加载这个加载宏的。

另外一个值得注意的问题是:

将表示日期的单元格的数字格式设置成“日期”型,而表示天数的单元格则千万不要设置成“日期”型,否则你可能会看到“1900/02/21”或“36774”这些数字出现。

好了,基本上excel上的功能是非常强大的,只需要我们去慢慢挖掘,一定会非常好的。