host does not exist:在EXCEL中将四位年月替换为八位年月的方法?

来源:百度文库 编辑:高校问答 时间:2024/04/28 14:37:52
要批量将EXCEL表格中的四位年月替换为八位年月日,日期可默认替换为1日。如53.1替换为1953-1-1。

终极解决办法,可以自动判断2000分界问题,如1990和2005。可以区分一位两位月份问题,如53.1和53.12。
公式:=IF(VALUE(LEFT(A1,2))<10,"20","19") & LEFT(A1,2) & "-" &MID(A1,FIND(".",A1)+1,LEN(A1)-FIND(".",A1)) & "-1"
假设原始数据在a1单元格。

运算结果:
53.1 1953-1-1
53.12 1953-12-1
02.2 2002-2-1

我觉得以下这个格式最好,既符合楼主的习惯又避免了2000年的问题。
=TEXT(SUBSTITUTE(A1,".","-")&"-01","yyyy-m-d")

text(value,format_text)
text是根据指定的数值格式将数字转成文本
substitute(text,old_text,new_text,instance_num)
substitute是将字符串中的部分字符以新的字符串替换
如A1单元格为 98.8 则substitute(a1,".","-")&"-01的结果为98-5-01,而text(98-5-01,"yyyy-m-d")的结果为1998-5-1

终极解决办法,可以自动判断2000分界问题,如1990和2005。可以区分一位两位月份问题,如53.1和53.12。
公式:=IF(VALUE(LEFT(A1,2))<10,"20","19") & LEFT(A1,2) & "-" &MID(A1,FIND(".",A1)+1,LEN(A1)-FIND(".",A1)) & "-1"
假设原始数据在a1单元格。

运算结果:
53.1 1953-1-1
53.12 1953-12-1
02.2 2002-2-1

如果用公式的话:
设数据在A1格:
="19"&LEFT(A1,FIND(".",A1)-1)&"-"&RIGHT(A1,LEN(A1)-FIND(".",A1))&"-1"

公式应为:
=TEXT(MID(A1,1,2)&"-0"&MID(A1,4,1)&"-01","yyyy-mm-dd")
经测试可行,
如:53.1 显示1953-01-01
05.4 显示2005-04-01

有的采用合并19的办法,我认为不可取,要考虑到2000年以后的时间问题。

最简单的办法:
选择需要改变的单元格,然后右键-〉设置单元格格式
选择“自定义”格式,然后在右边“类型”格里输入“yyyy-mm-dd”即可显示四位年,两位月,两位日。
以此类推,可以很方便的设置所有的日期位数。