Excel算日子公式全攻略:轻松搞定日期计算

Excel算日子公式全攻略:轻松搞定日期计算

在日常工作中,我们经常需要计算日期间隔、项目工期、员工年龄等。Excel内置了多种日期函数,让你告别手动掰手指。本文将系统介绍最实用的日期计算公式。

一、基础日期计算

1. 直接相减

Excel中日期本质是数字序列,因此两个日期直接相减可得到间隔天数。例如:=B2-A2,假设A2为开始日期,B2为结束日期。

注意:结果单元格需设置为“常规”或“数值”格式。

2. DATEDIF函数(隐藏函数)

DATEDIF是Excel的隐藏函数,用于计算两个日期之间的年、月、日数。语法:=DATEDIF(start_date, end_date, unit)。其中unit参数:

  • "Y":年份差
  • "M":月份差
  • "D":天数差
  • "MD":忽略年月的天数差
  • "YM":忽略年的月份差
  • "YD":忽略年的天数差

示例:计算年龄:=DATEDIF(A2,TODAY(),"Y"),A2为出生日期,返回周岁。

二、工作日与工期计算

1. NETWORKDAYS函数

计算两个日期之间的完整工作日天数(默认周末为周六、周日)。语法:=NETWORKDAYS(start_date, end_date, [holidays])。可选参数holidays可指定假期列表。

示例:计算项目实际工作天数:=NETWORKDAYS(A2,B2,$C$2:$C$10),其中C2:C10为法定假日区域。

2. NETWORKDAYS.INTL函数

允许自定义周末设置,更灵活。语法:=NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])。weekend参数使用数字或字符串表示休息日,如1表示周六周日,2表示周日周一,11表示仅周日等。

3. WORKDAY函数

返回指定工作日数后的日期。语法:=WORKDAY(start_date, days, [holidays])。同样有WORKDAY.INTL版本支持自定义周末。

示例:推算10个工作日后交货日期:=WORKDAY(TODAY(),10)

三、自动生成日期

1. EDATE函数

返回几个月之前或之后的日期。语法:=EDATE(start_date, months)。例如:=EDATE(TODAY(),3)得到三个月后同一天。

2. EOMONTH函数

返回指定月份的最后一天。语法:=EOMONTH(start_date, months)。例如:计算本月最后一天:=EOMONTH(TODAY(),0)

四、其他实用技巧

1. 判断日期是否为周末

=WEEKDAY(date,2)>5,返回TRUE表示周六或周日。

2. 计算两个日期之间的所有工作日(带假日排除)

结合NETWORKDAYS与排序技巧,可生成工作日列表。但更简单的方法:使用WORKDAY函数迭代。

五、常见错误及处理

  • #VALUE!:检查日期格式是否正确,确保是Excel识别的日期(如2024/3/15或2024-03-15)。
  • 错误结果:DATEDIF中如果开始日期大于结束日期会报错,请确保顺序。
  • 负值:直接相减时若结果为负,调换顺序或使用ABS函数取绝对值。

掌握这些公式,你就能轻松应对Excel中的“算日子”难题。记得多实践,遇到复杂场景灵活组合函数。