excel - Excel问题中将文本转换为日期
问题描述
所以我打开 excel,在 G2 中输入:Feb/12/2016 01:09:28 PM UTC
然后在任何其他单元格中尝试以下公式:
=IFERROR(DATEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LEFT(G2,11),"Dec",12),"Nov",11),"Oct",10),"Sep",9),"Aug",8),"Jul",7),"Jun",6),"May",5),"Apr",4),"Mar",3),"Feb",2),"Jan",1))+TIMEVALUE(MID(G2,13,11)),"Error")
我试图让它显示为 2/12/2016 13:09
但它给了我我的错误。我什么都试过了,就是不行??
非常感谢各位
解决方案
简短的回答:
使用以下公式:
=DATE(MID(A1,8,4),MONTH(1&LEFT(A1,3)),MID(A1,5,2)) + IF(MID(A1, 22,2) = "PM", TIME(MID(A1, 13, 2), MID(A1, 16, 2), MID(A1, 19, 2)) + TIME(12, 0, 0), TIME(MID(A1, 13, 2), MID(A1, 16, 2), MID(A1, 19, 2)))
长答案:
虽然没有必要,但最好将时间和日期分开以进行数据操作。
我建议使用隐藏列,这样可以使您的日期很好并且整齐地分开,而且还可以帮助我解释答案,而不仅仅是粘贴一个巨大的公式:
假设您的文本信息始终具有相同的格式
"Mon"/dd/yyyy hh:mm:ss AM/PM UTC
在单元格 B1 中,我们将粘贴我们的日期:
=DATE(MID(A1,8,4),MONTH(1&LEFT(A1,3)),MID(A1,5,2))
非常不言自明,我们将提取日期格式的各个部分并将其应用于它们。唯一的技巧部分是使用该MONTH()
函数将月份字符串转换为实际的月份格式。
现在到时候,有点棘手:
让我们尝试在 C1 中解析它:
首先,我们需要实现一个IF
函数,它将 AM/PM 格式转换为 24h 格式,然后我们将使用字符串函数,类似于上面的 date 将数据提取到我们的函数中TIME()
。
=IF(MID(A1, 22,2) = "PM", TIME(MID(A1, 13, 2), MID(A1, 16, 2), MID(A1, 19, 2)) + TIME(12, 0, 0), TIME(MID(A1, 13, 2), MID(A1, 16, 2), MID(A1, 19, 2)))
最后但并非最不重要的一点是,在 D 列中,我们将粘贴我们的结果。首先确保您的格式正确设置为您的预期输出:
然后我们将简单地将两个数据字段添加在一起:
=B1 + C1
产生预期的结果:
推荐阅读
- javascript - 您应该考虑开关中的 1 值吗?
- c++ - 为什么 bin_to_dec() 返回 0?
- php - codeigniter - php - 不插入数据库
- python-3.x - 为什么 Python Choropleth 地图不显示颜色?
- git - 在 ClearCase 中,需要 CLI 调用来列出所有修订
- flutter - DefaultTabController 没有脚手架?
- flutter - 在项目中查找 Dart.io 和 getApplicationDocumentsDirectory 生成的文件
- spring-restcontroller - 如何在 FeignClient 中定义与多个端点的映射?
- php - Excel 中的文件格式和扩展名不匹配
- android - android studio中无法编译依赖