Excel 中有一列显示日期,但不是日期格式,而是文本格式,并且那些表示月份或日期的一个字符的日期的值前面不包含零。
例如,我们有 2017/1/3 或 2017/11/4,但我想将它们更改为 2017/01/03 // 2017/11/04。
如何在不使用日期格式的情况下以简单的方式执行此操作? 这是我尝试过的太长且复杂的方法:
- 将日期拆分为年、月、日
- 如果月份长度 < 2,则在月份前添加 0
- 如果天数小于 2,则在天数前添加 0
- 建立新日期
答案1
Excel 可以完美地将您用作示例的所有日期识别为日期。因此,如果您想要“真实”日期,您可以根据需要设置其格式,并且 Excel 可以直接在数学中使用:
1) 如果您希望保留原始数据并让可格式化的日期数据可用,那么只需在您希望执行工作的任何位置(可能是几列,或者在另一页上……无论什么都适合您的方案)使用公式 =A1*1(如果您的日期在单元格 A1 中)。并按您希望的格式格式化(“yyyy/mm/dd”或“yyyy/dd/mm”——您的示例没有消除歧义,您使用的是 md 还是 dm)。
[我想补充一点,虽然这个问题似乎对你不感兴趣,但如果你有文本日期并且只想在其他公式中使用它们,虽然在公式中引用它们通常就可以了(例如 ...A1+7... 以获取一周后的日期),但可能会出现一个奇怪甚至独特的情况,你这样做仍然会失败。在这种情况下,只需进行这个乘法,因此上面的例子将是 ... A1*1+7...]
2) 如果您希望用“真实”日期替换原始数据,您可以将日期范围从“文本”重新格式化为自定义格式“yyyy-mm-dd”,然后在某个单元格中输入“1”,复制该单元格,再次选择日期范围,然后粘贴|特殊|乘法。这解决了当您从文本更改为数字时 Excel 永远不会重新计算的问题。对于单个单元格,重新格式化后按 F2,然后按 Enter(立即,不做任何更改)将执行相同的操作而不会造成负担,但如果您有 14,293 个这样的日期...
3) 您还可以使用“文本到列”功能实现 2) 的结果。只需选择数据并单击“文本到列”,然后选择“固定宽度”并将宽度线标记置于“10”,最后单击“日期”作为列数据格式。按“完成”,您就会得到一列真实日期,您可以应用所需的格式。
老实说,对于一次性使用,3) 似乎比 2) 更简单,而且它“就地”发生,因此不会扰乱您的结构。但您不会想在每年日复一日地添加日期时都这样做。请注意,“一次性使用”可能会反复发生:假设您清空数据并每周加载一组新数据。那么 3) 就不会是一团糟。而且它的方法更容易制作一个小的录制宏以供每次使用。
好吧,小小的答案却变得很长,所以……
答案2
由于您的日期是文本格式,因此我想建议您一种最简单的方法将它们转换为 Excel 日期。
请执行下列操作:
- 在一个单元格中输入
0
并复制,或者您也可以复制任何空白单元格。 - 选择日期范围。
- 右键点击& 从弹出菜单中单击特殊粘贴然后从手术选项点击 添加并结束 好的。
- 现在日期看起来像数字,即
43322
。 - 由于日期已经选定,因此右键点击& 从菜单中点击格式化单元格命令。
- 最后应用
yyyy/mm/dd
格式并完成好的。