原始Excel数据包含不同的日期格式

时间:2014-10-24 11:37:18

标签: excel matlab vba date excel-vba

我有大量按列分隔的原始数据。当我将这些内容导入Matlab时,一切都很顺利,除了我刚看到excel文件包含不同日期格式的事实。

一个系列(即3天,1行或每小时得到3x24行)有它的'日期格式为" mm / dd / yyyy"既不是excel也不是matlab认为是合适的日期。

我尝试过以不同的方式解决这个问题。首先,我尝试突出显示单元格并使用函数format cells,但这并不起作用,因为excel并没有将它们视为' cell'而是作为'文本'。

然后我尝试了Text to columns函数,该函数也没有(分隔或固定宽度)。

我真的感到困惑,并希望得到一些帮助。

3 个答案:

答案 0 :(得分:0)

在Excel中:

如果单元格A1有一个像mm/dd/yyyy这样的字符串,那么试试这个:

=DATE(RIGHT(A1,4), LEFT(A1,2), MID(A1,4,2))

在Matlab中:

=datenum(yourDateString, 'mm/dd/yyyy')

答案 1 :(得分:0)

选择要修复的所需范围并使用此脚本:

Sub bulk_Date_fix()
    on error resume next
    Set d_ranged = Selection
    For Each a In d_ranged
        a.Value = Split(a.Value, "/")(0) & "/" & Split(a.Value, "/")(1) & "/" & Split(a.Value, "/")(2)
    Next
    on error goto 0
End Sub

工作原理:上面的脚本遍历所选区域中的所有单元格,并根据" /"分割出日期的各种属性。符号

答案 2 :(得分:0)

我检查了你的文件,你需要回到源数据来理顺你的文件。您需要导入文件,而不是在Excel中“打开”文件。执行此操作时,将打开文本导入向导,然后您可以将日期列指定为DMY格式(或源生成的任何格式)。

问题是文件格式与Windows区域短日期格式不匹配。如果您查看第229行,您会看到实际日期存在,但与其余日期不一致。

Excel根据Windows区域短日期设置分析正在输入的日期。如果日期没有意义,根据解析(例如月份> 12),Excel会将日期解释为字符串;如果日期确实有意义,它将被解释为符合该窗口区域日期组件顺序的日期,这将与预期的不同。

因此前几百个日期是字符串,但是在第229行,日期(可能是2014年10月12日)将更改为2014年12月10日。这将发生在其他区域,其中该值位于第2位是12或更少。

编辑:我不确定在MAC上使用XL固有的可变性。在Windows版本的XL中,“文本导入”功能位于“数据功能区/获取外部数据”选项卡上:

Data Ribbon

当您单击它并打开文本文件时,您将看到文本导入向导,当您进入步骤3时,您将能够指定要导入的数据的文本格式:

Text Import Wizard Step 3

相关问题