Excel中160830形式的日期变为2016-08-30的函数方法

2019年7月13日19:43:37 评论 504 views
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页
表格 定制  数据 合并 处理 分析 VBA 编程 开发 网页

众所周知,Excel有日期格式,但是现实中我们手里的数据很多时候都是非标准日期格式,而是数字序列比如20160831 ,160831 ,16.08.31等非标准日期字符串,而我们在筛选或者计算的时候,需要标准日期格式2016-08-31这种样式,这样才能方便的进行年月日计算或筛选

示例 2种数据格式筛选对比

其实利用Excel中的text和datevalue函数,就可以很方便的将这几种格式处理成标准格式

基本原理:Text函数将数字用-变换为日期样式,注意这一步处理后看起来显示的结果就是日期,但并不能进行日期运算及筛选,所以还需要再用datevalue将日期格式字符串变换为日期数值,处理后的结果会看到一个6位数字,这就是日期数值,最后再将日期数值列右键单元格格式设置为日期格式即可,如果只需要保留结果,就把处理完的数据复制粘贴为数值,再粘贴回原位即可

情况一:20160831,这种格式离标准日期只差一点点,公式如下,整列下拉复制公式

=DATEVALUE(TEXT(A3,"0000-00-00")

情况二:160831,和上面一个一样,区别在于差了一个20,公式如下

=DATEVALUE(TEXT(C2,"00-00-00"))

情况三:16.08.31,这种格式就需要用到另外一个函数substitute来把点替换掉,再datevalue转换为日期,公式如下

=DATEVALUE(SUBSTITUTE(E2,".","-"))

如果你自己动手测试一下,就会发现不加20上面的160831直接用datevalue(TEXT(C2,"00-00-00")),结果也是正确的,这是因为2000年纪元的系统自动识别,如果是1999年以下的,那么前缀必须要自己补齐了才能正确识别

当然,大家也可以试试用分列来事先日期标准化

分列指定格式法

选中A列,点击选项卡上 数据-分列 一直下一步 知道出现选择格式的界面,系统默认为常规,咱们选日期ymd 然后确定即可,看这红色框就是顽固的不按我们格式设置显示的日期

鸣谢:如果觉得文章对你有帮助记得关注点赞转发和评论哦!

表格定制服务可加微信Excel880A

  • 郑广学老师微信号
  • EXCEL880B
  • weinxin
  • 我的微信公众号
  • EXCEL880
  • weinxin

发表评论

您必须才能发表评论!