分享

EXCEL技巧四十:日期

 甘苦人生2010 2014-10-04

通常情况下,计算两个日期的天数,直接相减即可以。

  日期小常识:1900-1-0是虚拟的一个特殊日期,是时间日期的起点,对应序列值0。1900-1-1凌晨0点对应序列值1,也就是说每一天对应一个序列值单位1。1900-1-1正午12点对应序列值1.5,就是说时间间隔(小时、分、秒)也是同时间序列值一一对应的。于是1 1/3(1又三分之一)就对应1900-1-1上午6点(一日=24小时,24*1/3=8)。

  因此,很多对于日期的计算都可以转化为数值之间的计算或以此来理解。比如两个日期之间相隔的天数只要将两个日期相减就可以了。这是因为日期相减实质就是序列号相减,而序列号的单位1就等价为一天。

  掌握基本的时间日期函数DATE,date(year,month,day) 这三个参数能直接从日期参数中提取对应的年份、月份和所在月的第几天。
  WEEKDAY:返回对应星期几的数值,根据第二参数的不同意义不同。第二参数可以是1,2,3,建议记一个2就行。中国人的习惯星期日是一星期的最后一天,使用2作为第二参数正好符合这种习惯。
  TODAY,NOW函数,分别返回当前的日期和时间。
  VALUE,DATEVALUE函数,能将日期转化为序列值。


  第一:Excel中计算今天是本年(2011年)多少天
  1.SQL解法:select datepart("y",now()) as 第几天
  2. =TODAY()-"2011-1-1"+1或者TODAY()-DATE(2011,1,0)
  说明:使用当天日期和本年度第一天相减来获取一个数字,这个数字需要加1才能成为当天的序号。
  3. DATEDIF("2011-1-1",NOW(),"d")+1
  DATEDIF函数是计算两个日期之间的天数、月数或年数。DATEDIF函数是一个隐藏函数,在Excel的帮助文件查找不到相关的资料。这里提供一个:Excel中DATEDIF函数用法实例


   在上例讲了通过使用YEAR函数和TODAY函数计算员工的年龄和工龄的方法。我们在本例讲解通过DATEDIF函数来计算年龄。

  实例:根据出生日期快速计算年龄

  已知员工的出生日期,使用DATEDIF函数和TODAY函数就可以计算出员工的年龄。

  下面是一个员工信息表,如图:

年龄计算

  计算员工年龄的方法如下:
  选中C2单元格,在编辑栏输入公式:=DATEDIF(B2,TODAY(),"Y"),回车键确认,即可完成员工的年龄计算。
  然后拖动C2单元格的填充柄,向下复制公式进行计算,就完成了所有员工的年龄和工龄计算。

  本例中我们用到了Excel中DATEDIF函数,关于DATEDIF函数介绍如下:

  DATEDIF函数的用途:计算两个日期之间的天数、月数或年数。提供此函数是为了与 Lotus 1-2-3 兼容。

  DATEDIF函数语法是:DATEDIF(start_date,end_date,unit)。

  参数有:
  Start_date 为一个日期,它代表时间段内的第一个日期或起始日期。日期有多种输入方法:带引号的文本串(例如 "2001/1/30")、系列数(例如,如果使用 1900 日期系统则 36921 代表 2001 年 1 月 30 日)或其他公式或函数的结果(例如,DATEVALUE("2001/1/30"))。有关日期系列数的详细信息,请参阅 NOW。
  End_date 为一个日期,它代表时间段内的最后一个日期或结束日期。
  Unit 为所需信息的返回类型,其中:
  "Y":时间段中的整年数。
  "M":时间段中的整月数。
  "D":时间段中的天数。
  "MD":start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
  "YM":start_date 与 end_date 日期中月数的差。忽略日期中的日和年。
  "YD":start_date 与 end_date 日期中天数的差。忽略日期中的年。

  4.数组公式:=MATCH(TODAY(),DATE(YEAR(TODAY()),1,ROW(1:366)))

  第二,计算两个日期间的全部工作日数,除去周末的天数,可以使用 NETWORKDAYS函数。《networkdays函数的用法及实例》


Excel中networkdays函数的常见用法就是根据某一特定时期内雇员的工作天数,计算其应计的报酬。

  NETWORKDAYS函数是返回起始日期和结束日期之间的工作日数。

  NETWORKDAYS函数的用法是:NETWORKDAYS(start_date,end_date,holidays)

  Start_date:为一个代表开始日期的日期。
  End_date:为终止日期。
  Holidays:表示不在工作日历中的一个或多个日期所构成的可选区域,例如:省/市/自治区和国家/地区的法定假日以及其他非法定假日。该列表可以是包含日期的单元格区域,或是表示日期的序列号的数组常量。

  例如:从2011年5月7日至2011年6月8日,之间的工作日计算公式为:=NETWORKDAYS(A1,A2),结果为23天。NETWORKDAYS在计算时,自动将周末扣除。

networkdays函数
 
  如果在此基础上,另外6月2日也休息,就在此基础再减去一天(A4的值),得到下面的公式:=NETWORKDAYS(A1,A2,A4)

networkdays函数应用 
    
 提示:使用NETWORKDAYS函数和workday函数计算工作日不同之处在于:workday函数计算的是从开始日期到相隔指定工作日的日期值,而NETWORKDAYS函数计算的才开始日到结束日之间的工作日。比如计算项目完工日期可以使用workday函数。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多