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

每年员工工作天数(计算员工在职时长)(1)

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

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

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

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

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

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

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

每年员工工作天数(计算员工在职时长)(2)

以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天”样式的结果。

,