使用公式提取Excel中的日期后发现格式不对

   如果你要提取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))

时间: 2025-01-30 09:50:15

使用公式提取Excel中的日期后发现格式不对的相关文章

npoi-C#通过NPOI提取Excel中带格式单元格时,如何提取到赋予格式之后的字符串

问题描述 C#通过NPOI提取Excel中带格式单元格时,如何提取到赋予格式之后的字符串 某个单元格,设置了某种显示格式,例如"000",其值设为1,那么显示出来就是001,我现在想直接获取到"001"这个字符串,NPOI中有对应的方法吗? 解决方案 有必要么? 直接这样: string fmt = "000"; int n = 1; string s = n.ToString(fmt, 1);

xcel o tml onverter-NPOI ExcelToHtmlConverter 将excel转换成html后打印 格式有问题

问题描述 NPOI ExcelToHtmlConverter 将excel转换成html后打印 格式有问题 问题如题描述. 目的:使用NPOI将excel转换成html,让客户可以直接打印. 问题:生成的html,或者打印的结果,部分边框不显示,文本不会换行. 代码: public byte[] XLSConvertToHtml(HSSFWorkbook workbook, string outFile) { //the excel file to convert //string fileNa

编码-golang中服务器获得json字符串格式不对

问题描述 golang中服务器获得json字符串格式不对 我发送的是{""userName"":""huloixia""userPass"":""030719""}而服务器得到的却是%7B%22userName%22%3A%22huloixia%22%2C%22userPass%22%3A%22030719%22%7D& 我不知道什么方法可以再编码回来 解决方

在excel中计算日期差工龄生日等

  方法1:在A1单元格输入前面的日期,比如"2004-10-10",在A2单元格输入后面的日期,如"2005-6-7".接着单击A3单元格,输入公式"=DATEDIF(A1,A2,"d")".然后按下回车键,那么立刻就会得到两者的天数差"240". 提示:公式中的A1和A2分别代表前后两个日期,顺序是不可以颠倒的.此外,DATEDIF函数是Excel中一个隐藏函数,在函数向导中看不到它,但这并不影响我们的

妙用公式在Excel中制作动态表头

我用Excel来管理各种各样的表格,这些表格的标题基本上是由单位名称加年份.月份和表格名称组成的.每隔一段时间打印这些表格时,都要将所有表格标题中的部分内容(如单位名称.年份或月份)重新进行更改,操作时不仅繁琐,而且容易出错. 如果能做一个动态表头,将所有标题需要变动的部分做成单元格的引用,只要改动一处,所有的标题将一起跟着改变,这样就方便多了.后来经过尝试实现了这个目标: 1. 制作表格标题初始化界面 为了操作方便,我们先插入一张新工作表,命名为"初始化".在C7单元格中输入&quo

EXCEL中把日期转为unix时间戳方法

由于项目需要将原有的数据导入到新项目中,而原有的数据时间格式是excel的日期格式,即xxxx/xx/xx的样子,而新项目的时间格式是以unix timestamp来存储的,所以这里需要借助excel的函数来中转一下.  代码如下 复制代码 INT((B2-70*365-19)*86400-8*3600) B2为原来的日期格式xxxx/xx/xx,EXCEL的时间是从1900年1月1日开始算的,而unix的时间戳则是1970年1月1日,所以这里需要减去70*365年的天数,后面-19为计算当日的

PHPExcel对于Excel中日期和时间类型的处理

PHPExcel是一款优秀的处理Excel文件读写的开源PHP Library,能够给我们提供强大的Excel读写能力,本文针对Excel处理过程中关于日期和时间类型的处理进行深入的讨论.PHPExcel最新的版本是2014年3月2日发布的1.8.0版本,后来项目迁移到了GitHub,后续的版本已经更名为PHPSpreadSheet.   一.Excel中的日期和时间类型 Excel中的日期存储的是数值类型,计算的是从1900年1月1日到现在的数值.例如2008-12-31实际上存储的是3981

在Excel中自动提取身份证号中的生日和性别

每年新入学的一年级学生,都需要向上级教育部门上报一份包含身份证号.出生年月等内容的电子表格,以备建立全省统一的电子学籍档案.数百个新生,就得输入数百行相应数据,这可不是个轻松活儿.有没有什么办法能减轻一下输入工作量.提高一下效率呢?其实,我们只需在Excel中将学生的身份证号完整地输入后,它就可以帮我们自动填好出生日期和性别. 现在学生的身份证号已经全部都是18位的新一代身份证了,里面的数字都是有规律的.前6位数字是户籍所在地的代码,7-14位就是出生日期.第17位"2"代表的是性别,

如何在Excel中提身份证号生日和性别

  每年新入学的一年级学生,都需要向上级教育部门上报一份包含身份证号.出生年月等内容的电子表格,以备建立全省统一的电子学籍档案.数百个新生,就得输入数百行相应数据,这可不是个轻松活儿.有没有什么办法能减轻一下输入工作量.提高一下效率呢?其实,我们只需在Excel2003中将学生的身份证号完整地输入后,它就可以帮我们自动填好出生日期和性别. 现在学生的身份证号已经全部都是18位的新一代身份证了,里面的数字都是有规律的.前6位数字是户籍所在地的代码,7-14位就是出生日期.第17位"2"代