128

在 Excel 工作表的单元格中,我有一个 Date 值,例如:

01/01/2010 14:30:00

我想将该日期转换为文本,并且还希望文本看起来与日期完全一样。所以日期值01/01/2010 14:30:00应该看起来像01/01/2010 14:30:00,但在内部它应该是文本。

我怎样才能在 Excel 中做到这一点?

4

10 回答 10

245
=TEXT(A1,"DD/MM/YYYY hh:mm:ss")

(24小时制)

=TEXT(A1,"DD/MM/YYYY hh:mm:ss AM/PM")

(标准时间)

于 2010-04-14T12:07:16.327 回答
8

这是一个VBA方法:

Sub change()
    toText Sheets(1).Range("A1:F20")
End Sub

Sub toText(target As Range)
Dim cell As Range
    For Each cell In target
        cell.Value = cell.Text
        cell.NumberFormat = "@"
    Next cell
End Sub

如果您正在寻找无需编程的解决方案,则应将问题移至 SuperUser。

于 2010-04-14T09:26:21.843 回答
7

这是另一种选择。使用 Excel 内置的“文本到列”向导。它位于 Excel 2007 的“数据”选项卡下。

如果您选择了一列,则文件类型和分隔符的默认值应该有效,然后它会提示您更改列的数据格式。选择文本会强制将其转换为文本格式,以确保它不会存储为日期。

于 2015-01-14T16:25:49.397 回答
4

在某些情况下,事先使用 ' 字符会起作用,但如果您保存到 CSV 并再次加载,这是不可能的。

'01/01/2010 14:30:00
于 2010-04-14T09:15:05.920 回答
4

无法使 TEXT() 公式起作用

最简单的解决方案是将粘贴复制到记事本中,然后将列设置为文本再复制回 Excel,然后再粘贴回来

或者你可以用这样的公式做同样的事情

=DAY(A2)&"/"&MONTH(A2)&"/"&YEAR(A2)& " "&HOUR(B2)&":"&MINUTE(B2)&":"&SECOND(B2)

于 2018-02-02T16:16:14.390 回答
2

我不知道问题的发表年份;它现在可能已经旧了。所以,我希望我的回答能在我发帖后更多地为未来的类似问题提供参考。

我不知道是否有人已经给出了与我即将给出的答案相似的答案,这可能会导致 - 我认为 - 是最简单、最直接和最有效的:如果有人已经给出了答案,我道歉,但我没见过。在这里,我使用 CStr 而不是 TEXT 的答案:

假设单元格 A1 包含一个日期,并使用 VBA 代码:

Dim strDate As String

'Convert to string the value contained in A1 (a date)
strDate = CStr([A1].Value)

此后,您可以使用字符串函数(MID、LEFT、RIGHT、LEN、CONCATENATE (&) 等)将其作为任何普通字符串操作

于 2017-03-26T21:51:36.410 回答
1

如果您不使用编程,请执行以下操作 (1) 选择列 (2) 右键单击​​并选择单元格格式 (3) 选择“自定义” (4) 在“类型:”下键入 dd/mm/yyyy hh:mm :ss

于 2015-07-17T15:21:42.423 回答
1

在 Excel 2010 中,marg 的答案仅适用于我在电子表格中的一些数据(它是导入的)。以下解决方案适用于所有数据。

Sub change()
    toText Selection
End Sub

Sub toText(target As range)
Dim cell As range
Dim txt As String
    For Each cell In target
        txt = cell.text
        cell.NumberFormat = "@"
        cell.Value2 = txt
    Next cell
End Sub
于 2016-01-21T11:43:39.263 回答
0

由于文本已本地化,当您尝试在不同文化中共享文件时,它会中断。ÅÅÅÅ-MM-DD 可能在瑞典完美运行,在美国、德国或以色列它会变成狗屎。合理的解决方案是到处都接受英语,但事实并非如此。

基本上不要使用文本来格式化日期。以下是如何以 ISO 格式创建日期。TEXT 用于确保领先

=YEAR(A1)&"-"&TEXT(MONTH(A1);"00")&"-"&TEXT(DAY(A1);"00")

如果你想要它向后,横向或其他,只需改变它。 https://www.reddit.com/r/ISO8601/comments/enhlp6/logic_of_the_different_date_time_systems_with/

于 2021-04-07T08:55:24.097 回答
-1

所选答案对我不起作用,因为 Excel 仍未将文本转换为日期。这是我的解决方案。

假设在第一列 A 中,您有该类型的数据,2016/03/25 21:20:00但存储为文本。然后在 B 列中写入=DATEVALUE(A1),在 C 列中写入=TIMEVALUE(A1)

然后在 D 列=B1+C1中添加日期和时间的数字格式。

最后,通过右键单击 E 列并选择 ,将 D 中的值复制到 E 列Paste Special -> Paste as Values

突出显示 E 列中的数值并将数据类型更改为日期 - 我更喜欢使用表单的自定义日期YYYY-MM-DD HH:MM:SS

于 2016-09-27T13:51:15.583 回答