如果要从Excel单元格中提取日期,很可能会遇到错误的日期格式,即使无论如何设置了日期格式,结果仍然是错误的。
下面给你举个例子并给出解决的方案。
假设A列,保存的是部分员工的身份证号码,当然,在A列中,也就保存了员工的出身日期。
假如A1中的身份证号码是:532621195701086015
首先说明,A列的数据格式为常规,就是常规,不允许改变格式。
之后,当你试图将A1中的身份证号码中的出生日期截取后放在B1时,那么,我们其实可以使用函数来截取,一般,使用MID函数最为妥当了。
公式自然就是如下的公式:
=Mid(A1,7,8)
然而,我们得到的结果却是:19570108
或许,你会马上意识到,是B1单元格中的数据格式不对,自然,格式有问题,当你把B列的数据格式都设置为日期格式中的“2001-3-14”时,你会惊奇的发现,结果还是一样。
到此,本人还提醒阁下一句,你可以再设置C列为“2001-3-14”的日期格式,然后把B1中的数据复制了以后,使用选择性粘贴的办法,粘贴到C列,那么我告诉你,结果还是一样,仍然是19570108
那么,是什么导致这种问题的产生呢,又如何来解决这种问题呢?
第一,是单元格的数据类型的问题,首先将其设置为“2001-3-14”的日期格式,是没有问题的,但是这一步,您必须做。
第二,问题出在公式有问题,结果上述的公式从理论上来讲,是没有问题的。
但是,问题却出在截取出生日期的时候,其截取方式有问题,使用如下的公式,问题就可以得到全面解决:
=DATE(MID(A1,7,4),MID(A1,11,2),MID(A1,13,2))
上述所得到的出生日期数据,其格式为2001-3-14,并且,未考虑单元格的前后是否有空格。
如果单元格的前后有空格的话,上述公式就难以得到正确的结果了,而是使用如下的公式较为妥当。
=DATE(MID(TRIM(A1),7,4),MID(TRIM(A1),11,2),MID(TRIM(A1),13,2))