如下图所示,希望根据B列的出生日期和C列的统计截至日期,来计算两个日期之间的间隔,希望得到的结果是xx年xx个月xx天的形式。
要计算两个日期之间的间隔,那就非DATEDIF函数莫属了。这个函数的写法为:
=DATEDIF(开始日期,结束日期,返回的间隔类型)
第1参数和第2参数,可以引用单元格中的日期,也可以写成带半角双引号的日期,比如”2021-5-1″这样的。
第3参数用不同的字母来指定返回的间隔类型。
如果为 Y,则返回两个日期之间的整年数,不足1年的部分自动舍去。
如果为M,则返回两个日期之间的整月数,不足1月的部分自动舍去。
如果为D,则返回两个日期之间的天数。
还有几个字符,用来返回特殊要求的间隔类型。
如果为 MD,则在忽略年和月的前提下,返回两个日期之间的间隔天数。
例如,下面这个公式结果将得到2。表示15日到17日,间隔了两天。
=DATEDIF("2018/7/15","2021/5/17","MD")
如果为 YM,则在忽略年和日的前提下,返回两个日期之间的间隔月数。
例如,下面这个公式结果将得到10。表示从7月到次年的5月,间隔了10个月。
=DATEDIF("2018/7/15","2021/5/17","YM")
如果为 YD,则在忽略年的前提下,返回两个日期之间的间隔天数。
例如,下面这个公式结果将得到306。表示从7月15日到次年的5月17日,间隔了306天。
=DATEDIF("2018/7/15","2021/5/17","YD")
回到咱们的问题当中,要得到xx年xx个月xx天形式的日期间隔,该怎么计算呢?
以D2单元格公式为例,首先使用以下公式计算出两个日期间隔的完整年数,结果为1,表示从20年6月21日至21年6月22日完整的年数为1:
DATEDIF(B2,C2,”Y”)
再使用以下公式,在忽略年和日的前提下计算出两个日期间隔的月数,结果为0,表示从6月到6月间隔的月数为0:
DATEDIF(B2,C2,”YM”)
然后使用以下公式,在忽略年和月的前提下返回两个日期之间的间隔天数,结果为1,表示从21日到22日,间隔了1天。
DATEDIF(B2,C2,”MD”)
最后,咱们只要把这三个公式和一些字符合并起来,就得到需要的结果了:
=DATEDIF(B2,C2,"Y")&"岁"&DATEDIF(B2,C2,"YM")&"个月"&DATEDIF(B2,C2,"MD")&"天"