不知道你有没有遇到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函数的第一参数就不会有错了。
下面我们说另外一种不标准的日期,如下图所示,如何转换为标准日期?这里可以使用替代函数SUBSTITUTE,公式:=--SUBSTITUTE(A2,".","/")。记得转换之后,还需要将单元格设置为“日期”格式哟!
……