Excel计算两个日期相差的年数、月数、日数? excel求差函数

  • A+
所属分类:Excel教程

计算工龄、发票报销期限等日期计算应用中,经常要求两个日期的时间差以“0年0个月0天”的样式表现。Excel计算两个日期相差的年数、月数、日数?

示例13-47 计算员工在职时长

图13-71为某公司离职员工信息表的部分内容,需要根据入职日期和离职日期计算在职时长,结果以年、月、日样式显示。

Excel计算两个日期相差的年数、月数、日数? excel求差函数

 

在E2单元格中输入以下公式,excel求差函数,并向下复制到E10单元格。

=DATEDIF(B2,D2,"Y")&"年"&DATEDIF(B2,D2,"YM")&"个月"&DATEDIF(B2,D2,"MD")&"天"

公式中使用了3个DATEDIF函数。第二参数分别使用“Y”,计算时间段中的整年数;使用“YM”,忽略日和年计算日期相差的月数;使用“MD”,忽略月和年计算日期相差的天数。

最后将3个函数的计算结果与字符串“年”“个月”“天”进行连接,最终得到“0年0个月0天”样式的结果。

由于月份和天数均不会超过两位数,excel求差函数,也可使用以下公式完成计算。

=TEXT(SUM(DATEDIF(B2,D2,{"Y","YM","MD"})*{10000,100,1}),"0年00个月00天")

计算结果如图13-72中的F列所示。

Excel计算两个日期相差的年数、月数、日数? excel求差函数

 

以F2单元格公式为例,DATEDIF函数的第二参数使用常量数组{"Y","YM","MD"},分别计算时间段中的整年数、忽略日和年的相差月数、忽略月和年的相差天数,返回内存数组{0,9,20}。

用该内存数组与{10000,100,1}相乘,即年数乘10000,月数乘100,天数乘1。使用SUM函数求和后得到结果为920。

TEXT函数的第二参数中包含5个0,如果SUM函数的结果不足5位,则在最左侧以0补齐。本例中,即是将920变成00920处理。

使用格式代码“0年00个月00天”,分别在数值右起第一位后面加上字符“天”,右起第三位后面加上字符“个月”,右起第五位后面加上字符“年”,最终得到“0年00个月00天”样式的结果。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: