excel 单元格格式转换

来源:百度知道 编辑:UC知道 时间:2024/05/24 02:17:34
单元格内容“2009/7/24 下午 02:33:49”(一个单元格,文本格式),转换成“2009/7/24 02:33:49pm"的时间格式。
pootor 能不能解释一下公式

用公式得出数字型日期
=--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(FIND("下午",A1),0.5,0) 在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(转换的数据,转换