excel 日期格式无效

excel date formatting not working

我有一个由第 3 方程序创建的 excel sheet。

其中一列的日期格式如下:"Jan 19, 2015 03:00:00 PM"

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

我选中了一个或多个单元格,右击选择"Format Cells...",在类别中选择"Date",然后在类型中选择“14/03/2001”,无济于事,日期不会改变。

我还尝试了 "Custom" 的类别和 "dd/mm/yyyy" 的类型,同样,完全没有变化。

文件未受保护,sheet可编辑。

谁能解释一下我做错了什么?

问候 克鲁兹

使用 A1 中的数据,在 B1 中输入:

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

并将 B1 格式设置为 dd/mm/yyyy 例如:

如果单元格看起来有 date/time,但它不响应格式更改,它可能是 Text 值而不是真正的 date/time.

鉴于您的区域设置(英国),以及无法更改日期的格式,您的日期时间字符串是文本。以下公式会将日期部分转换为 "real" 日期,然后您可以应用所需的格式:

=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))

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

+RIGHT(A1,11)

对上面的公式。

虽然您没有将 VBA 标记为可能的解决方案,但您可以利用某些人认为的 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 到 return 到您的工作表。 Select 所有日期(只是日期,不是整列)并点击 Alt+F8 运行 宏。

请注意,日期和时间都被保留了下来。如果您希望查看基本时间和日期,请更改单元格编号格式。

我遇到了类似的问题。我的 Excel sheet 有 102,300 行,其中一列日期很乱。再多的花招也不管用。花了一整天在网上输入疯狂的公式,但没有成功。查看截图

  1. 该列的外观("Short Date" Excel 格式)

无论你做什么技巧,红色圈出的单元格内容(有问题的)都不会改变。包括手动删除它们并输入"DD-MM-YYYY"格式的数字,或者从蓝色的复制粘贴格式。基本上,没有任何效果......顽固!

  1. 该列的外观("Long date" 格式 Excel)

可以看出,单元格内容无论如何都不会改变。

  1. 我是怎么解决的

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

  1. 将 Excel sheet 上传到 Google 驱动器。在 Google 驱动器上执行此操作:

  2. 点击打开带有Google传播的文件sheet

  3. 一旦它作为 Google 展开 sheet,select 整个带有日期的列。

  4. select格式类型为Date(你可以选择任何你想要的日期格式)。

  5. 将 Google 传播sheet 下载为 .xlsx。该列的所有内容现在都是 dates

与 ron rosefield 类似,但稍微简化了一些。

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

以下对我有用:

  • Select 日期列。
  • 转到“数据”选项卡并选择 "Text to Columns"。
  • 在第一个屏幕上,将单选按钮保留在 "delimited" 上,然后单击下一步。
  • 取消选择任何分隔符框(全部为空白)并单击“下一步”。
  • 在列数据格式下选择日期
  • 单击“完成”。

现在你得到了日期值

今天为这个问题苦苦挣扎了 20 分钟。我的问题与此线程中的 MARIO 相同,但我的解决方案更简单。如果你看他上面的回答,蓝色圈出的日期是"month/day/year",红色圈出的日期是"day/month/year"。更改红色日期格式以匹配蓝色日期格式,然后 select 所有这些,右键单击,格式化单元格,类别 "Date",select 所需的类型。可以手动更改红枣,或使用其他一些 excel 魔法来交换日期和月份。

DATEVALUE 如果日期存储为文本

函数将有所帮助

=DATEVALUE("Jan 19, 2015 03:00:00 PM")

另一种解决一列中无法转换的单元格的方法是将它们复制到记事本,然后 CLEAR ALL(格式化和内容)这些单元格并将记事本中的单元格内容粘贴回相同的细胞。

然后你可以将它们设置为日期,或文本或其他。

清除格式对我不起作用。 Excel365,大概是版本2019.

Select 您要设置格式的单元格。 按 CTRL+1。 在“设置单元格格式”框中,单击“数字”选项卡。 在“类别”列表中,单击“日期”。 在类型下,选择一种日期格式。

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

将 Excel sheet 上传到 Google 驱动器。在 Google 驱动器上执行此操作:

点击打开带有Google传播的文件sheet

一旦它作为 Google 展开 sheet、select 整个带有日期的列。

select格式类型为日期(可以选择任何你想要的日期格式)。

将 Google 传播sheet 下载为 .xlsx。该列的所有内容现在都是日期

我对日期格式的类似问题的解决方案是:

  1. 复制问题 sheet 然后将其粘贴到 Sheet
    n.
  2. 删除问题sheet.
  3. 将 Sheet n 重命名为问题名称 sheet。

QED.

问题 sheet 包含我想读取为 07/21/2017 的日期数据,它不会显示除 42937 以外的任何内容。我做的第一件事是关闭 Excel 并重新-启动它。随后进行了更多尝试。我放弃了自己的解决方案。我尝试了一些在线建议。然后我又做了一次尝试 - Walla - 以上三个步骤解决了这个问题。至于为什么会出现问题?这显然与“那个”sheet有关。去图吧!

我相信不足以让你知道 - rodalsa。

Select 栏目 -> 转到“数据”选项卡 -> Select “文本到列” -> Select 分隔 -> 选中制表符(取消选中其他框) -> Select 日期 -> 将格式更改为 MMDDYYY -> 完成。