【问题标题】:excel date formatting not workingexcel日期格式不起作用
【发布时间】:2015-02-14 15:07:16
【问题描述】:

我有一个由 3rd 方程序创建的 Excel 表。

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

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

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

我还尝试了类别中的“自定义”和类型中的“dd/mm/yyyy”,同样,根本没有任何变化。

文件不受保护,工作表可编辑。

谁能解释我做错了什么?

问候 克鲁兹

【问题讨论】:

  • 您使用的是哪个国家版本的 Excel?如果您从控制面板转到“区域和语言”对话框,然后查看“格式”选项卡,格式中列出的语言(国家/地区):行
  • @Paresh - 自定义格式不是一个选项,尽管如问题中所述,我确实选择了所有单元格,右键单击后我选择了“格式化单元格...”无济于事
  • 好的,那就是文本,原因是输入的日期(美国格式)和Excel可以解释的日期(英国格式)之间的差异。请参阅我的答案以获得解决方案。
  • @RonRosenfeld Mine 是英语(美国)。我面临与上述问题中描述的完全相同的问题。请帮忙?
  • @RehanKhan 当您尝试接受的答案时发生了什么?

标签: excel excel-2010


【解决方案1】:

以下对我有用:

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

现在你得到了日期值

【讨论】:

  • 完美运行。
  • 非常感谢,也为我工作。在过去的 30 分钟里,我一直在摸不着头脑。
  • 完美答案!!但它背后的奥秘是什么?
  • (+1) 我不确定为什么会这样,但我发现即使在尝试按照上面的@Crouzilles 编辑日期格式之后,它也不会注册,直到我实际选择了单元格双击然后按回车键。对于整个专栏来说,这显然是一个负担,但我认为答案以某种方式克服了这一点。
  • 问题。即使我有我想要的格式,当我在单元格中双击以更改日期时,它也会恢复为原始日期格式,直到我单击单元格外。即使它是相同的数据集,我的讲师的数据集也不会发生这种情况。她在英国,所以她的格式是英国。当我打开文件时,它是美国格式,所以我将其更改为英国。但正如我所说,当我编辑单元格时,它会暂时恢复为美国格式,直到我点击退出。也许我必须将 Excel 的应用偏好更改为英国?
【解决方案2】:

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

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

到上面的公式。

【讨论】:

    【解决方案3】:

    我遇到了类似的问题。我的 Excel 表有 102,300 行,其中一列的日期很乱。没有多少技巧在起作用。花了一整天在网上输入疯狂的公式,但没有成功。看截图

    1. 列的外观(Excel 上的“短日期”格式)

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

    1. 列的外观(Excel 上的“长日期”格式)

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

    1. 我是如何解决的

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

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

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

    3. 以 Google 电子表格的形式打开后,选择包含日期的整个列。

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

    5. 将 Google 电子表格下载为 .xlsx。该列的所有内容现在都是日期

    【讨论】:

    • 谢谢先生,真的帮到我了。
    【解决方案4】:

    DATEVALUE 函数将在日期存储为文本时提供帮助

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

    【讨论】:

      【解决方案5】:

      A1 中输入您的数据,在 B1 中输入:

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

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

      如果单元格看起来有日期/时间,但它不响应格式更改,则它可能是 Text 值而不是真正的日期/时间。

      【讨论】:

        【解决方案6】:

        虽然您没有将 VBA 标记为可能的解决方案,但您也许可以利用一些人认为 VBA 的缺点来获得优势;除非明确告知要使用其他设置,否则 VBA 严重默认为北美地区设置。

        点击Alt+F11,当VBE打开时,立即使用下拉菜单插入►模块(Alt+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 返回您的工作表。选择所有日期(仅选择日期,而不是整个列)并点击 Alt+F8运行宏。

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

        【讨论】:

        • VBA 足够聪明,我认为您可以这样做:rDT = CDate(rDT) 至少在这里(在美国,使用英国区域设置,并将所有 SPACE 替换为 NBSP),它仍然会正确进行转换,没有TTC 或替换NBSP
        • @RonRosenfeld - 我担心有一些潜在因素(例如,我试图覆盖的 非破坏空间)正在停止 2015 年 1 月 19 日 03 日: 00:00 PM 从被转换并且想要覆盖尽可能多的基地。当然,Jan- 用于池塘的两侧,并且应该在一开始就识别日期。如果删除不间断空格并将列处理为 Text-to-Columns ► 固定宽度,则可能甚至不需要逐个循环遍历单元格的最后一步。
        • 我的意思是 VBA 将字符串识别为日期,即使 NBSP 存在于字符串中、之前和之后。
        【解决方案7】:

        今天在这个问题上挣扎了 20 分钟。我的问题与此线程中的 MARIO 相同,但我的解决方案更简单。如果你看他上面的回答,蓝色圆圈的日期是“月/日/年”,红色的日期是“日/月/年”。更改红色日期格式以匹配蓝色日期格式,然后选择所有它们,右键单击,设置单元格格式,类别“日期”,选择所需的类型。红色日期可以手动更改,或者使用其他一些 excel 魔法来交换日期和月份。

        【讨论】:

          【解决方案8】:

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

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

          清除格式对我不起作用。 Excel 365,可能版本 2019

          【讨论】:

            【解决方案9】:

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

            【讨论】:

              【解决方案10】:

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

              将 Excel 工作表上传到 Google 云端硬盘。在 Google 云端硬盘上执行以下操作:

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

              当它作为 Google 电子表格打开后,选择包含日期的整个列。

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

              将 Google 电子表格下载为 .xlsx。该列的所有内容现在都是日期

              【讨论】:

                【解决方案11】:

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

                1. 复制问题表,然后将其粘贴到工作表中
                  n.
                2. 删除问题表。
                3. 将工作表 n 重命名为问题工作表的名称。

                QED。

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

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

                【讨论】:

                  【解决方案12】:

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

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-04-10
                    相关资源
                    最近更新 更多