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))
和格式B1为dd / mm / yyyy例如:
如果单元格似乎有一个date/时间,但它不响应格式更改,它可能是一个文本值,而不是一个真正的date/时间。
虽然您没有将VBA标记为可能的解决scheme,但是您也许可以使用VBA的一些缺点, 作为VBA严重拖欠北美地区的设置,除非明确告知使用另一个。
点击Alt + F11 ,当VBE打开时,立即使用下拉菜单来插入►模块( Alt + I , M )。 将以下内容粘贴到面板标题,如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技巧正在工作。 花了一整天在网上疯狂的公式没有成功。 看剪辑
- 在Excel中如何查看列表(“短date”格式)
红色圆圈的单元格内容(有问题的)根本不会改变,不pipe你做什么花招。 包括手动删除它们,以“DD-MM-YYYY”格式input数字,或者从蓝色格式复制和粘贴格式。 基本上,没有工作…坚韧!
- 如何查看列(Excel上的“长date”格式)
可以看出,单元格的内容不会改变。
- 我是如何解决它的
解决这个问题的唯一方法是:
-
将Excel工作表上传到Google云端硬盘。 在Google云端硬盘上执行此操作
-
点击使用Google电子表格打开文件
-
一旦Google电子表格打开后,请select带有date的整个列。
-
selectdate格式types(您可以select任何您想要的date格式)。
-
将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))