下面的Excel数据源截图,是咱们excel教程公众号后台一位粉丝的问题。请小雅帮忙看看C列计算工龄的公式哪里有问题,为什么计算工龄会出错。
小雅检查过伙伴的数据源,C列的计算工龄的公式并没有错。错在B列的日期不规范。
曾几何时,我们在excel输入日期也是这样不按excel的规则来,比如20140821、2014.8.21等等这样非规范方式表示的日期,也就是我们所说的伪日期、假日期,这些日期在进行计算的时候,就会出现上面小伙伴的问题。
小雅给小伙伴修改的公式为:=DATEDIF(--TEXT(B2,"#-00-00"),NOW(),"Y"),下拉就可以计算出工龄。
小雅是这样给小伙伴解释公式的:
因为excel可以识别以短横线分隔的日期格式,因此小雅用text函数返回以短横线的格式文本:TEXT(B2,"#-00-00")。这个公式可以将“20140821”,转换为"2014-08-21"。
又因为text函数转换后得到的日期是文本格式,因此小雅再在text函数前面加上两个负号,作用就是“减负运算”,将文本型日期转换为真正的日期格式。
除了使用—的方法,还可以使用*1等等形式,也可以将文本数值转换为真正的数字,因此公式还可以修改为:=TEXT(B2,"#-00-00")*1。
转换后的日期格式做为DATEDIF函数的第一参数就不会有错了。
哎哟,自从小伙伴要求小雅写公式的时候,尽量把公式也解释清楚,方便大家理解公式的意义。实质上小雅还是希望大家想要全面系统学习,可以报名滴答老师的《Excel极速贯通班》。小雅除了在公众号里面给大家分享互动,更多的时候也在扮演另外一个角色,在VIP学员群任助教,辅助老师教学,对伙伴们的各种问题进行答疑。
大家对报名课程有什么问题,也可以加小雅微信:13388182428沟通哈。
上面我们说了另外一种非标准日期,如下图所示,如何转换为标准日期?A2的假日期,通过公式:=--SUBSTITUTE(A2,".","/")转换之后,还需要将单元格设置为“日期”格式哟!
SUBSTITUTE函数,小雅在前几天的推送教程里面详细讲解过哦,所以这个函数就不再此赘述了。