Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在excel中列出日期、月份和年份_Excel - Fatal编程技术网

在excel中列出日期、月份和年份

在excel中列出日期、月份和年份,excel,Excel,我有一组数据需要采用日期格式,但看起来像28041980 但是我需要它是日期格式,比如d/m/yyy 这能做到吗 您可以尝试使用文本和日期以及子字符串(右、中和左),例如: 这将说明前一天的长度为1或2个字符。但它只能在假设D/M/Y的情况下工作 A1 = 28041980 A2 = 3091970 B1 =REPLACE(REPLACE(A1,LEN(A1)-3,0,"/"),LEN(A1)-5,0,"/") 您需要首先将所有数值转换为可以转换的通用格式。在正确使用的未使用列中 =R

我有一组数据需要采用日期格式,但看起来像
28041980
但是我需要它是日期格式,比如
d/m/yyy
这能做到吗


您可以尝试使用
文本
日期
以及子字符串(
),例如:


这将说明前一天的长度为1或2个字符。但它只能在假设D/M/Y的情况下工作

A1 = 28041980
A2 = 3091970

   B1 =REPLACE(REPLACE(A1,LEN(A1)-3,0,"/"),LEN(A1)-5,0,"/")

您需要首先将所有数值转换为可以转换的通用格式。在正确使用的未使用列中

=RIGHT("00000000"&A1, 8)
填充到列的范围,然后复制、粘贴特殊值以删除公式

选择此新的值列并使用数据► 数据工具► 文本到列。选择固定宽度► 下一个► 接下来,选择日期、DMY和完成

在VBA中,如下所示

Sub date_convert()
    Dim cl As Long

    cl = 1  'column A

    With Worksheets("Sheet2")
        With .Range(.Cells(2, cl), .Cells(Rows.Count, cl).End(xlUp))
            .Offset(0, 1).EntireColumn.Insert
            With .Offset(0, 1)
                .FormulaR1C1 = "=RIGHT(""00000000""&RC[-1], 8)"
                .NumberFormat = "@"
                .Value = .Value2
                .TextToColumns Destination:=.Cells(1), DataType:=xlFixedWidth, _
                               FieldInfo:=Array(0, 4)
                .NumberFormat = "dd/mm/yyyy"
            End With
            'optionally remove original column
            '.entirecolumn.delete
        End With
    End With
End Sub

将日期作为正确的Excel序列号获取后,可以更改格式以获得所需的任何显示。有一种方法,它需要单独的年、月和日值来给出实际日期。你所需要的只是一点数学来区分各个部分

=DATE(MOD(A1,10000),MOD(TRUNC(A1/10000),100),TRUNC(A1/1000000))

右键单击,格式化。虽然这是一个很好的转换,但这可能不是在MDY系统上创建DMY日期的原因;有些日期可能转换错误,而另一些则完全不正确。或者相同的想法有点不同:
=REPLACE(A1,LEN(A1)-5,2,“/”和MID(A1,LEN(A1)-5,2)和“/”
3091970将是1970年9月30日,而不是1970年9月3日。您需要将
LEFT(A1,2)
更改为
LEFT(A1,Len(A1)-6)
=DATE(MOD(A1,10000),MOD(TRUNC(A1/10000),100),TRUNC(A1/1000000))