【问题标题】:Excel doesn't recognize imported date/time as date and time when there is a leading "0" in the millisecond spot当毫秒位置有前导“0”时,Excel 无法将导入的日期/时间识别为日期和时间
【发布时间】:2023-04-07 08:49:01
【问题描述】:

我正在尝试从具有日期/时间和当前值的文本文件中导入数据。它导入为yyyy/mm/dd hh/mm/ss 000。 Excel 将其中大部分识别为日期,但当毫秒点前面有“0”时,它不会将其识别为日期。如果我删除 0 或将其更改为其他数字,它会识别它。

我的数据集很大(超过 200,000 列长度),因此手动将这些数据转换为日期是不可行的。有什么方法可以让excel将前导零的日期识别为日期?在工作簿或 VBA 中?使用 2016 年。

文本文件数据集

Excel 文件数据集

【问题讨论】:

  • 您能否将文本文件数据集示例数据也作为文本而不是图像发布?所以这里的人有一些数据可以重现吗? • 您是如何导入 CSV 的?手动还是通过 VBA 代码?如果您是使用 VBA 完成的,请将您的代码添加到问题本身。

标签: excel date excel-formula excel-2016


【解决方案1】:

您可以将日期时间作为文本导入,然后在另一列中添加一个公式以将第二个空格更改为小数点并将其转换为日期时间:

=DATEVALUE(SUBSTITUTE(A1," ",".",2))+TIMEVALUE(SUBSTITUTE(A1," ",".",2))

【讨论】:

    【解决方案2】:
    1. 将数据导入 Excel。
    2. 用逗号和空格将文本分列,这将产生 4 列

          A      |      B     |   C   |    D
      7/12/2018  |  16:18:05  |   91  |  -0.26
      7/12/2018  |  16:18:05  |  291  |  -0.25
      
    3. 在 E 列中使用此公式

      =A:A+B:B+(C:C/24/60/60/1000)
      
    4. 将E列格式化为

      DD/MM/YYYY hh:mm:ss.000
      

      或类似的东西。这里棘手的部分是hh:mm:ss.000

    【讨论】:

    • 我尝试了 YYYY/MM/DD hh:mm:ss 000,它在 2013 年给了我一个无法识别的格式。但是,当添加小数点而不是空格来分隔毫秒时,它可以正常工作
    • @ForwardEd 该空间不起作用,因为毫秒没有变量。所以毫秒只能显示为几分之一秒。小数点分隔符为.,(取决于本地化)。所以这就是为什么它必须是ss.000ss,000
    【解决方案3】:

    如果使用 Power Query 导入,则可以

    • 通过将space 指定为选项中的分隔符和最右侧分隔符的分隔符拆分第1 列
      • 确保生成的第 2 列的数据类型是文本
    • 然后将第 1 列和第 2 列合并,将点指定为分隔符

    • 确保合并列的数据类型为日期/时间

    • 检查以确保最后一列的数据类型为十进制

    • 将结果加载到工作表中,并根据需要设置格式。

    设置查询后,您可以在数据更改时刷新它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 2022-11-27
      • 2012-01-15
      • 1970-01-01
      相关资源
      最近更新 更多