答案 0 :(得分:1)
这将导致前导日为1或2个字符长。但它只能假设D / M / Y
A1 = 28041980
A2 = 3091970
B1 =REPLACE(REPLACE(A1,LEN(A1)-3,0,"/"),LEN(A1)-5,0,"/")
答案 1 :(得分:1)
将日期作为正确的Excel序列号后,您可以更改格式以获得所需的任何显示。有一个Date
function,它会将个别的年,月和日值视为实际日期。您只需要一点点数学就可以分开各个部分。
=DATE(MOD(A1,10000),MOD(TRUNC(A1/10000),100),TRUNC(A1/1000000))
答案 2 :(得分:0)
您可以尝试使用TEXT
和DATE
以及子字符串(RIGHT
,MID
和LEFT
),例如:
=TEXT(DATE(RIGHT(A1,4),MID(A1,3,2),LEFT(A1,2)), "dd/mm/yyyy")
答案 3 :(得分: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