- [返回列表] [ 发布:2014/4/3 11:08:11 ] [ 浏览: ] [ 字体:大 | 小 ]
- Excel中如何用函数实现类似通用Excel中的工作日和日期加减计算
通用Excel中,系统自带有日期加减的运算函数接口,可以非常方便的实现工作日或者日期之间的加减换算工作,但是,有时候我们在制作模版过程中,可能需要使用Excel本身的函数进行计算,下面就介绍Excel中如何用函数实现工作日的计算。
在Excel中,通过将两个日期值进行减运算,能够得到这两个日期之间所间隔的具体天数。而将一个日期值与一个表示天数的常数相加减,则能够得到一个距离该日期x天的日期值。如:“2013/05/31”-“2013/05/01”得到31,“2013/05/01”加上90得到“2013/07/30”。这是Excel提供的一个虽然简单却相当实用的日期计算功能。
但是,这一功能在实际工作中的局限性,使其无法满足更高层次的需要,特别是“工作日”这一概念逐渐在各领域被广泛应用的今天,许多工作都需要进行与之相关的计算。最常见的例如员工的出勤天数、交货期的计算、付款日期、入库日期的计算等等。Excel为用户的这些需求提供了怎样的解决方案呢?互和公司通用Excel系统开发工程师为你介绍以下2种方法,仅供需求者参考。
1.使用networkdays()函数
networkdays(start_date,end_date,holidays) 函数是专门用于计算两个日期值之间完整的工作日数值。这个工作日数值将不包括双休日和专门指定的其他各种假期。
networkdays() 函数带有3个参数:start_date表示进行日期,end_date为终止日期,holidays表示作为特定假日的一个或多个日期。这些参数值既能够手工输入,也能够对单元格的值进行引用。下面以计算本年5月份共有多少个工作日为例,具体介绍networkdays()函数的用法:
在b1中输入起始日期“2013/05/01”,在b3中输入终止日期“2013/05/31”,在e2、e3中输入法定假日“2013/05/01”和“2013/05/02”。通过公式=networkdays(b2,b4,e2:e3) 我们就能够方便地计算出5月份的工作日数了。当然,我们也能够直接输入公式 =networkdays(″2013-5-1″,″2013-6-1″,{″2013-5-1″,″2013-5-2″}) 来得到这个结果。
注:此函数可参见通用Excel系统中的 日期函数>星期值
2.使用workday()函数
workday(start_date,days,holidays) 函数是用来计算某日期(起始日期)之前或之后相隔指定工作日的某一日期的日期值。它也带有3个参数:start_date表示进行日期,days为start_date之前或之后不含周末及节假日的天数。days为正值将产生未来日期;为负值产生过去日期,holidays表示作为特定假日的一个或多个日期。
假设在4月30日与客户签订了一份购销合同,合同规定90个工作日之后交货。那么,我们应当怎样计算到底哪一天交货呢?
在b1中输入起始日期“2013/05/01”,在b3中输入合同规定时间“90”,在e2、e3中输入法定假日“2013/05/01”和“2013/05/02”。通过公式“=workday(b2,b4,e2:e3)”,咱们能够清楚的理解交货日期是“2013/09/05”。同上,咱们还能够直接输入公式“=workday(″2013-5-1″,90,{″2013-5-1″,″2013-5-2″})”来进行计算。
注:此函数可参见通用Excel系统中的 日期函数>日期加减
PS:加载扩展函数
已经迫不及待地打开Excel 进行尝试的朋友可能要疑问了,上面所说的这两个函数我这儿怎么没有啊?别急,请依次点击“工具”菜单中的“加载宏”或者“Excel加载项”,找到“分析工具库”,给它一个小勾,再“确定”。原来,这两个函数是嵌于“分析工具库”这个加载宏中的Excel扩展函数,而Excel在默认状态下是不加载这个加载宏的。
另外一个值得注意的问题是:将表示日期的单元格的数字格式设置成“日期”型,而表示天数的单元格则千万不要设置成“日期”型,否则你可能会看到“1900/02/21”或“36774”这样奇怪的结果出现!当然,如果是直接用我们通用Excel系统的函数进行设置,那就不用这么麻烦,系统会自动转换格式哦!
以上由互和公司旗下产品 通用Excel企业管理系统官网原创,转载请注明。