Excel formula 将文本中的日期转换为Excel中的日期字段,即2017年6月2日美国东部夏令时上午9:24

Excel formula 将文本中的日期转换为Excel中的日期字段,即2017年6月2日美国东部夏令时上午9:24,excel-formula,excel-2007,Excel Formula,Excel 2007,我对Excel和/或Access并不陌生,但以前从未遇到过这种情况。向我发送了一份报告,其中日期字段存储为文本,但输出为2017年6月2日美国东部夏令时上午9:24。我正在尝试将此列转换为日期字段,以便在Access中对其进行计算。我很想在Access中这样做,但我认为在Excel中这样做可能更容易。我曾尝试将文本转换为列,然后将单元格格式化为日期,即3/14/2001,但没有成功。我本想左转,但日期可能是2017年6月2日或2017年12月2日。如果您有任何帮助,我们将不胜感激。请使用: =-

我对Excel和/或Access并不陌生,但以前从未遇到过这种情况。向我发送了一份报告,其中日期字段存储为文本,但输出为2017年6月2日美国东部夏令时上午9:24。我正在尝试将此列转换为日期字段,以便在Access中对其进行计算。我很想在Access中这样做,但我认为在Excel中这样做可能更容易。我曾尝试将文本转换为列,然后将单元格格式化为日期,即3/14/2001,但没有成功。我本想左转,但日期可能是2017年6月2日或2017年12月2日。如果您有任何帮助,我们将不胜感激。

请使用:

=--LEFT(A1,LEN(A1)-3)
然后根据需要格式化单元格


注意,只有当您的本地日期格式是d/m/y而不是m/d/y时,这才有效。如果是这种情况,您需要逐位解析数据。

您可以使用替换项。像这样:

=SUBSTITUTE(A1;"EDT";"")

如果要将其保存为CSV或进行任何复制/粘贴,并希望确保Excel不会在重新导入时将其转换为日期类型,则可以在值之前添加撇号,以告知Excel显式忽略其后面的内容。这里有一种使用宏自动执行的方法

将列/行格式化为文本,并将其添加到工作簿宏:

Private Sub Worksheet_Change(ByVal Target As Range)

    With Target
        If IsDate(.Value) Then
            Application.EnableEvents = False
            .Value = "'" & .Value
            Application.EnableEvents = True
        End If
    End With

End Sub

1.不是替换,应该是替换。2您仍然需要将其设置为数字,因为替换将返回文本字符串。所以,要么用VALUE或DATEVALUE包装它,要么用-。这将把文本转换为实际日期。好主意,好观点。我的excel实际上是葡萄牙语的,我误译了函数。正确的是取代基。如果将带有公式的字段设置为日期字段,则可能不需要将日期值转换为数字来进行比较,但他应记住,这可能是必需的。即使将其设置为日期/时间,也不会自动转换,因为Excel不会自动转换公式返回的字符串。您可以将单元格作为日期时间,并在其中键入blah,blah将保留。同样的事情。Excel将其视为文本,不会转换为真实日期。它看起来像一个日期,但在进行查找时会失败,因为Excel会在与真实日期进行比较时查找数字。是的,它不会转换值,但Excel能够比较公式返回的值,即使它是文本,也可以与另一个实际日期值进行比较。我在这里做了一些测试,结果很好。这个问题实际上没有太多关于将要进行的计算的细节,但这可能足够了。不,它没有:C1是一个真实的日期,因为它是一个以日期/时间为格式的数字。B1是从=LEFTA1,LENA1-3返回的文本。VLOOKUP不认为它们是匹配的。欢迎来到StackOverflow,请花点时间回顾一下教程:,如何创建一个最小的、完整的、可验证的示例:,更具体地说,如何提出好的问题-如果您在来SO寻求帮助之前仔细思考您的问题,您将得到更好的反馈和有用的答案,通过在代码中包含一个特定的问题,您已经尝试展示自己解决问题的努力。