2

我有一个大约 500 行的 excel 文档。我需要将 B 列中的所有单元格从日期格式化为文本。

这是它现在的样子:

2012-06-15
2012-06-01
2012-06-14

格式化为文本时的样子:

41075
41061
41074

据我了解,这是代表自 1900 年 1 月 1 日以来的天数的时间戳,对吗?无论如何,这不是我想要的。我希望该字段的值与文本的列类型完全相同。我已经找到了使用这样的函数的各种解决方案:=TEXT(B1, "yyyy-mm-dd")但这不是重新格式化单元格,而是从一个单元格中提取一个值,重新格式化它并将其表示为另一个单元格中的文本。

我遵循的规则:I want all cells in B column to have the type text without changing the value

谢谢!

4

3 回答 3

2

如果您的列AD500 行的日期,那么:

  1. 使用=TEXT(A1, "yyyy-mm-dd")您在 cell 中描述的功能E1

  2. 将此公式复制 4 列宽,向下 500 行。

  3. 然后将值复制并粘贴到前面的单元格中。

复制示例:

复制

输出:

输出

于 2013-02-14T12:03:47.290 回答
1

没错,Excel 在内部将日期存储为自 1900 年 1 月 1 日以来的天数(除了一个小的闰年错误)。

因此,恐怕你不能同时拥有:

  • 要么保留值,例如 ( 41075) 并简单地将其格式化为日期,因此它将显示为2012-06-15-
  • 或者您将其转换为文本格式 - 但是您要么
    • 失去基础价值 - 如果您使用您提到的文本函数将其转换为您希望的格式
    • 保留值 ( 41075),但看不到日期
于 2013-02-14T10:24:41.370 回答
1

如果您正在输入值,您可以在'值之前添加 a 以将其保留为文本。

例如

示例输出

但是根据第三方服务用于导入这些值的方法,这可能不起作用,我敢打赌,除非您将其导出到文本编辑器并再次导入,否则您将无法绕过它。

可以尝试为您的第三方服务使用不同类型的文本,例如"2012-06-15",有些人看到引号并删除它们。

于 2013-02-14T10:52:59.830 回答