Exceldate格式不起作用

我有一个由第三方程序创build的Excel表。

其中一列的date格式为:“Jan 19,2015 03:00:00 PM”

我希望这些date以下列格式显示:“19/01/2015”

我select了一个或多个单元格,右键单击并select“格式化单元格…”,在类别中select“date”,然后在types中select“14/03/2001”,无效,date不会更改。

我也尝试了类别中的“自定义”和types的“dd / mm / yyyy”,再次没有任何变化。

该文件不受保护,该表是可编辑的。

有人可以解释我可能做错了什么?

问候Crouz

鉴于您的区域设置(英国),以及格式化无法更改date,您的date时间string是文本。 以下公式会将date部分转换为“真实”date,然后可以应用所需的格式:

=DATE(MID(A1,FIND(",",A1)+1,5),MATCH(LEFT(A1,3),{"Jan";"Feb";"Mar";"Apr";"May";"Jun";"Jul";"Aug";"Sep";"Oct";"Nov";"Dec"},0),MID(SUBSTITUTE(A1,","," "),5,5)) 

对于input格式,可以简化一些更多的信息,但上面应该可以正常工作。 此外,如果您需要保留时间部分,只需附加:

 +RIGHT(A1,11) 

到上面的公式。

以下为我工作:

  • selectdate列。
  • 转到数据选项卡并select“文本到列”。
  • 在第一个屏幕上,单击“分隔”单选button并单击下一步。
  • 取消select任何分隔符框(全部为空),然后单击下一步。
  • 在列数据格式下selectdate
  • 点击完成。

现在你得到了date值

使用A1中的数据,在B1中input:

 =DATEVALUE(MID(A1,1,12)) 

和格式B1dd / mm / yyyy例如:

在这里输入图像说明

如果单元格似乎有一个date/时间,但它不响应格式更改,它可能是一个文本值,而不是一个真正的date/时间。

虽然您没有将VBA标记为可能的解决scheme,但是您也许可以使用VBA的一些缺点, 作为VBA严重拖欠北美地区的设置,除非明确告知使用另一个。

点击Alt + F11 ,当VBE打开时,立即使用下拉菜单来插入►模块( Alt + IM )。 将以下内容粘贴到面板标题,如Book1 – Module1(Code)

 Sub mdy_2_dmy_by_Sel() Dim rDT As Range With Selection .Replace what:=Chr(160), replacement:=Chr(32), lookat:=xlPart .TextToColumns Destination:=.Cells(1, 1), DataType:=xlFixedWidth, FieldInfo:=Array(0, 1) For Each rDT In .Cells rDT = CDate(rDT.Value2) Next rDT .NumberFormat = "dd/mm/yyyy" End With End Sub 

点击Alt + Q返回到您的工作表。 select所有date(只是date,而不是整列),然后点击Alt + F8 运行macros。

请注意,date和时间都保留。 如果您希望查看底层时间以及date,请更改单元格编号格式。

我有一个类似的问题。 我的Excel表单有102,300行和一列,date很乱。 没有多less技巧正在工作。 花了一整天在网上疯狂的公式没有成功。 看剪辑

  1. 在Excel中如何查看列表(“短date”格式)

红色圆圈的单元格内容(有问题的)根本不会改变,不pipe你做什么花招。 包括手动删除它们,以“DD-MM-YYYY”格式input数字,或者从蓝色格式复制和粘贴格式。 基本上,没有工作…坚韧!

细胞

  1. 如何查看列(Excel上的“长date”格式)

可以看出,单元格的内容不会改变。

柱

  1. 我是如何解决它的

解决这个问题的唯一方法是:

  1. 将Excel工作表上传到Google云端硬盘。 在Google云端硬盘上执行此操作

  2. 点击使用Google电子表格打开文件

  3. 一旦Google电子表格打开后,请select带有date的整个列。

  4. selectdate格式types(您可以select任何您想要的date格式)。

  5. 将Google电子表格下载为.xlsx。 列中的所有内容都是date

类似的方式,罗斯·罗斯菲尔德,但有点简化。

= DATE(RIGHT(α-1,4),MATCH(MID(A1,4,2),{ “01”; “02”; “03”; “04”; “05”; “06”; “07”; “08”; “09”; “10”; “11”; “12”},0),LEFT(A1,2))