用公式得出数字型日期
=--LEFT(A1,FIND(" ",A1)-1)--RIGHT(A1,8)+IF(ISERROR(FIND("下午",A1)),0,0.5)
再设置成自定义格式为:
[$-409]yyyy/mm/dd hh:mm:ss AM/PM;@
--LEFT(A1,FIND(" ",A1)-1)--RIGHT(A1,8)+IF(FIND("下午",A1),0.5,0),"[$-409]yyyy/mm/dd hh:mm:ss AM/PM;@"
若不想设置成自定义格式可以这样:
=TEXT(--LEFT(A1,FIND(" ",A1)-1)--RIGHT(A1,8)+IF(FIND("下午",A1),0.5,0),"[$-409]yyyy/mm/dd hh:mm:ss AM/PM;@")
公式解释如下:
FIND(" ",A1)-1 在A1中查找一个英文半角空格,找出其半角位置为10,则其2009/7/24的字符串长度就为10-1=9,为什么要用这步呢,而不是直接用left(a1,9),是因为你的日期有可能有2009/12/10这样的,长度就不只是9了,所以要确定下具体长度。
--LEFT(A1,FIND(" ",A1)-1) 将 2009/7/24 提取出来后再用 -- 两个减号把字符型数字转换成数字值,其结果为40018
IF(ISERROR(FIND("下午",A1)),0,0.5) 在A1中找“下午“字符串,如果找到就加0.5,没有就加0。因为一天24小时在excel中是用数字1存储的,12小时就是0.5,所以,如果是下午就加0.5,上午就不加。
--RIGHT(A1,8) 将 02:33:49 提取出来并转换成数字型,其值为 0.10681712962963 最后公式得出其结果为 40018.6068171296 ,把单元格格式设置成:[$-409]yyyy/mm/dd hh:mm:ss AM/PM;@ 后,就是你要的时间格式了,其值还可以参与其它运算。
如果你要文本型的日期就用text()函数转换一下,text(转换的数据,转换的格式),格式要用""括起来。具体用法参考函数帮助吧。