将日期从一般类型转换为日期9/29/1986 0:00:00转换为dd / MM / YYYY CSV文件

时间:2018-06-28 02:28:31

标签: excel-formula

我尝试对CSV文件中的日期进行INT,TIMEVALUE和所有其他日期格式设置后碰壁。

我能够使用INT更改一些日期,然后更改日期格式,但是很少的日期(以黄色突出显示)我无法转换为日期格式。最初它是字符串,我尝试在应用公式之前将其更改为Number和Date类型,但仍然无法正确设置其格式。

我尝试过MID / LEFT等提取其中的一部分,但是当使用“”和“”将这些部分合并为文本并将其转换为日期时,会导致长#####输出,因此尝试了excel高级选项勾选使用1904年日期系统。

在正确方向上的任何帮助都将受到赞赏。我没有发现任何与我的格式类似的重复问题,最接近的我没有时间戳记,因此该公式也不起作用。

file with original date

1 个答案:

答案 0 :(得分:2)

看看您的日期格式。第一位数字是1或2个字符,您需要考虑到这种变化。好的事情是根据您的数据,该天总是2位数。这会简化一些事情。

让我们从基础开始,并假设您的日期的第一个字符串在A2中。让我们简单地从同时从一段文本中删除数字开始,同时对字符的位置和数量通用。因此,为了提取月份的数字,请使用以下公式:

=LEFT(A2,FIND("/",A2)-1)

Find将在字符串中查找/字符的位置并返回其编号。在这种情况下,它应该是2。这意味着它是个位数的月份。因此,我们只需要拉1位数字即可。一般而言,1小于/的位置。

下一个任务是提取当天的数字。我们可以使用类似的公式来做到这一点。这次让我们使用MID而不是左键。为了使MID起作用,我们需要定义起点。这次,起点的一般情况将是第一个/之后的第一个字符。与此相关的另一个好处是,我们知道要提取的字符数始终为2。因此,您可以使用以下公式来提取月份:

=MID(A2,FIND("/",A2)+1,2)

(请注意,如果您的日位数不是始终一致的2,那么您必须测量两个/字符之间的字符数,并用计算替换公式中的2)

为拉制年份,该过程与进行一些细微调整的月份基本相同。我建议的结果公式是:

=MID(A2,FIND("/",A2,4)+1,4)

现在,我使用4作为查找起始位置的原因是为了使公式适用于天可能是个位数的情况。秒/可以最接近开始。

现在您拥有将其组合在一起以进行约会的所有必要条件。这是DATE公式起作用的地方。它以以下格式工作:DATE(年,月,日)。因此,现在我们只需抓取每个单独的公式并构建DATE公式,该公式应如下所示:

=DATE(MID(A2,FIND("/",A2,4)+1,4),LEFT(A2,FIND("/",A2)-1),MID(A2,FIND("/",A2)+1,2))

如果您得到的日期只是一堆数字,请格式化该单元格,以您选择的格式显示日期。

POC