今天群里有同学问了这样一个问题。
知道相关人员的出生日期,如何快速计算出这个人现在多大年龄,并且要精确到多少个月多少天。
问出这道题的同学,一定是对基础公式的了解太少了。
我们这里给大家讲两个算法。
第一种:
此案例中,日期1就是员工的出生日期 1939-09-19
日期2就是当前时间,我们可以在单元格输入=NOW() 获取
然后,我们祭出今天的核心函数:
=DATEDIF(日期1,日期2,"Y")
计算日期1和日期2之间间隔了多少年(周年)
公式变体:
1、间隔月
=DATEDIF(日期1,日期2,"M")
计算日期1和日期2之间间隔了多少月
2、间隔日
=DATEDIF(日期1,日期2,"D")
计算日期1和日期2之间间隔了多少日
3、计算刨去整年数后,的剩余月份数
=DATEDIF(日期1,日期2,"YM")
4、计算刨去整年数后,的剩余月份数
DATEDIF(日期1,日期2,"MD")
注意对比D列和E列的不同,体会“间隔月”和“间隔零头月”的区别。
最后使用&符,把年月日串在一起,如图
同学又问了,“我这个表格需要交给老板,能不能直接用一个公式解决”
又是一个难题!
群友嘛,必须给到最完美答案!上第二种方案!
第二种:
我们回头看上述的辅助列,分别在C列、E列、F列,使用了3次 =DATEDIF函数。
而区别仅仅是分别计算年、月、日而已。
针对这种情况,我们就要引用数组,数组简直就是解决重复问题的神器
① 利用数组,我们把3个公式简化成 DATEDIF(A1,NOW(),{"Y","YM","MD"})
计算结果是{82,5,12}
② 接着,再对这三个数字分别放大10000倍,100倍,1倍;并求和。
公式为:SUM(DATEDIF(A1,NOW(),{"Y","YM","MD"})*10^{4,2,0})
得出的数值为 {820000,500,12}
求和结果为820512
③ 最后,对结果进行格式变化就好了。
TEXT(SUM(DATEDIF(A1,NOW(),{"Y","YM","MD"})*10^{4,2,0}),"0年00月00天")
这里再次提醒大家对公式进行最初级的了解。
对公式的了解,不是指需要记忆所有的函数和参数,是要大家知道【一些常见的公式可以解决的问题】,这样遇到问题就可以快速去查阅甚至百度这个公式的用法。
否则当你连基础公式可以做哪些基础运算都不知道时,恐怕百度都很难解决你的问题。
好了,光说不练假把式,你也试试吧。