朱利安日期为mm / dd / yy in excel

时间:2009-11-12 22:35:59

标签: excel-vba excel vba

我正在尝试将julian日期(yy / ddd)转换为excel vba中的regualr mm / dd / yy数据。我有一个使用select case语句的想法,该语句每个月调用一个函数。但那是很多代码,我很懒。我想知道是否有更好的方法?

1 个答案:

答案 0 :(得分:1)

根据this website

=DATE(IF(0+(LEFT(A1,2))<30,2000,1900)+LEFT(A1,2),1,RIGHT(A1,3))

只要您在A1中有一个五位数的数字,它就可以正常工作。例如,它将95032变为2/1/1995。如果您的数据实际上有斜杠(95/032),则需要调整公式。

同一个网站也有一个vba部分。它表示以下内容可行:

Function JDateToDate(JDate As String) As Long
Dim TheYear As Integer
Dim TheDay As Integer
Dim TheDate As Long

TheYear = CInt(Left(JDate, 2))
If TheYear < 30 Then
    TheYear = TheYear + 2000
Else
    TheYear = TheYear + 1900
End If

TheDay = CInt(Right(JDate, 3))
TheDate = DateSerial(TheYear, 1, TheDay)
JDateToDate = TheDate

End Function

我没有测试vba代码,但由于它本质上是上述公式的代码版本,它应该可以完成这项工作。

编辑:正如tbischel指出的那样,这实际上不是朱利安日期。这是一个Ordinal Date