在Excel中将date和时间转换为ISO yyyy-mm-dd

在Excel中打开的csv文件格式如“2014-08-28 09:03:19.789”。

上述怎样才能在Excel中转​​换为yyyy-mm-dd(2014-08-28)?

我试图将列设置为yyyy-mm-dd,但不会改变。

你使用的是什么版本的Excel? (我不确定这是否重要。)

如果您尝试在格式select框中inputyyyy-mm-dd ,则不起作用。

在这里输入图像说明

您需要打开自定义格式对话框,并在那里inputyyyy-mm-dd作为新的格式。

在这里输入图像说明 在这里输入图像说明

使用工作表单元格上的Text to Columns向导,或者使用数据function区Importing文件►获取外部数据选项卡►来自文本。

对于该列,请selectSpace作为分隔符,并在步骤3中select格式的YMD。 完成后,根据需要自定义date列和时间列的格式。

如果您需要整个date/时间戳在同一个单元格中,请将它们一起添加到第三列中,并根据需要进行格式化。

这个解决scheme应该可以工作,不pipe你的系统设置是什么,并且根据你的date时间值真正是一个string,一旦它被导入到excel中。 此解决scheme将假定您的date在A1

首先剥离年份:

 =left(A1,4) 

然后去掉这个月份:

 =mid(A1,6,2) 

然后剥离一天:

 =trim(mid(A1,9,2)) 

注意,如果你知道你有一个从单位数字天领先的零,那么你可以放弃修剪function。

现在你的date可以使用date函数转换为Excel格式的date,并replace上面提到的信息。

 =Date(left(A1,4),mid(A1,6,2),trim(mid(A1,9,2))) 

如果你的单元格没有被正确格式化,你可能会得到一个像420303这样的整数,或者是1900年1月0日以来在windows操作系统上的天数,就像1904年以来在Mac上一样。

所以当你重复这个过程的时候,但是我会build议你先尝试选项A),如果它不适合你尝试选项B)

选项A)时间快捷方式

 If you time also show trailing 0 ie 9.000 for seconds then you might get away with: =Timevalue(right(A1,12)) 

现在,如果这不适合你,我们可以调整12:

 LEN(A1)-Find(" ",A1) 

现在,如果选项A和使用时间值不适合你,那么我们需要进入并删除小时分钟和秒,基本上做了如上所述的date相同的过程。

选项B)被单位撕开

要获得小时数使用:

 =MID(A1,FIND(" ",A1)+1,2) 

要获得分钟使用:

 =MID(A1,FIND(":",A1)+1,2) 

获得秒使用

 =RIGHT(A1,LEN(A1)-FIND(".",A1)+3) 

这假定你有一个0到0的单个数字。

现在你可以把所有这一切,并将其放入时间公式得到以下

 =TIME(MID(A1,FIND(" ",A1)+1,2),MID(A1,FIND(":",A1)+1,2),RIGHT(A1,LEN(A1)-FIND(".",A1)+3)) 

现在,由于整数和时间的date被保存为十进制值,所以我们可以将date和时间公式与a +结合起来,现在应该已经准备好将整个格式化应用于整个事件了。

 =Date(left(A1,4),mid(A1,6,2),trim(mid(A1,9,2)))+TIME(MID(A1,FIND(" ",A1)+1,2),MID(A1,FIND(":",A1)+1,2),RIGHT(A1,LEN(A1)-FIND(".",A1)+3))